sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/machine-states-preboot/Figure8.plantuml (about)

     1  @startuml
     2  title Figure 8: 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 #lightblue
    11  participant "Cluster API Machine Controller"
    12  end box
    13  
    14  box #lightgreen
    15  participant "Workload Cluster API Server"
    16  end box
    17  
    18  ' -- GROUPS END ---
    19  
    20  
    21  "API Server"-->>"Cluster API Machine Controller": AWSInfrastructureConfig updated
    22  
    23  "Cluster API Machine Controller"-> "Cluster API Machine Controller":Machine Controller Reconcile
    24  activate "Cluster API Machine Controller"
    25  
    26  note over "Cluster API Machine Controller": - ✅ Machine.Status.Phase is "Provisioned" \n- ✅ Machine.Spec.InfrastructureRef -> Status.Ready is true\n- ✅ Machine.Spec.InfrastructureRef -> Status.Addresses is not empty
    27  
    28  loop #FFFFFFCC until timeout or Node's status is Ready
    29  "Cluster API Machine Controller"->"Workload Cluster API Server": Get Node
    30  "Cluster API Machine Controller"<<--"Workload Cluster API Server": Response
    31  note over "Cluster API Machine Controller":Loop conditions:\n- ✅ Node.Spec.ProviderID matches Machine.Spec.ProviderID\n- ✅ Node status is "Ready"
    32  end
    33  
    34  "Cluster API Machine Controller"->"Cluster API Machine Controller": Set Machine.Status.NodeRef
    35  
    36  "Cluster API Machine Controller"->"Cluster API Machine Controller": Set Machine.Status.Phase to "Ready"
    37  
    38  "Cluster API Machine Controller"->"API Server": Update Machine
    39  "Cluster API Machine Controller"<--"API Server": Response
    40  
    41  deactivate "Cluster API Machine Controller"
    42  
    43  hide footbox
    44  @enduml