sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/images/bootstrap-controller.plantuml (about) 1 @startuml 2 title Figure 1: State diagram with a generic provider 3 4 (*) --> [ Machine Create ] "Pending" 5 6 note right 7 - Bootstrap provider watches Machines in "pending" state, 8 generates //BootstrapConfig.Status.DataSecretName// and sets 9 //BootstrapConfig.Status.Ready// = true. 10 - Machine controller sets //Machine.Spec.Bootstrap.DataSecretName// 11 from //BootstrapConfig.Status.DataSecretName//. 12 - Machine controller can now transition to the next state. 13 end note 14 15 "Pending" --> "Provisioning" 16 17 note right 18 - Infrastructure provider watches Machines in "provisioning" 19 state and starts creating infrastructure for those Machines. 20 - When MachineInfrastructure is ready sets 21 //MachineInfrastructure.Status.Ready// = true. 22 - Machine controller sets //Machine.Status.Addresses// 23 from //MachineInfrastructure.Status.Addresses// and other fields. 24 end note 25 26 "Provisioning" --> "Provisioned" 27 28 note right 29 - Machine controller watches Machines in "provisioning" state and 30 //MachineInfrastructure.Status.Ready// = true. 31 - Machine controller sets //Machine.Status.Phase// = "provisioned". 32 end note 33 34 "Provisioned" --> "Running" 35 36 note right 37 - Machine controller transitions to this state when 38 //Machine.ProviderID// is set and a Kubernetes Node with 39 the same //ProviderID// has been found and in Ready state. 40 end note 41 42 43 "Pending" --> "Deleting" 44 "Provisioning" --> "Deleting" 45 "Provisioned" --> "Deleting" 46 "Running" --> "Deleting" 47 48 "Deleting" --> "Deleted" 49 50 "Pending" --> "Failed" 51 "Provisioning" --> "Failed" 52 "Provisioned" --> "Failed" 53 "Running" --> "Failed" 54 "Deleting" --> "Failed" 55 "Deleted" --> "Failed" 56 57 "Failed" --> (*) 58 "Deleted" --> (*) 59 60 hide footbox 61 @enduml