@@ -136,12 +136,7 @@ func (r *CloudStackMachineReconciler) Reconcile(ctx context.Context, req ctrl.Re
136
136
}
137
137
}
138
138
139
- // TODO: get zone from capi machine.
140
- var zone infrav1.Zone
141
- for _ , theZone := range csCluster .Status .Zones { // Ugly way to get the only Zone.
142
- zone = theZone
143
- }
144
- if zone .Id == "" {
139
+ if capiMachine .Spec .FailureDomain != nil && * capiMachine .Spec .FailureDomain == "" {
145
140
log .Info ("CloudStackCluster ZoneId not initialized. Likely not ready." )
146
141
return ctrl.Result {RequeueAfter : requeueTimeout }, nil
147
142
}
@@ -160,6 +155,15 @@ func (r *CloudStackMachineReconciler) reconcile(
160
155
161
156
log .V (1 ).Info ("reconcile CloudStackMachine" )
162
157
158
+ zoneId := capiMachine .Spec .FailureDomain
159
+ zone := infrav1.Zone {}
160
+ for _ , zoneStatus := range csCluster .Status .Zones {
161
+ if zoneId == & zoneStatus .Id {
162
+ zone = zoneStatus
163
+ break
164
+ }
165
+ }
166
+
163
167
// Make sure bootstrap data is available in CAPI machine.
164
168
if capiMachine .Spec .Bootstrap .DataSecretName == nil {
165
169
log .Info ("Bootstrap DataSecretName not yet available." )
@@ -193,7 +197,7 @@ func (r *CloudStackMachineReconciler) reconcile(
193
197
csMachine .Status .Ready = true
194
198
} else if csMachine .Status .InstanceState == "Error" {
195
199
log .Info ("CloudStackMachine VM in error state. Deleting associated Machine." , "csMachine" , csMachine )
196
- if err := r .Client .Delete (ctx , capiMachine ); err != nil {
200
+ if err := r .Client .Delete (ctx , csMachine ); err != nil {
197
201
return ctrl.Result {}, err
198
202
}
199
203
return ctrl.Result {RequeueAfter : requeueTimeout }, nil
@@ -202,15 +206,11 @@ func (r *CloudStackMachineReconciler) reconcile(
202
206
return ctrl.Result {RequeueAfter : requeueTimeout }, nil
203
207
}
204
208
205
- if len (csCluster .Spec .Zones ) == 1 {
206
- for _ , zone := range csCluster .Status .Zones { // Ugly way to get the only Zone.
207
- if util .IsControlPlaneMachine (capiMachine ) && zone .Network .Type == cloud .NetworkTypeIsolated {
208
- log .Info ("Assigning VM to load balancer rule." )
209
- err := r .CS .AssignVMToLoadBalancerRule (csCluster , * csMachine .Spec .InstanceID )
210
- if err != nil {
211
- return ctrl.Result {}, err
212
- }
213
- }
209
+ if util .IsControlPlaneMachine (capiMachine ) && zone .Network .Type == cloud .NetworkTypeIsolated {
210
+ log .Info ("Assigning VM to load balancer rule." )
211
+ err := r .CS .AssignVMToLoadBalancerRule (csCluster , * csMachine .Spec .InstanceID )
212
+ if err != nil {
213
+ return ctrl.Result {}, err
214
214
}
215
215
}
216
216
0 commit comments