From a09dbc2b6efd87845b4fcb958c49d7354bd346e3 Mon Sep 17 00:00:00 2001 From: Anusha Ramineni Date: Wed, 29 Jun 2022 19:09:50 +0530 Subject: [PATCH] Add cluster-resource-set-controller to docs --- docs/book/src/SUMMARY.md | 1 + .../src/developer/architecture/controllers.md | 2 ++ .../controllers/cluster-resource-set.md | 12 ++++++++ .../cluster-resource-set-controller.plantuml | 28 ++++++++++++++++++ .../cluster-resource-set-controller.png | Bin 0 -> 53941 bytes 5 files changed, 43 insertions(+) create mode 100644 docs/book/src/developer/architecture/controllers/cluster-resource-set.md create mode 100644 docs/book/src/images/cluster-resource-set-controller.plantuml create mode 100644 docs/book/src/images/cluster-resource-set-controller.png diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md index 2fcea8faacc7..8ecf83a26f41 100644 --- a/docs/book/src/SUMMARY.md +++ b/docs/book/src/SUMMARY.md @@ -61,6 +61,7 @@ - [Control Plane](./developer/architecture/controllers/control-plane.md) - [MachinePool](./developer/architecture/controllers/machine-pool.md) - [ClusterTopology](./developer/architecture/controllers/cluster-topology.md) + - [ClusterResourceSet](./developer/architecture/controllers/cluster-resource-set.md) - [Metadata propagation](./developer/architecture/controllers/metadata-propagation.md) - [Multi-tenancy](./developer/architecture/controllers/multi-tenancy.md) - [Support multiple instances](./developer/architecture/controllers/support-multiple-instances.md) diff --git a/docs/book/src/developer/architecture/controllers.md b/docs/book/src/developer/architecture/controllers.md index 7c7b7082b802..08ac9c00bea5 100644 --- a/docs/book/src/developer/architecture/controllers.md +++ b/docs/book/src/developer/architecture/controllers.md @@ -16,6 +16,8 @@ Documentation for the CAPI controllers can be found at: - [MachinePool](./controllers/machine-pool.md) - ClusterClass - [Cluster Topology](./controllers/cluster-topology.md) +- AddOns + - [ClusterResourceSet](./controllers/cluster-resource-set.md) diff --git a/docs/book/src/developer/architecture/controllers/cluster-resource-set.md b/docs/book/src/developer/architecture/controllers/cluster-resource-set.md new file mode 100644 index 000000000000..b5e0e3947314 --- /dev/null +++ b/docs/book/src/developer/architecture/controllers/cluster-resource-set.md @@ -0,0 +1,12 @@ +# `ClusterResourceSet` Controller + +The `ClusterResourceSet` provides a mechanism for applying resources - e.g. pods, deployments, daemonsets, secrets, configMaps - to a cluster once it is created. + +![ClusterResourceSet Controller Activity Diagram](../../../images/cluster-resource-set-controller.png) + +Its main responsibility is to automatically apply a set of resources to newly-created and existing Clusters. Resources will be applied only once. + + +### Additional information + +* See ClusterResourceSet [proposal](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20200220-cluster-resource-set.md) diff --git a/docs/book/src/images/cluster-resource-set-controller.plantuml b/docs/book/src/images/cluster-resource-set-controller.plantuml new file mode 100644 index 000000000000..dfad13ab99c3 --- /dev/null +++ b/docs/book/src/images/cluster-resource-set-controller.plantuml @@ -0,0 +1,28 @@ +@startuml +!pragma useVerticalIf on +start +:ClusterResourceSet Controller; +repeat + :ClusterResourceSet controller enqueues a Reconcile call; + :Fetch the ClusterResourceSet instance in namespace; + repeat + if (Cluster matches ClusterResourceSet's selector) then (yes) + if (Get ClusterResourceSetBinding for the cluster) then (exists) + else (doesn't exist) + :Create ClusterResourceSetBinding object for the cluster; + endif + if (ResourceSetBinding for a given ClusterResourceSet exists) then (yes) + else (no) + :Create ResourceSetBinding; + endif + :Get Resoures in ClusterResourceSet; + if (Check applied condition of resource in ResourceSetBinding) then (false) + :Apply resource to cluster; + :Set applied condition to true in ResourceSetBinding; + endif + :Mark ResourcesAppliedCondition to true; + endif + repeat while (More clusters?) +repeat while (More updates to ClusterResourceSet?) +stop +@enduml diff --git a/docs/book/src/images/cluster-resource-set-controller.png b/docs/book/src/images/cluster-resource-set-controller.png new file mode 100644 index 0000000000000000000000000000000000000000..979c34643dfb32144d16b7c5d3244f7272d82f53 GIT binary patch literal 53941 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 |*iYhj(<5GDHO{2l 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 QpJAlL