sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/cluster-class/create.plantuml (about) 1 @startuml 2 title Figure 1. Cluster with ClusterClass Provisioning process 3 actor User 4 5 ' -- GROUPS START --- 6 7 box #LightGreen 8 participant "API Server" 9 end box 10 11 box #LightBlue 12 participant "Cluster Controller" 13 end box 14 15 ' -- GROUPS END --- 16 17 User -> "API Server" : Create Cluster object with\n""Cluster.Spec.Managed.Class"" 18 "API Server" --> "Cluster Controller": New Cluster 19 opt #FFFFFFCC Required only if Cluster.Spec.Managed.Class is set 20 "Cluster Controller" --> "API Server": Creates the infrastructure cluster 21 "Cluster Controller" -> "Cluster Controller": Checks for\nCluster.Spec.ControlPlaneRef 22 opt Required only if Cluster.Spec.ControlPlaneRef is not set 23 "Cluster Controller" -> "Cluster Controller": Initializes the control plane \noject using the template 24 "Cluster Controller" -> "Cluster Controller": Sets the name of the object to <cluster.Name> 25 "Cluster Controller" -> "Cluster Controller": Sets the replicas & k8s version 26 "Cluster Controller" -> "API Server": Saves the control plane object 27 "Cluster Controller" -> "Cluster Controller": Updates the Cluster.Spec.ControlPlaneRef 28 "Cluster Controller" -> "API Server": Updates Cluster 29 end 30 loop For each deployment in\n""cluster.Spec.Managed.Worker.Deployments"" list 31 "Cluster Controller" -> "API Server": Check for MachineDeployment object\nwith name\n<cluster.Name>-<deployment.Name> 32 opt If MachineDeployment not found 33 "Cluster Controller" -> "Cluster Controller": Initializes new MachineDeployment object 34 "Cluster Controller" -> "Cluster Controller": Sets the name of MD to\n<cluster.Name>-<deployment.Name> 35 "Cluster Controller" -> "Cluster Controller": Sets the replicas & k8s version 36 "Cluster Controller" -> "API Server": Saves MachineDeployment 37 end 38 end 39 end 40 41 42 43 hide footbox 44 @enduml