From bcade200f4c6fc03e4c49c568c5857c764c12cde Mon Sep 17 00:00:00 2001 From: jgilaber Date: Thu, 9 Jan 2025 15:49:13 +0100 Subject: [PATCH] Add tests for WatcherAPI service addition --- tests/functional/watcher_test_data.go | 10 +++++ .../functional/watcherapi_controller_test.go | 13 +++++++ .../default/watcher-api/03-assert.yaml | 38 +++++++++++++++++++ .../default/watcher-api/05-errors.yaml | 16 ++++++++ 4 files changed, 77 insertions(+) diff --git a/tests/functional/watcher_test_data.go b/tests/functional/watcher_test_data.go index 3a44c42..f4b6be9 100644 --- a/tests/functional/watcher_test_data.go +++ b/tests/functional/watcher_test_data.go @@ -47,6 +47,8 @@ type WatcherTestData struct { RoleBindingName types.NamespacedName WatcherDBSync types.NamespacedName WatcherAPIDeployment types.NamespacedName + WatcherPublicServiceName types.NamespacedName + WatcherInternalServiceName types.NamespacedName } // GetWatcherTestData is a function that initialize the WatcherTestData @@ -115,5 +117,13 @@ func GetWatcherTestData(watcherName types.NamespacedName) WatcherTestData { Namespace: watcherName.Namespace, Name: "watcher-api-api", }, + WatcherPublicServiceName: types.NamespacedName{ + Namespace: watcherName.Namespace, + Name: "watcher-public", + }, + WatcherInternalServiceName: types.NamespacedName{ + Namespace: watcherName.Namespace, + Name: "watcher-internal", + }, } } diff --git a/tests/functional/watcherapi_controller_test.go b/tests/functional/watcherapi_controller_test.go index 2e0ae8c..b367bb4 100644 --- a/tests/functional/watcherapi_controller_test.go +++ b/tests/functional/watcherapi_controller_test.go @@ -183,6 +183,19 @@ var _ = Describe("WatcherAPI controller", func() { Expect(container.LivenessProbe.HTTPGet.Port.IntVal).To(Equal(int32(9322))) Expect(container.ReadinessProbe.HTTPGet.Port.IntVal).To(Equal(int32(9322))) }) + It("creates the public and internal services for the watcher-api service", func() { + th.ExpectCondition( + watcherTest.WatcherAPI, + ConditionGetterFunc(WatcherAPIConditionGetter), + condition.CreateServiceReadyCondition, + corev1.ConditionTrue, + ) + public := th.GetService(watcherTest.WatcherPublicServiceName) + Expect(public.Labels["service"]).To(Equal("watcher-api")) + internal := th.GetService(watcherTest.WatcherInternalServiceName) + Expect(internal.Labels["service"]).To(Equal("watcher-api")) + + }) }) When("the secret is created but missing fields", func() { BeforeEach(func() { diff --git a/tests/kuttl/test-suites/default/watcher-api/03-assert.yaml b/tests/kuttl/test-suites/default/watcher-api/03-assert.yaml index 4bda4a6..811fdb2 100644 --- a/tests/kuttl/test-suites/default/watcher-api/03-assert.yaml +++ b/tests/kuttl/test-suites/default/watcher-api/03-assert.yaml @@ -14,6 +14,10 @@ status: reason: Ready status: "True" type: Ready + - message: Create service completed + reason: Ready + status: "True" + type: CreateServiceReady - message: Deployment completed reason: Ready status: "True" @@ -65,3 +69,37 @@ spec: - name: watcher-api status: phase: Running +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: internal + service: watcher-api + name: watcher-internal +spec: + ports: + - name: watcher-internal + port: 9322 + protocol: TCP + targetPort: 9322 + selector: + service: watcher-api + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: public + service: watcher-api + name: watcher-public +spec: + ports: + - name: watcher-public + port: 9322 + protocol: TCP + targetPort: 9322 + selector: + service: watcher-api + type: ClusterIP diff --git a/tests/kuttl/test-suites/default/watcher-api/05-errors.yaml b/tests/kuttl/test-suites/default/watcher-api/05-errors.yaml index 672ed5d..4bf52ea 100644 --- a/tests/kuttl/test-suites/default/watcher-api/05-errors.yaml +++ b/tests/kuttl/test-suites/default/watcher-api/05-errors.yaml @@ -13,3 +13,19 @@ kind: Pod metadata: labels: service: watcher-api +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: internal + service: watcher-api + name: watcher-internal +--- +apiVersion: v1 +kind: Service +metadata: + labels: + endpoint: public + service: watcher-api + name: watcher-public