diff --git a/docs/book/src/clusterctl/commands/init.md b/docs/book/src/clusterctl/commands/init.md
index fc4746f4c54b..31a851dbc88e 100644
--- a/docs/book/src/clusterctl/commands/init.md
+++ b/docs/book/src/clusterctl/commands/init.md
@@ -19,6 +19,10 @@ You can use the `clusterctl config repositories` command to get a list of suppor
If the provider of your choice is missing, you can customize the list of supported providers by using the
[clusterctl configuration](../configuration.md) file.
+Important! The Cluster API project supports ecosystem growth and extensibility. The `clusterctl` CLI carries a list of
+predefined providers sponsored by SIG Cluster Lifecycle, and out-of-organization third party open-source repositories.
+Each repository is the responsibility of the respective maintainers, including their quality standards and support.
+
#### Automatically installed providers
diff --git a/docs/book/src/clusterctl/provider-contract.md b/docs/book/src/clusterctl/provider-contract.md
index 55b2c944f2a2..da52a09dfc46 100644
--- a/docs/book/src/clusterctl/provider-contract.md
+++ b/docs/book/src/clusterctl/provider-contract.md
@@ -25,7 +25,7 @@ Optionally, the provider repository can include the following files:
Pre-defined list of providers
The `clusterctl` command ships with a pre-defined list of provider repositories that allows a simpler "out-of-the-box" user experience.
-As a provider implementer, if you are interested in being added to this list, please create an issue to the [Cluster API repository](https://sigs.k8s.io/cluster-api).
+As a provider implementer, if you are interested in being added to this list, please see next paragraph.
@@ -37,6 +37,60 @@ It is possible to customize the list of providers for `clusterctl` by changing t
+#### Adding a provider to clusterctl
+
+As a Cluster API project, we always have been more than happy to give visibility to all the open source CAPI providers
+by allowing provider's maintainers to add their own project to the pre-defined list of provider shipped with `clusterctl`.
+
+
+
+This is the process to add a new provider to the pre-defined list of providers shipped with `clusterctl`:
+- As soon as possible, create an issue to the [Cluster API repository](https://sigs.k8s.io/cluster-api) declaring the intent to add a new provider;
+ each provider must have a unique name & type in the pre-defined list of providers shipped with `clusterctl`; the provider's name
+ must be declared in the issue above and abide to the following naming convention:
+ - The name must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character.
+ - The name length should not exceed 63 characters.
+ - For providers not in the kubernetes-sigs org, in order to prevent conflicts the `clusterctl` name must be prefixed with
+ the provider's GitHub org name followed by `-` (see note below).
+- Create a PR making the necessary changes to clusterctl and the Cluster API book, e.g. [#9798](https://github.com/kubernetes-sigs/cluster-api/pull/9798),
+ [9720](https://github.com/kubernetes-sigs/cluster-api/pull/9720/files).
+
+The Cluster API maintainers will review issues/PRs for adding new providers. If the PR merges before code freeze deadline
+for the next Cluster API minor release, changes will be included in the release, otherwise in the next minor
+release. Maintainers will also consider if possible/convenient to backport to the current Cluster API minor release
+branch to include it in the next patch release.
+
+
+
+
+
#### Creating a provider repository on GitHub
You can use a GitHub release to package your provider artifacts for other people to use.