@@ -227,16 +227,26 @@ func (s *Service) getOrUpdateAllowedCIDRS(openStackCluster *infrav1.OpenStackClu
227
227
if len (openStackCluster .Spec .APIServerLoadBalancer .AllowedCIDRs ) > 0 {
228
228
allowedCIDRs = append (allowedCIDRs , openStackCluster .Spec .APIServerLoadBalancer .AllowedCIDRs ... )
229
229
230
- if openStackCluster .Spec .Bastion .Enabled {
231
- allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Bastion .FloatingIP , openStackCluster .Status .Bastion .IP )
232
- }
230
+ // In the first reconciliation loop, only the Ready field is set in openStackCluster.Status
231
+ // All other fields are empty/nil
232
+ if openStackCluster .Status .Bastion != nil {
233
+ if openStackCluster .Status .Bastion .FloatingIP != "" {
234
+ allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Bastion .FloatingIP )
235
+ }
233
236
234
- if openStackCluster .Status .Network .Subnet .CIDR != "" {
235
- allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Network .Subnet .CIDR )
237
+ if openStackCluster .Status .Bastion .IP != "" {
238
+ allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Bastion .IP )
239
+ }
236
240
}
237
241
238
- if len (openStackCluster .Status .Network .Router .IPs ) > 0 {
239
- allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Network .Router .IPs ... )
242
+ if openStackCluster .Status .Network != nil {
243
+ if openStackCluster .Status .Network .Subnet .CIDR != "" {
244
+ allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Network .Subnet .CIDR )
245
+ }
246
+
247
+ if len (openStackCluster .Status .Network .Router .IPs ) > 0 {
248
+ allowedCIDRs = append (allowedCIDRs , openStackCluster .Status .Network .Router .IPs ... )
249
+ }
240
250
}
241
251
}
242
252
0 commit comments