sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/cluster-spec-crds/figure1.plantuml (about)

     1  @startuml
     2  title Figure 1. Cluster Provisioning process
     3  actor User
     4  
     5  ' -- GROUPS START ---
     6  
     7  box #LightGreen
     8  participant "API Server"
     9  end box
    10  
    11  box #LightBlue
    12  participant "Cluster Controller"
    13  end box
    14  
    15  box #LightGrey
    16  participant "Infrastructure Controller"
    17  end box
    18  
    19  ' -- GROUPS END ---
    20  
    21  User -> "API Server" : Create Cluster Infrastructure
    22  "API Server" -->> "Infrastructure Controller": New Provider Infrastructure
    23  
    24  opt #FFFFFFCC IF Infrastructure has no owner ref
    25  "Infrastructure Controller"->"Infrastructure Controller": Do Nothing
    26  end
    27  
    28  User -> "API Server": Create Cluster
    29  "API Server" -->> "Cluster Controller": New Cluster
    30  "Cluster Controller" -> "API Server": Get Infrastructure
    31  opt #FFFFFFCC Required Only if Infrastructure not seen before
    32  "Cluster Controller" -> "Cluster Controller": Add Watcher for Cluster.InfrastructureRef.Kind objects
    33  end
    34  
    35  opt #FFFFFFCC Required Only if Infrastructure has no owner
    36  "Cluster Controller" -> "Cluster Controller": Set Infrastructure's owner to Cluster
    37  "Cluster Controller" -> "API Server": Update Infrastructure
    38  end
    39  
    40  "API Server" -->> "Infrastructure Controller": Infrastructure update
    41  opt #FFFFFFCC Required only if Infrastructure has owner ref
    42  "Infrastructure Controller" -> "API Server": Get Cluster
    43  "Infrastructure Controller" -> "Infrastructure Controller": Provision infrastructure
    44  "Infrastructure Controller" -> "Infrastructure Controller": Set Infrastructure.Status.APIEndpoint
    45  "Infrastructure Controller" -> "Infrastructure Controller": Set Infrastructure.Status.Ready=true
    46  "Infrastructure Controller" -> "API Server": Update Infrastructure
    47  end
    48  
    49  "API Server" -->> "Cluster Controller": Infrastructure Update
    50  opt #FFFFFFCC Only required if Infrastructure.Status.Ready is true
    51  "Cluster Controller" -> "API Server": Get Cluster
    52  "Cluster Controller" -> "Cluster Controller": Set Cluster.Status.APIEndpoint = Infrastructure.Status.APIEndpoint
    53  "Cluster Controller" -> "Cluster Controller": Set Cluster.Status.InfrastructureReady true
    54  "Cluster Controller" -> "API Server": Update Cluster
    55  end
    56  
    57  hide footbox
    58  @enduml