sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/images/control-plane-controller.plantuml (about)

     1  @startuml
     2  
     3  start
     4  
     5  :Control plane controller;
     6  repeat
     7  :Control plane controller enqueues a Reconcile call;
     8  if (Deleted?) then (yes)
     9      if (Has cluster owner?) then (yes)
    10          :Reconcile deletion;
    11      else (no)
    12      endif
    13      :Delete implementation-specific finalizer;
    14  else (no)
    15      if (OwnerReferences contains a Cluster) then (yes)
    16          :Add implementation-specific finalizer if needed;
    17          #LightBlue:Get cluster object for control plane;
    18          if (Cluster object has status.ControlPlaneEndpoint and status.InfrastructureReady is true) then (yes)
    19            :Reconcile control plane;
    20            if (Control plane is initialized) then (yes)
    21              #LightBlue:Set status.Initialized to true;
    22              if (Control plane is contactable) then (yes)
    23                #LightBlue:Set status.Ready to true;
    24              else (no)
    25                #Pink:Set status.Ready to false;
    26              endif
    27            else (no)
    28              #Pink:Return Requeue;
    29            endif
    30        else (no)
    31        endif
    32      else (no)
    33      endif
    34  endif
    35  #LightBlue:Patch ImplementationControlPlane back to API server;
    36  repeat while (Reconcile returned RequeueError?) is (yes)
    37  if (Reconcile returned error) then (yes)
    38  #Pink:Error reconciling control plane;
    39  else (no)
    40  endif
    41  stop
    42  
    43  @enduml