sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/cluster-class/update.plantuml (about) 1 @startuml 2 title Figure 2. Cluster update with ClusterClass 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" : Update Cluster object with\n""Cluster.Spec.Class"" 18 "API Server" --> "Cluster Controller": Existing Cluster 19 opt #FFFFFFCC Required only if Cluster.Spec.Class is set 20 "Cluster Controller" -> "Cluster Controller": Fetches the InfrastructureCluster object\nset in Cluster.spec.infrastructureRef 21 opt Update the InfrastructureCluster 22 "Cluster Controller" -> "Cluster Controller": Updates InfrastructureCluster fields 23 "Cluster Controller" -> "API Server": Updates InfrastructureCluster object 24 end 25 26 "Cluster Controller" -> "Cluster Controller": Fetches the ControlPlane object\nset in Cluster.spec.controlPlaneRef 27 opt Update the ControlPlane 28 "Cluster Controller" -> "Cluster Controller": Rotates the InfrastructureMachineTemplate 29 "Cluster Controller" -> "Cluster Controller": Updates ControlPlane fields, replicas, version 30 "Cluster Controller" -> "API Server": Updates ControlPlane object 31 end 32 33 "Cluster Controller" -> "API Server": Fetches the MachineDeployments for worker node pools 34 opt For each worker node pool 35 alt If worker node pool was removed from topology 36 "Cluster Controller" -> "API Server": Delete MachineDeployment 37 else If new worker node pool was added to topology 38 "Cluster Controller" -> "API Server": Create MachineDeployment 39 end 40 end 41 opt For the remaining worker node pools 42 loop For each worker 43 "Cluster Controller" -> "Cluster Controller": Rotates InfrastructureMachineTemplate and BootstrapTemplate 44 "Cluster Controller" -> "Cluster Controller": Updates replicas, labels, annotations and version\n for MachineDeployment 45 "Cluster Controller" -> "API Server": Updates MachineDeployment 46 end 47 end 48 end 49 50 51 hide footbox 52 @enduml