From fb666b5529b42cb499076d3f9bac965a3453a9a5 Mon Sep 17 00:00:00 2001 From: Howard Gao Date: Mon, 21 Feb 2022 15:16:56 +0800 Subject: [PATCH] Issue #151 No service is created for acceptor when "expose:false" The bug is true for connectors too. (ENTMQBR-6083) --- .../activemqartemis_controller_test.go | 58 ++++++++++++++++++- controllers/activemqartemis_reconciler.go | 23 +------- 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/controllers/activemqartemis_controller_test.go b/controllers/activemqartemis_controller_test.go index 00f0367af..5d4a08ff8 100644 --- a/controllers/activemqartemis_controller_test.go +++ b/controllers/activemqartemis_controller_test.go @@ -31,7 +31,6 @@ import ( . "github.com/onsi/gomega" appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -39,6 +38,7 @@ import ( brokerv1beta1 "github.com/artemiscloud/activemq-artemis-operator/api/v1beta1" "github.com/artemiscloud/activemq-artemis-operator/pkg/utils/namer" + corev1 "k8s.io/api/core/v1" ) // Uncomment this and the "test" import if you want to debug this set of tests @@ -408,6 +408,62 @@ var _ = Describe("artemis controller", func() { }) }) + Context("With delopyed controller", func() { + It("Checking acceptor service while expose is false", func() { + By("By creating a new crd") + ctx := context.Background() + crd := generateArtemisSpec(namespace) + + crd.Spec.DeploymentPlan = brokerv1beta1.DeploymentPlanType{ + Size: 1, + } + crd.Spec.Acceptors = []brokerv1beta1.AcceptorType{ + { + Name: "new-acceptor", + Port: 61616, + Expose: false, + }, + } + crd.Spec.Connectors = []brokerv1beta1.ConnectorType{ + { + Name: "new-connector", + Port: 61616, + Expose: false, + }, + } + Expect(k8sClient.Create(ctx, &crd)).Should(Succeed()) + + Eventually(func() bool { + key := types.NamespacedName{Name: crd.Name, Namespace: namespace} + err := k8sClient.Get(ctx, key, &crd) + return err == nil + }, timeout, interval).Should(BeTrue()) + + Eventually(func() bool { + key := types.NamespacedName{Name: crd.Name + "-" + "new-acceptor-0-svc", Namespace: namespace} + acceptorService := &corev1.Service{} + err := k8sClient.Get(context.Background(), key, acceptorService) + if err != nil { + fmt.Printf("we got error getting acceptor service %v\n", err) + } + return err == nil + }, timeout, interval).Should(BeTrue()) + + Eventually(func() bool { + key := types.NamespacedName{Name: crd.Name + "-" + "new-connector-0-svc", Namespace: namespace} + connectorService := &corev1.Service{} + err := k8sClient.Get(context.Background(), key, connectorService) + if err != nil { + fmt.Printf("we got error getting connector service %v\n", err) + } + return err == nil + }, timeout, interval).Should(BeTrue()) + Expect(k8sClient.Delete(ctx, &crd)).Should(Succeed()) + + By("check it has gone") + Eventually(checkCrdDeleted(crd.Name, namespace, &crd), timeout, interval).Should(BeTrue()) + }) + }) }) func generateArtemisSpec(namespace string) brokerv1beta1.ActiveMQArtemis { diff --git a/controllers/activemqartemis_reconciler.go b/controllers/activemqartemis_reconciler.go index 4a45ecded..63f54a443 100644 --- a/controllers/activemqartemis_reconciler.go +++ b/controllers/activemqartemis_reconciler.go @@ -892,16 +892,8 @@ func configureAcceptorsExposure(fsm *ActiveMQArtemisFSM, client rtclient.Client, for _, acceptor := range fsm.customResource.Spec.Acceptors { serviceDefinition := svc.NewServiceDefinitionForCR(namespacedName, acceptor.Name+"-"+ordinalString, acceptor.Port, serviceRoutelabels, fsm.namers.LabelBuilder.Labels()) - serviceNamespacedName := types.NamespacedName{ - Name: serviceDefinition.Name, - Namespace: fsm.customResource.Namespace, - } - if acceptor.Expose { - requestedResources = append(requestedResources, serviceDefinition) - //causedUpdate, err = resources.Enable(customResource, client, scheme, serviceNamespacedName, serviceDefinition) - } else { - causedUpdate, err = resources.Disable(fsm.customResource, client, scheme, serviceNamespacedName, serviceDefinition) - } + + requestedResources = append(requestedResources, serviceDefinition) targetPortName := acceptor.Name + "-" + ordinalString targetServiceName := fsm.customResource.Name + "-" + targetPortName + "-svc" routeDefinition := routes.NewRouteDefinitionForCR(namespacedName, serviceRoutelabels, targetServiceName, targetPortName, acceptor.SSLEnabled) @@ -944,16 +936,7 @@ func configureConnectorsExposure(fsm *ActiveMQArtemisFSM, client rtclient.Client for _, connector := range fsm.customResource.Spec.Connectors { serviceDefinition := svc.NewServiceDefinitionForCR(namespacedName, connector.Name+"-"+ordinalString, connector.Port, serviceRoutelabels, fsm.namers.LabelBuilder.Labels()) - serviceNamespacedName := types.NamespacedName{ - Name: serviceDefinition.Name, - Namespace: fsm.customResource.Namespace, - } - if connector.Expose { - requestedResources = append(requestedResources, serviceDefinition) - //causedUpdate, err = resources.Enable(customResource, client, scheme, serviceNamespacedName, serviceDefinition) - } else { - causedUpdate, err = resources.Disable(fsm.customResource, client, scheme, serviceNamespacedName, serviceDefinition) - } + requestedResources = append(requestedResources, serviceDefinition) targetPortName := connector.Name + "-" + ordinalString targetServiceName := fsm.customResource.Name + "-" + targetPortName + "-svc" routeDefinition := routes.NewRouteDefinitionForCR(namespacedName, serviceRoutelabels, targetServiceName, targetPortName, connector.SSLEnabled)