diff --git a/docs/README.md b/docs/README.md index 7ce4153031..48f818bb2d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,6 +11,11 @@ - [Development instructions](development.md) +## Special use cases + +- [Creating multinode control plane clusters](creating-multinode-controlplane-clusters.md) +- [Reconcile Cluster-API objects in a restricted namespace](reconcile-in-custom-namespace.md) + ## Project Documentation - [Initial feature model](proposal/features.md) diff --git a/docs/reconcile-in-custom-namespace.md b/docs/reconcile-in-custom-namespace.md new file mode 100644 index 0000000000..191561f2d7 --- /dev/null +++ b/docs/reconcile-in-custom-namespace.md @@ -0,0 +1,52 @@ +# Reconcile Cluster-API Objects In Custom Namespace + +Cluster-api-provider-aws controllers by default, reconcile cluster-api objects +across all namespaces in the cluster. However, it is possible to restrict +reconciliation to a single namespace and this document tells you how. + +## Contents + +- [Use cases](#use-cases) +- [Configuring `cluster-api-provider-aws` controllers](#configuring-cluster-api-provider-aws-controllers) + +## Use cases + +- Grouping clusters into a namespace based on the AWS account will allow + managing clusters across multiple AWS accounts. This will require each + `cluster-api-provider-aws` controller to have credentials to their respective + AWS accounts. These credentials can be created as kubernetes secret and be + mounted in the pod at `/root/.aws` or as environment variables. +- Grouping clusters into a namespace based on their environment, (test, + qualification, canary, production) will allow a phased rolling out of + `cluster-api-provider-aws` releases. +- Grouping clusters into a namespace based on the infrastructure provider will + allow running multiple cluster-api provider implementations side-by-side and + manage clusters across infrastructure providers. + +## Configuring `cluster-api-provider-aws` controllers + +- Create the namespace that `cluster-api-provider-aws` controller will watch for + cluster-api objects + +```(bash) +cat <