Skip to content

Commit fe7a8d8

Browse files
Merge pull request #1916 from stuggi/enabled_conditions
Only init conditions for enabled services in InitConditions
2 parents 5977b36 + bbabcf9 commit fe7a8d8

2 files changed

Lines changed: 76 additions & 51 deletions

File tree

api/core/v1beta1/openstackcontrolplane_types.go

Lines changed: 76 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,43 +1168,92 @@ func (instance *OpenStackControlPlane) InitConditions() {
11681168
if instance.Status.Conditions == nil {
11691169
instance.Status.Conditions = condition.Conditions{}
11701170
}
1171+
1172+
// Always-on conditions (no Enabled flag)
11711173
cl := condition.CreateList(
1172-
condition.UnknownCondition(OpenStackControlPlaneRabbitMQReadyCondition, condition.InitReason, OpenStackControlPlaneRabbitMQReadyInitMessage),
1173-
condition.UnknownCondition(OpenStackControlPlaneOVNReadyCondition, condition.InitReason, OpenStackControlPlaneOVNReadyInitMessage),
1174-
condition.UnknownCondition(OpenStackControlPlaneNeutronReadyCondition, condition.InitReason, OpenStackControlPlaneNeutronReadyInitMessage),
1175-
condition.UnknownCondition(OpenStackControlPlaneMariaDBReadyCondition, condition.InitReason, OpenStackControlPlaneMariaDBReadyInitMessage),
1176-
condition.UnknownCondition(OpenStackControlPlaneMemcachedReadyCondition, condition.InitReason, OpenStackControlPlaneMemcachedReadyInitMessage),
1177-
condition.UnknownCondition(OpenStackControlPlaneKeystoneAPIReadyCondition, condition.InitReason, OpenStackControlPlaneKeystoneAPIReadyInitMessage),
1178-
condition.UnknownCondition(OpenStackControlPlanePlacementAPIReadyCondition, condition.InitReason, OpenStackControlPlanePlacementAPIReadyInitMessage),
1179-
condition.UnknownCondition(OpenStackControlPlaneGlanceReadyCondition, condition.InitReason, OpenStackControlPlaneGlanceReadyInitMessage),
1180-
condition.UnknownCondition(OpenStackControlPlaneCinderReadyCondition, condition.InitReason, OpenStackControlPlaneCinderReadyInitMessage),
1181-
condition.UnknownCondition(OpenStackControlPlaneNovaReadyCondition, condition.InitReason, OpenStackControlPlaneNovaReadyInitMessage),
1182-
condition.UnknownCondition(OpenStackControlPlaneIronicReadyCondition, condition.InitReason, OpenStackControlPlaneIronicReadyInitMessage),
1183-
condition.UnknownCondition(OpenStackControlPlaneClientReadyCondition, condition.InitReason, OpenStackControlPlaneClientReadyInitMessage),
1184-
condition.UnknownCondition(OpenStackControlPlaneManilaReadyCondition, condition.InitReason, OpenStackControlPlaneManilaReadyInitMessage),
1185-
condition.UnknownCondition(OpenStackControlPlaneHorizonReadyCondition, condition.InitReason, OpenStackControlPlaneHorizonReadyInitMessage),
1186-
condition.UnknownCondition(OpenStackControlPlaneDNSReadyCondition, condition.InitReason, OpenStackControlPlaneDNSReadyInitMessage),
1187-
condition.UnknownCondition(OpenStackControlPlaneTelemetryReadyCondition, condition.InitReason, OpenStackControlPlaneTelemetryReadyInitMessage),
1188-
condition.UnknownCondition(OpenStackControlPlaneHeatReadyCondition, condition.InitReason, OpenStackControlPlaneHeatReadyInitMessage),
1189-
condition.UnknownCondition(OpenStackControlPlaneSwiftReadyCondition, condition.InitReason, OpenStackControlPlaneSwiftReadyInitMessage),
1190-
condition.UnknownCondition(OpenStackControlPlaneOctaviaReadyCondition, condition.InitReason, OpenStackControlPlaneOctaviaReadyInitMessage),
1191-
condition.UnknownCondition(OpenStackControlPlaneDesignateReadyCondition, condition.InitReason, OpenStackControlPlaneDesignateReadyInitMessage),
1192-
condition.UnknownCondition(OpenStackControlPlaneBarbicanReadyCondition, condition.InitReason, OpenStackControlPlaneBarbicanReadyInitMessage),
1193-
condition.UnknownCondition(OpenStackControlPlaneRedisReadyCondition, condition.InitReason, OpenStackControlPlaneRedisReadyInitMessage),
11941174
condition.UnknownCondition(OpenStackControlPlaneCAReadyCondition, condition.InitReason, OpenStackControlPlaneCAReadyInitMessage),
11951175
condition.UnknownCondition(OpenStackControlPlaneOpenStackVersionInitializationReadyCondition, condition.InitReason, OpenStackControlPlaneOpenStackVersionInitializationReadyInitMessage),
1196-
condition.UnknownCondition(OpenStackControlPlaneWatcherReadyCondition, condition.InitReason, OpenStackControlPlaneWatcherReadyInitMessage),
11971176
condition.UnknownCondition(OpenStackControlPlaneInfrastructureReadyCondition, condition.InitReason, OpenStackControlPlaneInfrastructureReadyInitMessage),
11981177
condition.UnknownCondition(OpenStackControlPlaneBackupConfigReadyCondition, condition.InitReason, OpenStackControlPlaneBackupConfigReadyInitMessage),
1199-
1200-
// Also add the overall status condition as Unknown
1178+
condition.UnknownCondition(OpenStackControlPlaneClientReadyCondition, condition.InitReason, OpenStackControlPlaneClientReadyInitMessage),
12011179
condition.UnknownCondition(condition.ReadyCondition, condition.InitReason, condition.ReadyInitMessage),
12021180
)
1181+
1182+
// Only init conditions for enabled services to avoid misleading status
1183+
// when the controller doesn't reach a disabled service's reconciler
1184+
// (e.g., during minor update gating).
1185+
if instance.Spec.Rabbitmq.Enabled {
1186+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneRabbitMQReadyCondition, condition.InitReason, OpenStackControlPlaneRabbitMQReadyInitMessage))
1187+
}
1188+
if instance.Spec.Ovn.Enabled {
1189+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneOVNReadyCondition, condition.InitReason, OpenStackControlPlaneOVNReadyInitMessage))
1190+
}
1191+
if instance.Spec.Neutron.Enabled {
1192+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneNeutronReadyCondition, condition.InitReason, OpenStackControlPlaneNeutronReadyInitMessage))
1193+
}
1194+
if instance.Spec.Galera.Enabled {
1195+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneMariaDBReadyCondition, condition.InitReason, OpenStackControlPlaneMariaDBReadyInitMessage))
1196+
}
1197+
if instance.Spec.Memcached.Enabled {
1198+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneMemcachedReadyCondition, condition.InitReason, OpenStackControlPlaneMemcachedReadyInitMessage))
1199+
}
1200+
if instance.Spec.Keystone.Enabled {
1201+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneKeystoneAPIReadyCondition, condition.InitReason, OpenStackControlPlaneKeystoneAPIReadyInitMessage))
1202+
}
1203+
if instance.Spec.Placement.Enabled {
1204+
cl.Set(condition.UnknownCondition(OpenStackControlPlanePlacementAPIReadyCondition, condition.InitReason, OpenStackControlPlanePlacementAPIReadyInitMessage))
1205+
}
1206+
if instance.Spec.Glance.Enabled {
1207+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneGlanceReadyCondition, condition.InitReason, OpenStackControlPlaneGlanceReadyInitMessage))
1208+
}
1209+
if instance.Spec.Cinder.Enabled {
1210+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneCinderReadyCondition, condition.InitReason, OpenStackControlPlaneCinderReadyInitMessage))
1211+
}
1212+
if instance.Spec.Nova.Enabled {
1213+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneNovaReadyCondition, condition.InitReason, OpenStackControlPlaneNovaReadyInitMessage))
1214+
}
1215+
if instance.Spec.Ironic.Enabled {
1216+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneIronicReadyCondition, condition.InitReason, OpenStackControlPlaneIronicReadyInitMessage))
1217+
}
1218+
if instance.Spec.Manila.Enabled {
1219+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneManilaReadyCondition, condition.InitReason, OpenStackControlPlaneManilaReadyInitMessage))
1220+
}
1221+
if instance.Spec.Horizon.Enabled {
1222+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneHorizonReadyCondition, condition.InitReason, OpenStackControlPlaneHorizonReadyInitMessage))
1223+
}
1224+
if instance.Spec.DNS.Enabled {
1225+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneDNSReadyCondition, condition.InitReason, OpenStackControlPlaneDNSReadyInitMessage))
1226+
}
1227+
if instance.Spec.Telemetry.Enabled {
1228+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneTelemetryReadyCondition, condition.InitReason, OpenStackControlPlaneTelemetryReadyInitMessage))
1229+
}
1230+
if instance.Spec.Heat.Enabled {
1231+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneHeatReadyCondition, condition.InitReason, OpenStackControlPlaneHeatReadyInitMessage))
1232+
}
1233+
if instance.Spec.Swift.Enabled {
1234+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneSwiftReadyCondition, condition.InitReason, OpenStackControlPlaneSwiftReadyInitMessage))
1235+
}
1236+
if instance.Spec.Octavia.Enabled {
1237+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneOctaviaReadyCondition, condition.InitReason, OpenStackControlPlaneOctaviaReadyInitMessage))
1238+
}
1239+
if instance.Spec.Designate.Enabled {
1240+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneDesignateReadyCondition, condition.InitReason, OpenStackControlPlaneDesignateReadyInitMessage))
1241+
}
1242+
if instance.Spec.Barbican.Enabled {
1243+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneBarbicanReadyCondition, condition.InitReason, OpenStackControlPlaneBarbicanReadyInitMessage))
1244+
}
1245+
if instance.Spec.Redis.Enabled {
1246+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneRedisReadyCondition, condition.InitReason, OpenStackControlPlaneRedisReadyInitMessage))
1247+
}
1248+
if instance.Spec.Watcher.Enabled {
1249+
cl.Set(condition.UnknownCondition(OpenStackControlPlaneWatcherReadyCondition, condition.InitReason, OpenStackControlPlaneWatcherReadyInitMessage))
1250+
}
1251+
12031252
// Init Topology condition if there's a reference
12041253
if instance.Spec.TopologyRef != nil {
1205-
c := condition.UnknownCondition(condition.TopologyReadyCondition, condition.InitReason, condition.TopologyReadyInitMessage)
1206-
cl.Set(c)
1254+
cl.Set(condition.UnknownCondition(condition.TopologyReadyCondition, condition.InitReason, condition.TopologyReadyInitMessage))
12071255
}
1256+
12081257
// initialize conditions used later as Status=Unknown
12091258
instance.Status.Conditions.Init(&cl)
12101259
}

