Skip to content

Commit 6100a85

Browse files
committed
Change RabbitmqClusterSpecCore.Spec.Override.StatefuleSet to raw json type
Use raw json instead of nesting a giant struct. Add webhooks to validate the override struct and warn that overriding the statefulset struct is deprecated. Jira: OSPRH-17003
1 parent 1fb1db4 commit 6100a85

13 files changed

Lines changed: 32 additions & 19081 deletions

apis/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 1 addition & 3539 deletions
Large diffs are not rendered by default.

apis/core/v1beta1/openstackcontrolplane_webhook.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,12 @@ func (r *OpenStackControlPlane) ValidateUpdate(old runtime.Object) (admission.Wa
149149
return nil, apierrors.NewInternalError(fmt.Errorf("unable to convert existing object"))
150150
}
151151

152+
var allWarn []string
152153
var allErrs field.ErrorList
153154
basePath := field.NewPath("spec")
154-
if err := r.ValidateUpdateServices(oldControlPlane.Spec, basePath); err != nil {
155-
allErrs = append(allErrs, err...)
156-
}
155+
156+
allWarn, errs := r.ValidateUpdateServices(oldControlPlane.Spec, basePath)
157+
allErrs = append(allErrs, errs...)
157158

158159
if err := r.ValidateTopology(basePath); err != nil {
159160
allErrs = append(allErrs, err)
@@ -165,7 +166,7 @@ func (r *OpenStackControlPlane) ValidateUpdate(old runtime.Object) (admission.Wa
165166
r.Name, allErrs)
166167
}
167168

168-
return nil, nil
169+
return allWarn, nil
169170
}
170171

171172
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
@@ -382,7 +383,9 @@ func (r *OpenStackControlPlane) ValidateCreateServices(basePath *field.Path) (ad
382383
errors = append(errors, err...)
383384

384385
for rabbitmqName, rabbitmqSpec := range *r.Spec.Rabbitmq.Templates {
385-
errors = append(errors, rabbitmqSpec.ValidateCreate(basePath.Child("rabbitmq").Child("template").Key(rabbitmqName), r.Namespace)...)
386+
warn, errs := rabbitmqSpec.ValidateCreate(basePath.Child("rabbitmq").Child("template").Key(rabbitmqName), r.Namespace)
387+
warnings = append(warnings, warn...)
388+
errors = append(errors, errs...)
386389
}
387390
}
388391
}
@@ -401,8 +404,9 @@ func (r *OpenStackControlPlane) ValidateCreateServices(basePath *field.Path) (ad
401404
}
402405

403406
// ValidateUpdateServices validating service definitions during the OpenstackControlPlane CR update
404-
func (r *OpenStackControlPlane) ValidateUpdateServices(old OpenStackControlPlaneSpec, basePath *field.Path) field.ErrorList {
407+
func (r *OpenStackControlPlane) ValidateUpdateServices(old OpenStackControlPlaneSpec, basePath *field.Path) (admission.Warnings, field.ErrorList) {
405408
var errors field.ErrorList
409+
var warnings []string
406410

407411
errors = append(errors, r.ValidateServiceDependencies(basePath)...)
408412

@@ -552,9 +556,10 @@ func (r *OpenStackControlPlane) ValidateUpdateServices(old OpenStackControlPlane
552556
}
553557
oldRabbitmqs := *old.Rabbitmq.Templates
554558
for rabbitmqName, rabbitmqSpec := range *r.Spec.Rabbitmq.Templates {
555-
556559
if oldRabbitmq, ok := oldRabbitmqs[rabbitmqName]; ok {
557-
errors = append(errors, rabbitmqSpec.ValidateUpdate(oldRabbitmq, basePath.Child("rabbitmq").Child("templates").Key(rabbitmqName), r.Namespace)...)
560+
warn, errs := rabbitmqSpec.ValidateUpdate(oldRabbitmq, basePath.Child("rabbitmq").Child("template").Key(rabbitmqName), r.Namespace)
561+
warnings = append(warnings, warn...)
562+
errors = append(errors, errs...)
558563
}
559564
}
560565
}
@@ -569,7 +574,7 @@ func (r *OpenStackControlPlane) ValidateUpdateServices(old OpenStackControlPlane
569574
}
570575
}
571576

572-
return errors
577+
return warnings, errors
573578
}
574579

575580
// ValidateServiceDependencies ensures that when a service is enabled then all the services it depends on are also

