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