diff --git a/.github/actions/deploy-lifecycle-manager-e2e/action.yml b/.github/actions/deploy-lifecycle-manager-e2e/action.yml index ae6aaaf286..acd022911a 100644 --- a/.github/actions/deploy-lifecycle-manager-e2e/action.yml +++ b/.github/actions/deploy-lifecycle-manager-e2e/action.yml @@ -151,13 +151,6 @@ runs: klm_image_repo: ${{ inputs.klm_image_repo }} - name: Expose Metrics Endpoint working-directory: lifecycle-manager - if: ${{ matrix.e2e-test == 'kyma-metrics' || - matrix.e2e-test == 'module-status-decoupling-with-statefulset' || - matrix.e2e-test == 'module-status-decoupling-with-deployment' || - matrix.e2e-test == 'purge-metrics' || - matrix.e2e-test == 'self-signed-certificate-rotation' || - matrix.e2e-test == 'mandatory-module-metrics' || - matrix.e2e-test == 'mandatory-module-metrics-with-old-naming-pattern'}} shell: bash run: | kubectl patch svc klm-controller-manager-metrics -p '{"spec": {"type": "LoadBalancer"}}' -n kcp-system diff --git a/tests/e2e/commontestutils/metrics.go b/tests/e2e/commontestutils/metrics.go index bab02dd0d9..5181a7162a 100644 --- a/tests/e2e/commontestutils/metrics.go +++ b/tests/e2e/commontestutils/metrics.go @@ -15,6 +15,16 @@ import ( var ErrMetricNotFound = errors.New("metric was not found") +func GetMaintenanceWindowGauge(ctx context.Context) (int, error) { + bodyString, err := getMetricsBody(ctx) + if err != nil { + return 0, err + } + + re := regexp.MustCompile(metrics.MetricMaintenanceWindowConfigReadSuccess + ` (\d+)`) + return parseCount(re, bodyString) +} + func GetKymaStateMetricCount(ctx context.Context, kymaName string, state shared.State) (int, error) { bodyString, err := getMetricsBody(ctx) if err != nil { diff --git a/tests/e2e/maintenance_windows_initial_installation_test.go b/tests/e2e/maintenance_windows_initial_installation_test.go index 60d78721db..62784c9ee9 100644 --- a/tests/e2e/maintenance_windows_initial_installation_test.go +++ b/tests/e2e/maintenance_windows_initial_installation_test.go @@ -30,6 +30,15 @@ var _ = Describe("Maintenance Windows - No Wait for Maintenance Window on Initia InitEmptyKymaBeforeAll(kyma) CleanupKymaAfterAll(kyma) + Context("Given KCP Cluster", func() { + It("When KLM is initialized", func() { + By("Then maintenance window metrics are initialized") + Eventually(GetMaintenanceWindowGauge). + WithContext(ctx). + Should(Equal(1)) + }) + }) + Context("Given SKR Cluster; Kyma CR .spec.skipMaintenanceWindows=false; NO active maintenance window", func() { It("When module in fast channel is enabled (requiresDowntime=true)", func() { module.Channel = fastChannel @@ -53,7 +62,8 @@ var _ = Describe("Maintenance Windows - No Wait for Maintenance Window on Initia By("And SKR Kyma CR is in \"Ready\" State") Eventually(KymaIsInState). WithContext(ctx). - WithArguments(shared.DefaultRemoteKymaName, shared.DefaultRemoteNamespace, skrClient, shared.StateReady). + WithArguments(shared.DefaultRemoteKymaName, shared.DefaultRemoteNamespace, skrClient, + shared.StateReady). Should(Succeed()) By("And KCP Kyma CR is in \"Ready\" State") @@ -78,7 +88,8 @@ var _ = Describe("Maintenance Windows - No Wait for Maintenance Window on Initia By("And SKR Kyma CR is in \"Ready\" State") Eventually(KymaIsInState). WithContext(ctx). - WithArguments(shared.DefaultRemoteKymaName, shared.DefaultRemoteNamespace, skrClient, shared.StateReady). + WithArguments(shared.DefaultRemoteKymaName, shared.DefaultRemoteNamespace, skrClient, + shared.StateReady). Should(Succeed()) By("And KCP Kyma CR is in \"Ready\" State")