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

     1  
     2  @startuml machinehealthcheck-controller
     3  
     4  start;
     5  :Machine Health Check controller;
     6  repeat
     7    repeat
     8      :MachineHealthCheck controller enqueues a Reconcile call;
     9      if (Nodes being watched in remote cluster) then (no)
    10        :Watch nodes in remote cluster;
    11      else (yes)
    12      endif
    13      :Find targets: Machines matched by selector plus respective Nodes;
    14      :Health check targets: Determine which Machines require remediation;
    15    repeat while (Remediations are allowed (current unhealthy <= max unhealthy)) is (no)
    16    -> yes;
    17    repeat
    18      if (Target requires remediation) then (yes)
    19        if (Machine is owned by a MachineSet) then (yes)
    20          if (Machine is a Control Plane Machine) then (no)
    21            #LightBlue:Delete Machine;
    22          else (yes)
    23          endif
    24        else (no)
    25        endif
    26        else (no)
    27      endif
    28    repeat while (more Targets) is (yes)
    29    -> no;
    30  repeat while (Targets likely to go unhealthy) is (yes: requeue with minimum
    31    time before timeout as delay)
    32  -> no;
    33  stop;
    34  
    35  @enduml