sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/machine-states-preboot/Figure4.plantuml (about) 1 @startuml 2 title Figure 4: User creates a machine with kubeadm bootstrapper 3 4 ' -- GROUPS START --- 5 6 box #lightgreen 7 participant "API Server" 8 end box 9 10 box #pink 11 participant "Kubeadm Bootstrap Controller" 12 end box 13 14 ' -- GROUPS END --- 15 16 note right of "Kubeadm Bootstrap Controller":Watches KubeadmBootstrapConfig\nand Machine events with mapFunc 17 18 "API Server"-->>"Kubeadm Bootstrap Controller": Machine Updated 19 20 "Kubeadm Bootstrap Controller"-> "Kubeadm Bootstrap Controller":Enqueues KubeadmBootstrapConfig Reconcile 21 22 "Kubeadm Bootstrap Controller"-> "Kubeadm Bootstrap Controller":KubeadmBootstrapConfig Controller Reconcile 23 activate "Kubeadm Bootstrap Controller" 24 25 note over "Kubeadm Bootstrap Controller": - ✅ KubeadmBootstrapConfigStatus.OwnerReferences \ncontains a Machine 26 27 "Kubeadm Bootstrap Controller"->"API Server": Get Machine 28 "Kubeadm Bootstrap Controller"<<--"API Server": Response 29 30 "Kubeadm Bootstrap Controller"->"API Server": Get Cluster 31 "Kubeadm Bootstrap Controller"<<--"API Server": Response 32 33 note over "Kubeadm Bootstrap Controller": - ✅ Machine.Status.Phase is "Pending" \n- ✅ Machine.Spec.Bootstrap.Data is <nil>\n- ✅ KubeadmBootstrapConfig instance is valid 34 35 note over "Kubeadm Bootstrap Controller": Uses Cluster and Machine information\nto generate a cloud-init based script\nto be used by an infrastructure provider\nin a startup/userdata field. 36 37 "Kubeadm Bootstrap Controller"-> "Kubeadm Bootstrap Controller":Generate bootstrap data and set\nKubeadmBootstrapConfig.Status.BootstrapData 38 39 "Kubeadm Bootstrap Controller"-> "Kubeadm Bootstrap Controller":Set KubeadmBootstrapConfig.Status.Ready = true 40 41 "Kubeadm Bootstrap Controller"->"API Server": Update KubeadmBootstrapConfig 42 "Kubeadm Bootstrap Controller"<<--"API Server": Response 43 44 hide footbox 45 @enduml