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