sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/controlplane/controlplane-init-1.plantuml (about) 1 @startuml 2 title User creates a Cluster with KubeadmControlPlane 3 actor User 4 5 ' -- GROUPS START --- 6 7 box #lightgreen 8 participant "API Server" 9 end box 10 11 box #lightslategray 12 participant "Cluster API Cluster Controller" 13 end box 14 15 ' -- GROUPS END --- 16 17 User->"API Server":kubectl apply -f cluster.yaml 18 "API Server"-->>"Cluster API Cluster Controller": New Cluster 19 20 "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Cluster Controller Reconcile 21 activate "Cluster API Cluster Controller" 22 23 note over "Cluster API Cluster Controller": - ✅ Cluster.Status.InfrastructureReady is false\n- ✅ Cluster.Spec.ControlPlaneRef is populated\n- ✅ Cluster.Spec.ControlPlaneRef -> Status.Ready is false 24 25 opt #FFFFFFCC Required only if the object hasn't been seen before 26 "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Add watcher for \nCluster.Spec.ControlPlaneRef.Kind objects 27 end 28 29 opt #FFFFFFCC Required only if the infrastructure object doesn't have a Cluster owner reference 30 "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Set Cluster.Spec.InfrastructureRef -> OwnerReferences[0] to Cluster 31 "Cluster API Cluster Controller"->"API Server": Patch AWSCluster 32 "Cluster API Cluster Controller"<<--"API Server": Response 33 end 34 35 opt #FFFFFFCC Required only if the control plane object doesn't have a Cluster owner reference 36 "Cluster API Cluster Controller"-> "Cluster API Cluster Controller":Set Cluster.Spec.ControlPlaneRef -> OwnerReferences[0] to Cluster 37 "Cluster API Cluster Controller"->"API Server": Patch KubeadmControlPlane 38 "Cluster API Cluster Controller"<<--"API Server": Response 39 end 40 41 "Cluster API Cluster Controller"->"API Server": Patch Cluster Status 42 "Cluster API Cluster Controller"<<--"API Server": Response 43 44 deactivate "Cluster API Cluster Controller" 45 46 hide footbox 47 @enduml