test/kuttl/tests/ctlplane-staged-deployment/01-assert-infrastructure-ready-paused.yaml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,31 +34,16 @@ status:
3434
- reason: Init
3535
status: Unknown
3636
type: OpenStackControlPlaneClientReady
37-
- reason: Init
38-
status: Unknown
39-
type: OpenStackControlPlaneDesignateReady
4037
- reason: Init
4138
status: Unknown
4239
type: OpenStackControlPlaneGlanceReady
43-
- reason: Init
44-
status: Unknown
45-
type: OpenStackControlPlaneHeatReady
46-
- reason: Init
47-
status: Unknown
48-
type: OpenStackControlPlaneHorizonReady
4940
- message: OpenStackControlPlane Infrastructure ready - deployment paused. Remove annotation to resume reconcile of OpenStack services
5041
reason: Ready
5142
status: "True"
5243
type: OpenStackControlPlaneInfrastructureReady
53-
- reason: Init
54-
status: Unknown
55-
type: OpenStackControlPlaneIronicReady
5644
- reason: Init
5745
status: Unknown
5846
type: OpenStackControlPlaneKeystoneAPIReady
59-
- reason: Init
60-
status: Unknown
61-
type: OpenStackControlPlaneManilaReady
6247
- message: OpenStackControlPlane MariaDB completed
6348
reason: Ready
6449
status: "True"
@@ -77,9 +62,6 @@ status:
7762
reason: Ready
7863
status: "True"
7964
type: OpenStackControlPlaneOVNReady
80-
- reason: Init
81-
status: Unknown
82-
type: OpenStackControlPlaneOctaviaReady
8365
- message: OpenStackControlPlane OpenStackVersion initialized
8466
reason: Ready
8567
status: "True"
@@ -91,15 +73,9 @@ status:
9173
reason: Ready
9274
status: "True"
9375
type: OpenStackControlPlaneRabbitMQReady
94-
- reason: Init
95-
status: Unknown
96-
type: OpenStackControlPlaneRedisReady
9776
- reason: Init
9877
status: Unknown
9978
type: OpenStackControlPlaneSwiftReady
10079
- reason: Init
10180
status: Unknown
10281
type: OpenStackControlPlaneTelemetryReady
103-
- reason: Init
104-
status: Unknown
105-
type: OpenStackControlPlaneWatcherReady

0 commit comments

Comments
 (0)