sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/topology-mutation-hook/topology-reconciliation.plantuml (about) 1 @startuml 2 title Figure 1. Cluster topology reconciliation 3 4 5 ' -- GROUPS START --- 6 7 box #LightGreen 8 participant "API Server" 9 end box 10 11 box #LightBlue 12 participant "Cluster Topology Controller" 13 end box 14 15 box #LightBlue 16 participant "External Patch Extensions" 17 end box 18 19 ' -- GROUPS END --- 20 21 "API Server" --> "Cluster Topology Controller": Cluster reconcile event 22 activate "Cluster Topology Controller" 23 24 "Cluster Topology Controller" -> "API Server": Get current Cluster topology 25 activate "API Server" 26 "API Server" -> "Cluster Topology Controller": 27 deactivate "API Server" 28 29 group #FFFFFFCC Compute desired State 30 "Cluster Topology Controller" -> "Cluster Topology Controller": Compute desired State 31 loop Ordered list of Patches 32 alt 33 "Cluster Topology Controller" -> "Cluster Topology Controller": Generate inline patches 34 else 35 "Cluster Topology Controller" -> "External Patch Extensions": Generate external patches 36 activate "External Patch Extensions" 37 "External Patch Extensions" -> "Cluster Topology Controller": 38 deactivate "External Patch Extensions" 39 end 40 "Cluster Topology Controller" -> "Cluster Topology Controller": Apply patches to desired State 41 end loop 42 43 loop External Patches 44 "Cluster Topology Controller" -> "External Patch Extensions": ValidateTopology 45 activate "External Patch Extensions" 46 "External Patch Extensions" -> "Cluster Topology Controller": 47 deactivate "External Patch Extensions" 48 end loop 49 end group 50 51 "Cluster Topology Controller" -> "API Server": Reconcile Cluster topology 52 53 deactivate "Cluster Topology Controller" 54 55 hide footbox 56 @enduml