apis/go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ require (
114114
replace github.com/openshift/api => github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094 //allow-merging
115115

116116
// custom RabbitmqClusterSpecCore for OpenStackControlplane (v2.9.0_patches_tag)
117-
replace github.com/rabbitmq/cluster-operator/v2 => github.com/openstack-k8s-operators/rabbitmq-cluster-operator/v2 v2.6.1-0.20241017142550-a3524acedd49 //allow-merging
117+
replace github.com/rabbitmq/cluster-operator/v2 => github.com/olliewalsh/rabbitmq-cluster-operator/v2 v2.6.1-0.20250704134320-4a19b2c6f2fd
118+
119+
replace github.com/openstack-k8s-operators/infra-operator/apis => github.com/olliewalsh/infra-operator/apis v0.0.0-20250710153752-0bb43354c217

apis/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
8888
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
8989
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
9090
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
91+
github.com/olliewalsh/infra-operator/apis v0.0.0-20250710153752-0bb43354c217 h1:XDFYf0w7NxOh3CqXH+ld2vywe5ROxNjV7YsLZow2nv0=
92+
github.com/olliewalsh/infra-operator/apis v0.0.0-20250710153752-0bb43354c217/go.mod h1:HMeEFVPJOatbQQc4XcpVrF6BpCEOEq9EPG9jSxcyQXw=
93+
github.com/olliewalsh/rabbitmq-cluster-operator/v2 v2.6.1-0.20250704134320-4a19b2c6f2fd h1:ihR1/op/ICXVy7dLMpa9n88BMDXHluiKs1S4I8jfVT0=
94+
github.com/olliewalsh/rabbitmq-cluster-operator/v2 v2.6.1-0.20250704134320-4a19b2c6f2fd/go.mod h1:6Mq2N/KtNFW20L+PQC5qkeK8R8UGadmGBXL8HDY6lcg=
9195
github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo=
9296
github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI=
9397
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
@@ -106,8 +110,6 @@ github.com/openstack-k8s-operators/heat-operator/api v0.6.1-0.20250707155403-737
106110
github.com/openstack-k8s-operators/heat-operator/api v0.6.1-0.20250707155403-737da02889b7/go.mod h1:V9lnzy7vDqRTcxpT0joCg8B9KbXlsZD+EdOB6Pk730s=
107111
github.com/openstack-k8s-operators/horizon-operator/api v0.6.1-0.20250707161605-e320c330a124 h1:yahXPsaGO7kWt9budmzqzk/6bDpA7b0OlhvXs1100S8=
108112
github.com/openstack-k8s-operators/horizon-operator/api v0.6.1-0.20250707161605-e320c330a124/go.mod h1:Up2Tuc34HTABncRxHlelLjNKJFRcju28jpn2uOUVDao=
109-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20250707164913-ecb62273f7b5 h1:ur8OBhMf/ryfhq6Z1wMgn3kQV5hI0TgTOJiLZvfZtfM=
110-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20250707164913-ecb62273f7b5/go.mod h1:HMeEFVPJOatbQQc4XcpVrF6BpCEOEq9EPG9jSxcyQXw=
111113
github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250707144322-3f38a429389f h1:W9zaVzs58Pk7cX1mHV7ufe9DRweJB90G7sf5Tp0C3us=
112114
github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250707144322-3f38a429389f/go.mod h1:Ftt4i0UyXpaJkmqYYF0SK7nM9qtOv8Rh9BS5+7jLoCY=
113115
github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250707094050-0bfabceb9145 h1:4RyiT+I2No9b5jcmXiN31eBXYPb58VQ206ec4PYt5ds=
@@ -134,8 +136,6 @@ github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20250707081746-704c
134136
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20250707081746-704c7e422dc7/go.mod h1:OozMIeeEhqLGf2j4C01H1RD2/OSfx5W3y+g6/aAbnNE=
135137
github.com/openstack-k8s-operators/placement-operator/api v0.6.1-0.20250707171111-ffcacac27d6e h1:JZsC2pxD6iiIDNHZPliPhFvXqjjxfkegUxMGh6PVOO8=
136138
github.com/openstack-k8s-operators/placement-operator/api v0.6.1-0.20250707171111-ffcacac27d6e/go.mod h1:YRYwaVB6rPNgBjWr36WTUst+3vfAQhStaTHBtx2p1QU=
137-
github.com/openstack-k8s-operators/rabbitmq-cluster-operator/v2 v2.6.1-0.20241017142550-a3524acedd49 h1:/7SnnHfGCH/dwuZFNUx54zw4cnwv2w6hjONq16aoowM=
138-
github.com/openstack-k8s-operators/rabbitmq-cluster-operator/v2 v2.6.1-0.20241017142550-a3524acedd49/go.mod h1:6Mq2N/KtNFW20L+PQC5qkeK8R8UGadmGBXL8HDY6lcg=
139139
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20250707082032-7d602d482e23 h1:FBWPG97JOPaA3FzZQ42IQWkicgJE8jqYZcFlByMB2lE=
140140
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20250707082032-7d602d482e23/go.mod h1:AWJZ0UOiQKNJMyAzDw3bRcRihRXe4z3lekofG5/BWds=
141141
github.com/openstack-k8s-operators/telemetry-operator/api v0.6.1-0.20250707151723-6053161705ba h1:8QJ8wFuVRB7xsocEUi+LVhJIYpuSkOeCeGOm8eNgpY4=

0 commit comments

Comments
 (0)