sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/machine-states-preboot/Figure6.plantuml (about) 1 @startuml 2 title Figure 6: User creates a machine with kubeadm bootstrapper 3 4 5 ' -- GROUPS START --- 6 7 box #lightgreen 8 participant "API Server" 9 end box 10 11 box #lightsalmon 12 participant "AWS Infrastructure Controller" 13 end box 14 15 ' -- GROUPS END --- 16 17 entity AWS 18 19 note over "AWS Infrastructure Controller": Watches AWSInfrastructureConfig\nand Machine events with mapFunc 20 21 "API Server"-->>"AWS Infrastructure Controller": Machine updated 22 23 "AWS Infrastructure Controller"-> "AWS Infrastructure Controller": Enqueues AWSInfrastructureConfig Reconcile 24 25 "AWS Infrastructure Controller"-> "AWS Infrastructure Controller": AWSInfrastructureConfig Controller Reconcile 26 activate "AWS Infrastructure Controller" 27 28 note over "AWS Infrastructure Controller": - ✅ AWSInfrastructureConfig.OwnerReferences \ncontains a Machine 29 30 "AWS Infrastructure Controller"->"API Server": Get Machine 31 "AWS Infrastructure Controller"<<--"API Server": Response 32 33 "AWS Infrastructure Controller"->"API Server": Get Cluster 34 "AWS Infrastructure Controller"<<--"API Server": Response 35 36 note over "AWS Infrastructure Controller": - ✅ Machine.Status.Phase is "Provisioning" \n- ✅ Machine.Spec.Bootstrap.Data is populated (not <nil>)\n- ✅ AWS supports user-data\n- ✅ AWSInfrastructureConfig is valid\n- ✅ AWSInfrastructureConfig.Status.Ready is false 37 38 "AWS Infrastructure Controller"-> "AWS Infrastructure Controller": Copy Machine.Spec.Bootstrap.Data to *ec2.RunInstancesInput 39 40 "AWS Infrastructure Controller"-> AWS: RunInstances(*ec2.RunInstancesInput) 41 "AWS Infrastructure Controller"<<--AWS: Response 42 43 "AWS Infrastructure Controller"-> "AWS Infrastructure Controller":Set AWSInfrastructureConfig.Status.Ready = true 44 45 "AWS Infrastructure Controller"->"API Server": Update AWSInfrastructureConfig 46 "AWS Infrastructure Controller"<<--"API Server": Response 47 48 hide footbox 49 @enduml