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