From 8ea6bf03851ef2ebfade7980970756b6c1693a6f Mon Sep 17 00:00:00 2001 From: Luca Miccini Date: Tue, 21 Oct 2025 09:36:32 +0200 Subject: [PATCH] Revert "Switch to quorumqueues only for new controlplane resources" --- .../v1beta1/openstackcontrolplane_webhook.go | 16 ------- .../openstackoperator_controller_test.go | 48 ------------------- 2 files changed, 64 deletions(-) diff --git a/apis/core/v1beta1/openstackcontrolplane_webhook.go b/apis/core/v1beta1/openstackcontrolplane_webhook.go index 31e74ad31..6eabdb2cd 100644 --- a/apis/core/v1beta1/openstackcontrolplane_webhook.go +++ b/apis/core/v1beta1/openstackcontrolplane_webhook.go @@ -1068,22 +1068,6 @@ func (r *OpenStackControlPlane) DefaultServices() { r.Spec.Designate.Template.Default() } - // RabbitMQ - if r.Spec.Rabbitmq.Enabled || r.Spec.Rabbitmq.Templates != nil { - if r.Spec.Rabbitmq.Templates == nil { - r.Spec.Rabbitmq.Templates = ptr.To(map[string]rabbitmqv1.RabbitMqSpecCore{}) - } - - for key, template := range *r.Spec.Rabbitmq.Templates { - // Enforce queueType=Quorum for all new resources, preserve existing resources unchanged - if r.ObjectMeta.CreationTimestamp.IsZero() { - template.QueueType = "Quorum" - } - // By-value copy, need to update - (*r.Spec.Rabbitmq.Templates)[key] = template - } - } - // Redis if r.Spec.Redis.Enabled || r.Spec.Redis.Templates != nil { if r.Spec.Redis.Templates == nil { diff --git a/tests/functional/ctlplane/openstackoperator_controller_test.go b/tests/functional/ctlplane/openstackoperator_controller_test.go index b3efb58e2..9b013d37d 100644 --- a/tests/functional/ctlplane/openstackoperator_controller_test.go +++ b/tests/functional/ctlplane/openstackoperator_controller_test.go @@ -3145,54 +3145,6 @@ var _ = Describe("OpenStackOperator Webhook", func() { Expect(OSCtlplane.Labels).Should(HaveKeyWithValue("core.openstack.org/openstackcontrolplane", "foo")) }) - It("Enforces queueType=Quorum for new resources", func() { - spec := GetDefaultOpenStackControlPlaneSpec() - spec["tls"] = GetTLSPublicSpec() - - DeferCleanup( - th.DeleteInstance, - CreateOpenStackControlPlane(types.NamespacedName{Name: "test-new-quorum", Namespace: namespace}, spec), - ) - - OSCtlplane := GetOpenStackControlPlane(types.NamespacedName{Name: "test-new-quorum", Namespace: namespace}) - Expect(OSCtlplane.Spec.Rabbitmq.Templates).Should(Not(BeNil())) - - // Verify that all templates get queueType=Quorum for new resources - for templateName, template := range *OSCtlplane.Spec.Rabbitmq.Templates { - Expect(template.QueueType).Should(Equal("Quorum"), "RabbitMQ template %s should have queueType=Quorum", templateName) - } - }) - - It("Preserves existing queueType values on updates", func() { - spec := GetDefaultOpenStackControlPlaneSpec() - spec["tls"] = GetTLSPublicSpec() - - // Create a resource first (will get Quorum by default) - ctlplane := CreateOpenStackControlPlane(types.NamespacedName{Name: "test-preserve-existing", Namespace: namespace}, spec) - DeferCleanup(th.DeleteInstance, ctlplane) - - // Manually set it to Mirrored to simulate existing deployment - Eventually(func(g Gomega) { - existingCtlplane := GetOpenStackControlPlane(types.NamespacedName{Name: "test-preserve-existing", Namespace: namespace}) - (*existingCtlplane.Spec.Rabbitmq.Templates)["rabbitmq"] = rabbitmqv1.RabbitMqSpecCore{ - QueueType: "Mirrored", // Simulate existing value - } - g.Expect(k8sClient.Update(ctx, existingCtlplane)).Should(Succeed()) - }).Should(Succeed()) - - // Verify it's preserved on subsequent updates - Eventually(func(g Gomega) { - updatedCtlplane := GetOpenStackControlPlane(types.NamespacedName{Name: "test-preserve-existing", Namespace: namespace}) - updatedCtlplane.Spec.Secret = "updated-secret" // Trigger webhook - g.Expect(k8sClient.Update(ctx, updatedCtlplane)).Should(Succeed()) - - // Should still be Mirrored after update - finalCtlplane := GetOpenStackControlPlane(types.NamespacedName{Name: "test-preserve-existing", Namespace: namespace}) - rabbitTemplate := (*finalCtlplane.Spec.Rabbitmq.Templates)["rabbitmq"] - g.Expect(rabbitTemplate.QueueType).Should(Equal("Mirrored"), "Existing queueType should be preserved") - }).Should(Succeed()) - }) - It("calls placement validation webhook", func() { spec := GetDefaultOpenStackControlPlaneSpec() spec["tls"] = GetTLSPublicSpec()