sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/controlplane/controlplane-init-3.plantuml (about) 1 @startuml 2 title User creates a Cluster with KubeadmControlPlane 3 4 ' -- GROUPS START --- 5 6 box #lightgreen 7 participant "API Server" 8 end box 9 10 box #violet 11 participant "KubeadmControlPlane Controller" 12 end box 13 14 ' -- GROUPS END --- 15 16 note right of "KubeadmControlPlane Controller":Watches KubeadmControlPlanes,\nClusters, and owned Machines 17 18 "API Server"-->>"KubeadmControlPlane Controller": Machine Updated 19 20 "KubeadmControlPlane Controller"-> "KubeadmControlPlane Controller":Enqueues KubeadmControlPlane Reconcile 21 22 "KubeadmControlPlane Controller"-> "KubeadmControlPlane Controller":KubeadmControlPlane Controller Reconcile 23 activate "KubeadmControlPlane Controller" 24 25 note over "KubeadmControlPlane Controller": - ✅ KubeadmControlPlane.OwnerReferences \ncontains a Cluster 26 27 "KubeadmControlPlane Controller"->"API Server": Get Cluster 28 "KubeadmControlPlane Controller"<<--"API Server": Response 29 30 note over "KubeadmControlPlane Controller": - ✅ Cluster.Status.InfrastructureReady is true\n- ✅ KubeadmControlPlane instance is valid 31 32 "KubeadmControlPlane Controller"->"API Server": Get Machines matching label selector 33 "KubeadmControlPlane Controller"<<--"API Server": Response 34 35 opt #FFFFFFCC KubeadmControlPlane.Spec.Replicas >= 1, 1 or more existing Machines found that is "Ready" 36 37 "KubeadmControlPlane Controller"-> "KubeadmControlPlane Controller":Set KubeadmControlPlane.Status.Initialized = true 38 39 opt num Machines matches Replicas, and all Machines "Ready" 40 41 "KubeadmControlPlane Controller"-> "KubeadmControlPlane Controller":Set KubeadmControlPlane.Status.Ready = true 42 43 end 44 45 end 46 47 "KubeadmControlPlane Controller"->"API Server": Patch KubeadmControlPlane 48 "KubeadmControlPlane Controller"<<--"API Server": Response 49 50 hide footbox 51 @enduml