From 344e09f86886821a902333dbaaa8de6d0654791c Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 5 Apr 2024 12:15:33 +0200 Subject: [PATCH] OZG-3328 cleanup and add helm unittests --- ...yment_defaults_containers_health_test.yaml | 81 +++++++++++++++++++ xta-adapter/run_helm_test.sh | 2 +- ...ull-secret.yaml => image_pull_secret.yaml} | 0 .../src/test/helm/image_pull_secret_test.yaml | 2 +- .../src/test/helm/service_account_test.yaml | 4 + .../helm/xta_adapter_cronjob_basic_test.yaml | 6 -- ...=> xta_adapter_cronjob_bindings_test.yaml} | 0 ...xta_adapter_cronjob_dummy_probes_test.yaml | 9 --- .../helm/xta_adapter_cronjob_env_test.yaml | 2 - .../xta_adapter_cronjob_resources_test.yaml | 1 - .../xta_adapter_cronjob_volumes_test.yaml | 2 - ...-test.yaml => xta_bindings_type_test.yaml} | 10 ++- ...est.yaml => xta_keystore_secret_test.yaml} | 10 +++ ...test.yaml => xta_root_ca_secret_test.yaml} | 9 +++ 14 files changed, 115 insertions(+), 23 deletions(-) create mode 100644 src/test/helm/deployment_defaults_containers_health_test.yaml rename xta-adapter/src/main/helm/templates/{image-pull-secret.yaml => image_pull_secret.yaml} (100%) rename xta-adapter/src/test/helm/{xta_adapter_bindings_test.yaml => xta_adapter_cronjob_bindings_test.yaml} (100%) rename xta-adapter/src/test/helm/{xta-bindings-type-test.yaml => xta_bindings_type_test.yaml} (89%) rename xta-adapter/src/test/helm/{xta-keystore-secret-test.yaml => xta_keystore_secret_test.yaml} (88%) rename xta-adapter/src/test/helm/{xta-root-ca-secret-test.yaml => xta_root_ca_secret_test.yaml} (88%) diff --git a/src/test/helm/deployment_defaults_containers_health_test.yaml b/src/test/helm/deployment_defaults_containers_health_test.yaml new file mode 100644 index 000000000..e57dbb709 --- /dev/null +++ b/src/test/helm/deployment_defaults_containers_health_test.yaml @@ -0,0 +1,81 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: test deployment health check +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud.environment: test +tests: + - it: should work + asserts: + - equal: + path: spec.template.spec.containers[0].readinessProbe.failureThreshold + value: 3 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.path + value: /actuator/health/readiness + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme + value: HTTP + - equal: + path: spec.template.spec.containers[0].readinessProbe.periodSeconds + value: 10 + - equal: + path: spec.template.spec.containers[0].readinessProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds + value: 3 + - equal: + path: spec.template.spec.containers[0].startupProbe.failureThreshold + value: 10 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.path + value: /actuator/health/readiness + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.scheme + value: HTTP + - equal: + path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds + value: 30 + - equal: + path: spec.template.spec.containers[0].startupProbe.periodSeconds + value: 5 + - equal: + path: spec.template.spec.containers[0].startupProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].startupProbe.timeoutSeconds + value: 5 + \ No newline at end of file diff --git a/xta-adapter/run_helm_test.sh b/xta-adapter/run_helm_test.sh index 9a57c3aa8..31d13d5b9 100755 --- a/xta-adapter/run_helm_test.sh +++ b/xta-adapter/run_helm_test.sh @@ -4,4 +4,4 @@ set -e helm template ./src/main/helm/ -f src/test/helm-linter-values.yaml helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/ -cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' . +cd src/main/helm && helm unittest -f '../../test/helm/**/*.yaml' . diff --git a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml b/xta-adapter/src/main/helm/templates/image_pull_secret.yaml similarity index 100% rename from xta-adapter/src/main/helm/templates/image-pull-secret.yaml rename to xta-adapter/src/main/helm/templates/image_pull_secret.yaml diff --git a/xta-adapter/src/test/helm/image_pull_secret_test.yaml b/xta-adapter/src/test/helm/image_pull_secret_test.yaml index 1db60649f..4ffa69cba 100644 --- a/xta-adapter/src/test/helm/image_pull_secret_test.yaml +++ b/xta-adapter/src/test/helm/image_pull_secret_test.yaml @@ -24,7 +24,7 @@ suite: test image pull secret templates: - - templates/image-pull-secret.yaml + - templates/image_pull_secret.yaml release: name: xta-adapter namespace: helm-test diff --git a/xta-adapter/src/test/helm/service_account_test.yaml b/xta-adapter/src/test/helm/service_account_test.yaml index e69fb10ec..1027bebb9 100644 --- a/xta-adapter/src/test/helm/service_account_test.yaml +++ b/xta-adapter/src/test/helm/service_account_test.yaml @@ -36,6 +36,8 @@ tests: asserts: - isKind: of: ServiceAccount + - isAPIVersion: + of: v1 - equal: path: metadata.name value: xta-adapter-service-account @@ -50,6 +52,8 @@ tests: asserts: - isKind: of: ServiceAccount + - isAPIVersion: + of: v1 - equal: path: metadata.name value: helm-service-account diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml index b17ff7452..74afdf5e3 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml @@ -33,7 +33,6 @@ set: tests: - it: validate basic data - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter asserts: @@ -56,7 +55,6 @@ tests: path: spec.concurrencyPolicy value: Forbid - it: check set schedule - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -70,7 +68,6 @@ tests: path: spec.schedule value: "1 1 * * * *" - it: check dev schedule - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter asserts: @@ -78,7 +75,6 @@ tests: path: spec.schedule value: "*/15 * * * *" - it: check container image - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter asserts: @@ -87,7 +83,6 @@ tests: value: "docker.ozg-sh.de/xta-adapter:9.9.99" - it: check securityContext - template: xta_adapter_cronjob.yaml asserts: - equal: path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation @@ -124,7 +119,6 @@ tests: path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsGroup value: 1000 - it: check pod labels - template: xta_adapter_cronjob.yaml asserts: - equal: path: spec.jobTemplate.spec.template.metadata.labels diff --git a/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml similarity index 100% rename from xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml rename to xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml index 93637305c..dc08c5ac6 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml @@ -32,37 +32,31 @@ set: ozgcloud.environment: test tests: - it: check dummy livenessProbe default disabled - template: xta_adapter_cronjob.yaml asserts: - notExists: path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe - it: check dummy startupProbe default disabled - template: xta_adapter_cronjob.yaml asserts: - notExists: path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe - it: check dummy readynessProbe default disabled - template: xta_adapter_cronjob.yaml asserts: - notExists: path: spec.jobTemplate.spec.template.spec.containers[0].readinessProbe - it: check dummy livenessProbe disabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: false asserts: - notExists: path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe - it: check dummy startupProbe disabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: false asserts: - notExists: path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe - it: check dummy readynessProbe disabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: false asserts: @@ -71,21 +65,18 @@ tests: - it: check dummy livenessProbe enabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: true asserts: - isNotEmpty: path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe - it: check dummy startupProbe enabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: true asserts: - isNotEmpty: path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe - it: check dummy readynessProbe enabled - template: xta_adapter_cronjob.yaml set: dummyProbesEnabled: true asserts: diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml index 45eb29fa6..294bf8fb9 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml @@ -32,7 +32,6 @@ set: ozgcloud.environment: test tests: - it: check default env - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -112,7 +111,6 @@ tests: name: grpc_client_vorgang-manager-vorgang-manager_negotiationType value: "PLAINTEXT" - it: check set env values - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter env.overrideSpringProfiles: local diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml index 02efe3963..b9b879cd3 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml @@ -32,7 +32,6 @@ set: ozgcloud.environment: dev tests: - it: check resources - template: xta_adapter_cronjob.yaml set: resources: limits: diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml index 6acac9f4f..bbddacc94 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml @@ -32,7 +32,6 @@ set: ozgcloud.environment: dev tests: - it: check volume mounts - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -63,7 +62,6 @@ tests: subPath: file readOnly: true - it: check volumes - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: diff --git a/xta-adapter/src/test/helm/xta-bindings-type-test.yaml b/xta-adapter/src/test/helm/xta_bindings_type_test.yaml similarity index 89% rename from xta-adapter/src/test/helm/xta-bindings-type-test.yaml rename to xta-adapter/src/test/helm/xta_bindings_type_test.yaml index ff4858ff0..ad3697998 100644 --- a/xta-adapter/src/test/helm/xta-bindings-type-test.yaml +++ b/xta-adapter/src/test/helm/xta_bindings_type_test.yaml @@ -37,6 +37,8 @@ tests: asserts: - isKind: of: ConfigMap + - isAPIVersion: + of: v1 - equal: path: metadata.name value: xta-adapter-bindings-type @@ -45,4 +47,10 @@ tests: value: helm-test - equal: path: data.type - value: ca-certificates \ No newline at end of file + value: ca-certificates + - it: should not create config map by default + asserts: + - hasDocuments: + count: 0 + + \ No newline at end of file diff --git a/xta-adapter/src/test/helm/xta-keystore-secret-test.yaml b/xta-adapter/src/test/helm/xta_keystore_secret_test.yaml similarity index 88% rename from xta-adapter/src/test/helm/xta-keystore-secret-test.yaml rename to xta-adapter/src/test/helm/xta_keystore_secret_test.yaml index b01988387..8272eb11c 100644 --- a/xta-adapter/src/test/helm/xta-keystore-secret-test.yaml +++ b/xta-adapter/src/test/helm/xta_keystore_secret_test.yaml @@ -39,6 +39,11 @@ tests: asserts: - isKind: of: Secret + - isAPIVersion: + of: v1 + - equal: + path: type + value: Opaque - equal: path: metadata.name value: xta-keystore @@ -51,4 +56,9 @@ tests: - equal: path: data.file value: Z2VoZWltCg== + + - it: should not create keystore by default + asserts: + - hasDocuments: + count: 0 diff --git a/xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml b/xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml similarity index 88% rename from xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml rename to xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml index c3861ba54..f65bbcb9e 100644 --- a/xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml +++ b/xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml @@ -37,9 +37,14 @@ tests: asserts: - isKind: of: Secret + - isAPIVersion: + of: v1 - equal: path: metadata.name value: xta-root-ca + - equal: + path: type + value: Opaque - equal: path: metadata.namespace value: helm-test @@ -47,3 +52,7 @@ tests: path: data["ca.crt"] value: Z2VoZWltCg== + - it: should not create ca secret by default + asserts: + - hasDocuments: + count: 0 \ No newline at end of file -- GitLab