Skip to content

Commit 67446b6

Browse files
committed
Check for Ceilometer and Autoscaling dependencies
1 parent cde0545 commit 67446b6

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

apis/core/v1beta1/openstackcontrolplane_webhook.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,14 @@ func (r *OpenStackControlPlane) checkDepsEnabled(name string) string {
167167
r.Spec.Ovn.Enabled) {
168168
reqs = "Galera, Memcached, RabbitMQ, Keystone, Glance, Neutron, Nova, OVN"
169169
}
170+
case "Telemetry.Autoscaling":
171+
if !(r.Spec.Galera.Enabled && r.Spec.Heat.Enabled && r.Spec.Rabbitmq.Enabled && r.Spec.Keystone.Enabled) {
172+
reqs = "Galera, Heat, RabbitMQ, Keystone"
173+
}
174+
case "Telemetry.Ceilometer":
175+
if !(r.Spec.Rabbitmq.Enabled && r.Spec.Keystone.Enabled) {
176+
reqs = "RabbitMQ, Keystone"
177+
}
170178
}
171179

172180
// If "reqs" is not the empty string, we have missing requirements
@@ -304,6 +312,20 @@ func (r *OpenStackControlPlane) ValidateServiceDependencies(basePath *field.Path
304312
allErrs = append(allErrs, err)
305313
}
306314
}
315+
if r.Spec.Telemetry.Enabled && r.Spec.Telemetry.Template.Ceilometer.Enabled {
316+
if depErrorMsg := r.checkDepsEnabled("Telemetry.Ceilometer"); depErrorMsg != "" {
317+
err := field.Invalid(basePath.Child("telemetry").Child("template").Child("ceilometer").Child("enabled"),
318+
r.Spec.Telemetry.Template.Ceilometer.Enabled, depErrorMsg)
319+
allErrs = append(allErrs, err)
320+
}
321+
}
322+
if r.Spec.Telemetry.Enabled && r.Spec.Telemetry.Template.Autoscaling.Enabled {
323+
if depErrorMsg := r.checkDepsEnabled("Telemetry.Autoscaling"); depErrorMsg != "" {
324+
err := field.Invalid(basePath.Child("telemetry").Child("template").Child("autoscaling").Child("enabled"),
325+
r.Spec.Telemetry.Template.Autoscaling.Enabled, depErrorMsg)
326+
allErrs = append(allErrs, err)
327+
}
328+
}
307329

308330
return allErrs
309331
}

0 commit comments

Comments
 (0)