diff --git a/Makefile b/Makefile index 815f5bad..f1e863ff 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ just-integration-tests: $(KUBEBUILDER_ASSETS) vet local-tests: unit-tests integration-tests ## Run all local tests (unit & integration) system-tests: ## run end-to-end tests against Kubernetes cluster defined in ~/.kube/config. Expects cluster operator and messaging topology operator to be installed in the cluster - NAMESPACE="rabbitmq-system" ginkgo --randomize-all -r system_tests/ + NAMESPACE="rabbitmq-system" ginkgo --randomize-all -r $(GINKGO_EXTRA) system_tests/ # Build manager binary manager: generate fmt vet vuln diff --git a/api/v1beta1/binding_webhook.go b/api/v1beta1/binding_webhook.go index 4673a1f4..09f13547 100644 --- a/api/v1beta1/binding_webhook.go +++ b/api/v1beta1/binding_webhook.go @@ -14,6 +14,7 @@ import ( func (b *Binding) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(b). For(b). Complete() } diff --git a/api/v1beta1/exchange_webhook.go b/api/v1beta1/exchange_webhook.go index ff7ee11b..94a82aab 100644 --- a/api/v1beta1/exchange_webhook.go +++ b/api/v1beta1/exchange_webhook.go @@ -13,6 +13,7 @@ import ( func (e *Exchange) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(e). For(e). Complete() } diff --git a/api/v1beta1/federation_webhook.go b/api/v1beta1/federation_webhook.go index e3dad89a..b9af8b87 100644 --- a/api/v1beta1/federation_webhook.go +++ b/api/v1beta1/federation_webhook.go @@ -13,6 +13,7 @@ import ( func (f *Federation) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(f). For(f). Complete() } diff --git a/api/v1beta1/operatorpolicy_webhook.go b/api/v1beta1/operatorpolicy_webhook.go index 944ccd70..f6d77a61 100644 --- a/api/v1beta1/operatorpolicy_webhook.go +++ b/api/v1beta1/operatorpolicy_webhook.go @@ -13,6 +13,7 @@ import ( func (p *OperatorPolicy) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(p). For(p). Complete() } diff --git a/api/v1beta1/permission_webhook.go b/api/v1beta1/permission_webhook.go index 1b9a3bac..2b63675e 100644 --- a/api/v1beta1/permission_webhook.go +++ b/api/v1beta1/permission_webhook.go @@ -14,6 +14,7 @@ import ( func (p *Permission) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(p). For(p). Complete() } diff --git a/api/v1beta1/policy_webhook.go b/api/v1beta1/policy_webhook.go index 3d4c2cd6..642e9bc1 100644 --- a/api/v1beta1/policy_webhook.go +++ b/api/v1beta1/policy_webhook.go @@ -13,6 +13,7 @@ import ( func (p *Policy) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(p). For(p). Complete() } diff --git a/api/v1beta1/queue_webhook.go b/api/v1beta1/queue_webhook.go index 93b22090..23ac25e5 100644 --- a/api/v1beta1/queue_webhook.go +++ b/api/v1beta1/queue_webhook.go @@ -13,6 +13,7 @@ import ( func (q *Queue) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(q). For(q). Complete() } diff --git a/api/v1beta1/schemareplication_webhook.go b/api/v1beta1/schemareplication_webhook.go index f38220de..ca30cb84 100644 --- a/api/v1beta1/schemareplication_webhook.go +++ b/api/v1beta1/schemareplication_webhook.go @@ -13,6 +13,7 @@ import ( func (s *SchemaReplication) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(s). For(s). Complete() } diff --git a/api/v1beta1/shovel_webhook.go b/api/v1beta1/shovel_webhook.go index a3f97bf4..6ae39e35 100644 --- a/api/v1beta1/shovel_webhook.go +++ b/api/v1beta1/shovel_webhook.go @@ -13,6 +13,7 @@ import ( func (s *Shovel) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(s). For(s). Complete() } @@ -37,7 +38,6 @@ func (s *Shovel) ValidateCreate(_ context.Context, obj runtime.Object) (warnings // ValidateUpdate implements webhook.Validator so a webhook will be registered for the type func (s *Shovel) ValidateUpdate(_ context.Context, oldObj, newObj runtime.Object) (warnings admission.Warnings, err error) { - //TODO implement me oldShovel, ok := oldObj.(*Shovel) if !ok { return nil, apierrors.NewBadRequest(fmt.Sprintf("expected a shovel but got a %T", oldShovel)) diff --git a/api/v1beta1/topicpermission_webhook.go b/api/v1beta1/topicpermission_webhook.go index 36b4cb4b..dab427ee 100644 --- a/api/v1beta1/topicpermission_webhook.go +++ b/api/v1beta1/topicpermission_webhook.go @@ -14,6 +14,7 @@ import ( func (t *TopicPermission) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(t). For(t). Complete() } @@ -29,16 +30,16 @@ func (t *TopicPermission) ValidateCreate(_ context.Context, obj runtime.Object) return nil, fmt.Errorf("expected a RabbitMQ permission but got a %T", obj) } - if t.Spec.User == "" && t.Spec.UserReference == nil { + if tp.Spec.User == "" && tp.Spec.UserReference == nil { return nil, field.Required(field.NewPath("spec", "user and userReference"), "must specify either spec.user or spec.userReference") } - if t.Spec.User != "" && t.Spec.UserReference != nil { + if tp.Spec.User != "" && tp.Spec.UserReference != nil { return nil, field.Required(field.NewPath("spec", "user and userReference"), "cannot specify spec.user and spec.userReference at the same time") } - return nil, t.Spec.RabbitmqClusterReference.validate(tp.RabbitReference()) + return nil, tp.Spec.RabbitmqClusterReference.validate(tp.RabbitReference()) } // ValidateUpdate implements webhook.Validator so a webhook will be registered for the type diff --git a/api/v1beta1/user_webhook.go b/api/v1beta1/user_webhook.go index 8e004f2c..1c2d90c4 100644 --- a/api/v1beta1/user_webhook.go +++ b/api/v1beta1/user_webhook.go @@ -13,6 +13,7 @@ import ( func (u *User) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(u). For(u). Complete() } diff --git a/api/v1beta1/vhost_webhook.go b/api/v1beta1/vhost_webhook.go index 4c591dcb..6ec48b2e 100644 --- a/api/v1beta1/vhost_webhook.go +++ b/api/v1beta1/vhost_webhook.go @@ -13,6 +13,7 @@ import ( func (v *Vhost) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). + WithValidator(v). For(v). Complete() } diff --git a/system_tests/binding_system_test.go b/system_tests/binding_system_test.go index f8671c28..bae11e04 100644 --- a/system_tests/binding_system_test.go +++ b/system_tests/binding_system_test.go @@ -131,7 +131,7 @@ var _ = Describe("Binding", func() { updateBinding := topology.Binding{} Expect(k8sClient.Get(ctx, types.NamespacedName{Name: binding.Name, Namespace: binding.Namespace}, &updateBinding)).To(Succeed()) updatedBinding.Spec.RoutingKey = "new-key" - Expect(k8sClient.Update(ctx, &updatedBinding).Error()).To(ContainSubstring("invalid: spec.routingKey: Invalid value: \"new-key\": routingKey cannot be updated")) + Expect(k8sClient.Update(ctx, &updatedBinding).Error()).To(ContainSubstring("spec.routingKey: Invalid value: \"new-key\": routingKey cannot be updated")) By("deleting binding from rabbitmq server") Expect(k8sClient.Delete(ctx, binding)).To(Succeed())