From f927d83ef88af4fe46d782ac77ab2afe43a8878c Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 9 Apr 2024 21:54:56 +0200 Subject: [PATCH] OZG-3328 cleanup and add helm unittests;OZG-5115 update helm unittest command --- run_helm_test.sh | 2 +- ...d-secret.yaml => api_password_secret.yaml} | 0 ...ull-secret.yaml => image_pull_secret.yaml} | 0 ...k-user-crd.yaml => keycloak_user_crd.yaml} | 0 src/test/helm/api-password-secret_test.yaml | 29 ------ src/test/helm/api_password_secret_test.yaml | 64 +++++++++++++ src/test/helm/cert_issuer_test.yaml | 2 + ...yment_container_security_context_test.yaml | 4 +- .../helm/deployment_default_spec_test.yaml | 96 +++++++++++++++++++ .../helm/deployment_defaults_labels_test.yaml | 20 +--- ...aults_topologySpreadConstraints_test.yaml} | 29 +++--- src/test/helm/deployment_env_test.yaml | 11 ++- .../deployment_imagepull_secret_test.yaml | 4 - ...l => deployment_keycloak_values_test.yaml} | 12 ++- ...ment_mongodb_passwort_secretref_test.yaml} | 0 .../deployment_optional_trust_store_test.yaml | 2 +- src/test/helm/deployment_probes_test.yaml | 10 +- .../deployment_realm_name_length_test.yaml | 1 - src/test/helm/deployment_resources_test.yaml | 3 +- ...st.yaml => deployment_url_value_test.yaml} | 0 ..._general_value_and_default_spec_test.yaml} | 51 +++++++--- src/test/helm/imagepull_secret_test.yaml | 2 +- src/test/helm/ingress_nginx_cors_test.yaml | 2 - ...inx-tests.yaml => ingress_nginx_test.yaml} | 6 ++ ...-test.yaml => keycloak_user_crd_test.yaml} | 37 +------ ...erator_secrets_read_role_binding_test.yaml | 2 +- ...cloak_operator_secrets_read_role_test.yaml | 2 +- ...rator_secrets_write_role_binding_test.yaml | 2 +- ...loak_operator_secrets_write_role_test.yaml | 2 +- src/test/helm/service_account_test.yaml | 4 +- src/test/helm/service_monitor_test.yaml | 25 +++++ src/test/helm/service_test.yaml | 24 +++++ 32 files changed, 309 insertions(+), 139 deletions(-) rename src/main/helm/templates/{api-password-secret.yaml => api_password_secret.yaml} (100%) rename src/main/helm/templates/{image-pull-secret.yaml => image_pull_secret.yaml} (100%) rename src/main/helm/templates/{keycloak-user-crd.yaml => keycloak_user_crd.yaml} (100%) delete mode 100644 src/test/helm/api-password-secret_test.yaml create mode 100644 src/test/helm/api_password_secret_test.yaml create mode 100644 src/test/helm/deployment_default_spec_test.yaml rename src/test/helm/{deployment_scrapeMetrics_test.yaml => deployment_defaults_topologySpreadConstraints_test.yaml} (67%) rename src/test/helm/{deployment-keycloak-values-test.yaml => deployment_keycloak_values_test.yaml} (92%) rename src/test/helm/{deployment-mongodb-passwort-secretref-test.yaml => deployment_mongodb_passwort_secretref_test.yaml} (100%) rename src/test/helm/{deployment-url-value-test.yaml => deployment_url_value_test.yaml} (100%) rename src/test/helm/{deployment-test.yaml => deyploment_general_value_and_default_spec_test.yaml} (53%) rename src/test/helm/{ingress-nginx-tests.yaml => ingress_nginx_test.yaml} (95%) rename src/test/helm/{keycloak-user-crd-test.yaml => keycloak_user_crd_test.yaml} (87%) diff --git a/run_helm_test.sh b/run_helm_test.sh index 3c7a112b..2ee101b5 100755 --- a/run_helm_test.sh +++ b/run_helm_test.sh @@ -5,4 +5,4 @@ set -x helm template ./src/main/helm/ -f src/test/linter-values.yaml helm lint -f src/test/linter-values.yaml ./src/main/helm/ -cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' . \ No newline at end of file +cd src/main/helm && helm unittest -f '../../test/helm/**/*.yaml' . \ No newline at end of file diff --git a/src/main/helm/templates/api-password-secret.yaml b/src/main/helm/templates/api_password_secret.yaml similarity index 100% rename from src/main/helm/templates/api-password-secret.yaml rename to src/main/helm/templates/api_password_secret.yaml diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image_pull_secret.yaml similarity index 100% rename from src/main/helm/templates/image-pull-secret.yaml rename to src/main/helm/templates/image_pull_secret.yaml diff --git a/src/main/helm/templates/keycloak-user-crd.yaml b/src/main/helm/templates/keycloak_user_crd.yaml similarity index 100% rename from src/main/helm/templates/keycloak-user-crd.yaml rename to src/main/helm/templates/keycloak_user_crd.yaml diff --git a/src/test/helm/api-password-secret_test.yaml b/src/test/helm/api-password-secret_test.yaml deleted file mode 100644 index b3bafd39..00000000 --- a/src/test/helm/api-password-secret_test.yaml +++ /dev/null @@ -1,29 +0,0 @@ -suite: test api password secret -release: - name: user-manager - namespace: sh-test-test -templates: - - templates/api-password-secret.yaml -set: - ozgcloud: - keycloak: - api: - password: testPassword -tests: - - it: test api secret kind - asserts: - - isKind: - of: Secret - - it: test api password - asserts: - - equal: - path: stringData.password - value: testPassword - - it: should use Keycloak User Operator - set: - sso: - api_user: - name: userManagerApiUser - asserts: - - hasDocuments: - count: 0 \ No newline at end of file diff --git a/src/test/helm/api_password_secret_test.yaml b/src/test/helm/api_password_secret_test.yaml new file mode 100644 index 00000000..77ccbbd5 --- /dev/null +++ b/src/test/helm/api_password_secret_test.yaml @@ -0,0 +1,64 @@ +suite: test api password secret +release: + name: user-manager + namespace: sh-test-test +templates: + - templates/api_password_secret.yaml +set: + ozgcloud: + keycloak: + api: + password: testPassword +tests: + - it: test api secret kind + asserts: + - isKind: + of: Secret + - isAPIVersion: + of: v1 + - it: test api password + asserts: + - equal: + path: stringData.password + value: testPassword + - it: not create api_password_secret if kc api.password not set and api_user set + set: + sso: + api_user: + name: userManagerApiUser + asserts: + - hasDocuments: + count: 0 + - it: should not create api_password_secret if kc api.password not set and api_user not set + set: + sso: + api_user: + name: "" + ozgcloud: + keycloak: + api: + password: "" + asserts: + - hasDocuments: + count: 0 + - it: should create api_password_secret if kc api.password set and api_user not set + set: + ozgcloud: + keycloak: + api: + password: "passwrd" + asserts: + - hasDocuments: + count: 1 + - it: should not create api_password_secret if kc api.password set and api_user set + set: + sso: + api_user: + name: userManagerApiUser + ozgcloud: + keycloak: + api: + password: "passwrd" + asserts: + - hasDocuments: + count: 0 \ No newline at end of file diff --git a/src/test/helm/cert_issuer_test.yaml b/src/test/helm/cert_issuer_test.yaml index 22432809..0ac34d47 100644 --- a/src/test/helm/cert_issuer_test.yaml +++ b/src/test/helm/cert_issuer_test.yaml @@ -35,6 +35,8 @@ tests: of: cert-manager.io/v1 - isKind: of: Issuer + - isAPIVersion: + of: cert-manager.io/v1 - it: should have metadata asserts: - equal: diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml index 22bb64d3..205e5aac 100644 --- a/src/test/helm/deployment_container_security_context_test.yaml +++ b/src/test/helm/deployment_container_security_context_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment container security release: name: user-manager namespace: sh-helm-test @@ -38,8 +38,6 @@ set: tests: - it: check default values asserts: - - isKind: - of: Deployment - equal: path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation value: false diff --git a/src/test/helm/deployment_default_spec_test.yaml b/src/test/helm/deployment_default_spec_test.yaml new file mode 100644 index 00000000..5e2d1726 --- /dev/null +++ b/src/test/helm/deployment_default_spec_test.yaml @@ -0,0 +1,96 @@ +# +# 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 actuator +release: + name: user-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud: + bezeichner: helm + bundesland: by + environment: dev + baseUrl: test.sh.ozg-cloud.de + sso: + serverUrl: sso.test.sh.ozg-cloud.de +tests: + - it: check for some standard values + asserts: + - equal: + path: spec.template.spec.containers[0].image + value: docker.ozg-sh.de/user-manager:latest + - equal: + path: spec.template.spec.containers[0].imagePullPolicy + value: Always + - equal: + path: spec.template.spec.containers[0].name + value: user-manager + - equal: + path: spec.template.spec.containers[0].ports[0].containerPort + value: 9000 + - equal: + path: spec.template.spec.containers[0].ports[0].name + value: grpc-9000 + - equal: + path: spec.template.spec.containers[0].ports[0].protocol + value: TCP + - equal: + path: spec.template.spec.containers[0].stdin + value: true + - equal: + path: spec.template.spec.containers[0].terminationMessagePath + value: /dev/termination-log + - equal: + path: spec.template.spec.containers[0].terminationMessagePolicy + value: File + - equal: + path: spec.template.spec.containers[0].tty + value: true + - equal: + path: spec.template.spec.containers[0].ports[1].containerPort + value: 8080 + - equal: + path: spec.template.spec.containers[0].ports[1].name + value: http + - equal: + path: spec.template.spec.containers[0].ports[1].protocol + value: TCP + - it: should have correct pod template values + asserts: + - isEmpty: + path: spec.template.spec.dnsConfig + - equal: + path: spec.template.spec.dnsPolicy + value: "ClusterFirst" + - equal: + path: spec.template.spec.restartPolicy + value: "Always" + - equal: + path: spec.template.spec.schedulerName + value: "default-scheduler" + - equal: + path: spec.template.spec.terminationGracePeriodSeconds + value: 30 \ No newline at end of file diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index 2da97b8d..ea21aa38 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -22,14 +22,12 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment default lables release: name: user-manager namespace: sh-helm-test templates: - templates/deployment.yaml - - templates/service.yaml - - templates/service_monitor.yaml set: ozgcloud: bundesland: by @@ -54,26 +52,10 @@ tests: path: metadata.labels["app.kubernetes.io/namespace"] value: sh-helm-test - it: check component label for deployment - templates: - - templates/deployment.yaml asserts: - equal: path: spec.template.metadata.labels["component"] value: user-manager - - it: check component label for service - templates: - - templates/service.yaml - asserts: - - equal: - path: metadata.labels["component"] - value: user-manager-service - - it: check component label for service monitor - templates: - - templates/service_monitor.yaml - asserts: - - equal: - path: metadata.labels["component"] - value: user-manager-service-monitor - it: should have label for mongodb client asserts: diff --git a/src/test/helm/deployment_scrapeMetrics_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml similarity index 67% rename from src/test/helm/deployment_scrapeMetrics_test.yaml rename to src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml index 4c73aaeb..1071ef23 100644 --- a/src/test/helm/deployment_scrapeMetrics_test.yaml +++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml @@ -22,29 +22,32 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment topology release: name: user-manager namespace: sh-helm-test templates: - templates/deployment.yaml - - templates/secret_database_quarkus.yaml set: ozgcloud: - bundesland: by bezeichner: helm + bundesland: by environment: dev + baseUrl: test.sh.ozg-cloud.de sso: serverUrl: sso.test.sh.ozg-cloud.de - baseUrl: test.sh.ozg-cloud.de - tests: - - it: should set the metrics port by default - template: deployment.yaml + - it: check default values asserts: - - contains: - path: spec.template.spec.containers[0].ports - content: - name: http - containerPort: 8080 - protocol: TCP \ No newline at end of file + - equal: + path: spec.template.spec.topologySpreadConstraints[0].maxSkew + value: 1 + - equal: + path: spec.template.spec.topologySpreadConstraints[0].topologyKey + value: kubernetes.io/hostname + - equal: + path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable + value: ScheduleAnyway + - equal: + path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"] + value: user-manager \ No newline at end of file diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index c767c8d8..50bd0bbe 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -35,7 +35,6 @@ set: baseUrl: test.sh.ozg-cloud.de tests: - it: check customList - template: deployment.yaml set: env.customList: - name: my_test_environment_name @@ -47,7 +46,6 @@ tests: name: my_test_environment_name value: "A test value" - it: check customList test value is not set by default - template: deployment.yaml asserts: - notContains: path: spec.template.spec.containers[0].env @@ -80,9 +78,6 @@ tests: - it: check user sync period set set: ozgcloud: - bundesland: by - bezeichner: helm - environment: dev usersync: period: "6h" asserts: @@ -91,6 +86,12 @@ tests: content: name: OZGCLOUD_USERSYNC_PERIOD value: "6h" + - it: not contain sync period by default + asserts: + - notContains: + path: spec.template.spec.containers[0].env + content: + name: OZGCLOUD_USERSYNC_PERIOD - it: check user sync period NOT set asserts: - notContains: diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml index 48407297..557926de 100644 --- a/src/test/helm/deployment_imagepull_secret_test.yaml +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -39,8 +39,6 @@ set: tests: - it: should use default imagePull secret asserts: - - isKind: - of: Deployment - equal: path: spec.template.spec.imagePullSecrets[0].name value: user-manager-image-pull-secret @@ -48,8 +46,6 @@ tests: set: imagePullSecret: image-pull-secret asserts: - - isKind: - of: Deployment - equal: path: spec.template.spec.imagePullSecrets[0].name value: image-pull-secret \ No newline at end of file diff --git a/src/test/helm/deployment-keycloak-values-test.yaml b/src/test/helm/deployment_keycloak_values_test.yaml similarity index 92% rename from src/test/helm/deployment-keycloak-values-test.yaml rename to src/test/helm/deployment_keycloak_values_test.yaml index 975dcd37..b458a4a1 100644 --- a/src/test/helm/deployment-keycloak-values-test.yaml +++ b/src/test/helm/deployment_keycloak_values_test.yaml @@ -113,7 +113,17 @@ tests: content: name: KEYCLOAK_URL value: https://sso.test.by.ozg-cloud.de - + - it: should use set OZGCLOUD_KEYCLOAK_API_PASSWORD when api_user set + set: + sso: + api_user: + name: -userManager-ApiUser + serverUrl: https://sso.company.local + asserts: + - notContains: + path: spec.template.spec.containers[0].env + content: + name: OZGCLOUD_KEYCLOAK_API_PASSWORD - it: should use Keycloak User Operator set: sso: diff --git a/src/test/helm/deployment-mongodb-passwort-secretref-test.yaml b/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml similarity index 100% rename from src/test/helm/deployment-mongodb-passwort-secretref-test.yaml rename to src/test/helm/deployment_mongodb_passwort_secretref_test.yaml diff --git a/src/test/helm/deployment_optional_trust_store_test.yaml b/src/test/helm/deployment_optional_trust_store_test.yaml index d31e8fbc..6944e3d1 100644 --- a/src/test/helm/deployment_optional_trust_store_test.yaml +++ b/src/test/helm/deployment_optional_trust_store_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test environments +suite: test environments trust store templates: - templates/deployment.yaml set: diff --git a/src/test/helm/deployment_probes_test.yaml b/src/test/helm/deployment_probes_test.yaml index 65960acf..16ea2042 100644 --- a/src/test/helm/deployment_probes_test.yaml +++ b/src/test/helm/deployment_probes_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: deployment +suite: deployment health test release: name: user-manager namespace: by-helm-test @@ -38,13 +38,11 @@ set: baseUrl: test.by.company.local tests: - it: livenessProbe should be disabled by default - template: deployment.yaml asserts: - notExists: path: spec.template.spec.containers[0].livenessProbe - it: enable livenessProbe - template: deployment.yaml set: enableLivenessProbe: true asserts: @@ -60,9 +58,12 @@ tests: periodSeconds: 5 successThreshold: 1 timeoutSeconds: 5 + - it: not enable livenessProbe by default + asserts: + - isNull: + path: spec.template.spec.containers[0].livenessProbe - it: should have readiness probe - template: deployment.yaml asserts: - isSubset: path: spec.template.spec.containers[0].readinessProbe @@ -77,7 +78,6 @@ tests: timeoutSeconds: 3 - it: should have startup probe - template: deployment.yaml asserts: - isSubset: path: spec.template.spec.containers[0].startupProbe diff --git a/src/test/helm/deployment_realm_name_length_test.yaml b/src/test/helm/deployment_realm_name_length_test.yaml index 17852c0c..05489c7a 100644 --- a/src/test/helm/deployment_realm_name_length_test.yaml +++ b/src/test/helm/deployment_realm_name_length_test.yaml @@ -31,7 +31,6 @@ templates: tests: - it: should fail on bezeichner length longer than 46 characters - template: deployment.yaml set: ozgcloud: bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index 0b27fd25..ca06a606 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment recources release: name: user-manager templates: @@ -37,7 +37,6 @@ set: baseUrl: test.sh.ozg-cloud.de tests: - it: test resources - template: deployment.yaml set: resources: limits: diff --git a/src/test/helm/deployment-url-value-test.yaml b/src/test/helm/deployment_url_value_test.yaml similarity index 100% rename from src/test/helm/deployment-url-value-test.yaml rename to src/test/helm/deployment_url_value_test.yaml diff --git a/src/test/helm/deployment-test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml similarity index 53% rename from src/test/helm/deployment-test.yaml rename to src/test/helm/deyploment_general_value_and_default_spec_test.yaml index cfcbe842..173b04d8 100644 --- a/src/test/helm/deployment-test.yaml +++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml @@ -1,5 +1,5 @@ # -# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den # Ministerpräsidenten des Landes Schleswig-Holstein # Staatskanzlei # Abteilung Digitalisierung und zentrales IT-Management der Landesregierung @@ -22,29 +22,58 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: deployment +suite: test deployment general values release: name: user-manager + namespace: sh-helm-test templates: - templates/deployment.yaml set: ozgcloud: - bundesland: by bezeichner: helm + bundesland: by environment: dev - sso.serverUrl: https://sso.company.local - baseUrl: test.company.local + baseUrl: test.sh.ozg-cloud.de + sso: + serverUrl: sso.test.sh.ozg-cloud.de + tests: - - it: test resources for prod environment - release: - namespace: sh-helm-test - template: deployment.yaml + - it: should have correct apiVersion asserts: - isKind: of: Deployment + - isAPIVersion: + of: "apps/v1" + + - it: should have correct deployment metadata + asserts: + - equal: + path: metadata.name + value: user-manager + - equal: + path: metadata.namespace + value: sh-helm-test + + + - it: should have correct deyployment general spec values + asserts: - equal: - path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/user-manager:latest + path: spec.progressDeadlineSeconds + value: 600 - equal: path: spec.replicas value: 2 + - equal: + path: spec.revisionHistoryLimit + value: 10 + - it: should have correct deployment spec strategy values + asserts: + - equal: + path: spec.strategy + value: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + type: RollingUpdate + + diff --git a/src/test/helm/imagepull_secret_test.yaml b/src/test/helm/imagepull_secret_test.yaml index 7432184e..80631de8 100644 --- a/src/test/helm/imagepull_secret_test.yaml +++ b/src/test/helm/imagepull_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: user-manager namespace: helm-test diff --git a/src/test/helm/ingress_nginx_cors_test.yaml b/src/test/helm/ingress_nginx_cors_test.yaml index 3b85133a..ab13558f 100644 --- a/src/test/helm/ingress_nginx_cors_test.yaml +++ b/src/test/helm/ingress_nginx_cors_test.yaml @@ -43,8 +43,6 @@ tests: more_set_headers "Access-Control-Expose-Headers: Content-Length,Content-Range"; more_set_headers "Access-Control-Allow-Origin: https://helm.test.sh.ozg-cloud.de"; asserts: - - isKind: - of: Ingress - equal: path: metadata.annotations["nginx.ingress.kubernetes.io/configuration-snippet"] value: | diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress_nginx_test.yaml similarity index 95% rename from src/test/helm/ingress-nginx-tests.yaml rename to src/test/helm/ingress_nginx_test.yaml index 970ad9af..1cd4c82d 100644 --- a/src/test/helm/ingress-nginx-tests.yaml +++ b/src/test/helm/ingress_nginx_test.yaml @@ -33,6 +33,12 @@ set: ozgcloud: bezeichner: helm tests: + - it: should contain header data + asserts: + - isAPIVersion: + of: networking.k8s.io/v1 + - isKind: + of: Ingress - it: should create ingress tls asserts: - equal: diff --git a/src/test/helm/keycloak-user-crd-test.yaml b/src/test/helm/keycloak_user_crd_test.yaml similarity index 87% rename from src/test/helm/keycloak-user-crd-test.yaml rename to src/test/helm/keycloak_user_crd_test.yaml index b6f4e349..e5c9032d 100644 --- a/src/test/helm/keycloak-user-crd-test.yaml +++ b/src/test/helm/keycloak_user_crd_test.yaml @@ -27,7 +27,7 @@ release: name: user-manager namespace: by-helm-test templates: - - templates/keycloak-user-crd.yaml + - templates/keycloak_user_crd.yaml tests: - it: should contain header data set: @@ -53,12 +53,7 @@ tests: value: by-helm-test - it: should have default Values set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test sso: - serverUrl: https://sso.test.by.ozg-cloud.de api_user: name: testapiuser asserts: @@ -85,18 +80,13 @@ tests: - it: should have Keycloak User without roles set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test baseUrl: "test.by.ozg-cloud.de" sso: api_user: name: testapiuser first_name: UserManager last_name: ApiUser - email: testapiuser@ozg-sh.de - serverUrl: https://sso.test.by.ozg-cloud.de + email: testapiuser@ozg-sh.de asserts: - equal: path: spec.keep_after_delete @@ -122,11 +112,6 @@ tests: - it: should have Keycloak User with client role set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test - baseUrl: "test.by.ozg-cloud.de" sso: api_user: name: testapiuser @@ -136,7 +121,6 @@ tests: client_roles: - name: alfa role: VERWALTUNG_USER - serverUrl: https://sso.test.by.ozg-cloud.de asserts: - equal: path: spec.keep_after_delete @@ -165,11 +149,6 @@ tests: - it: should have Keycloak User with realm role set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test - baseUrl: "test.by.ozg-cloud.de" sso: api_user: name: testapiuser @@ -178,7 +157,6 @@ tests: email: testapiuser@ozg-sh.de realm_roles: - "offline_access" - serverUrl: https://sso.test.by.ozg-cloud.de asserts: - equal: path: spec.keep_after_delete @@ -206,11 +184,6 @@ tests: - it: should have Keycloak User with group set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test - baseUrl: "test.by.ozg-cloud.de" sso: api_user: name: testapiuser @@ -219,7 +192,6 @@ tests: email: testapiuser@ozg-sh.de groups: - Bauamt - serverUrl: https://sso.test.by.ozg-cloud.de asserts: - equal: path: spec.keep_after_delete @@ -247,14 +219,9 @@ tests: - it: should have lowercase username set: - ozgcloud: - bundesland: by - bezeichner: helm - environment: test sso: api_user: name: testApiUser - serverUrl: https://sso.test.by.ozg-cloud.de asserts: - equal: path: spec.keycloak_user.username diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml index 88406d05..c600bf4f 100644 --- a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml +++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml @@ -1,6 +1,6 @@ suite: test ozgcloud_keycloak_operator_secrets_read_role_binding release: - name: alfa + name: user-manager namespace: by-helm-test templates: - templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml index 17dcf4f3..38f037f7 100644 --- a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml +++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml @@ -1,6 +1,6 @@ suite: test ozgcloud_keycloak_operator_secrets_read_role release: - name: alfa + name: user-manager namespace: by-helm-test templates: - templates/ozgcloud_keycloak_operator_secrets_read_role.yaml diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml index a4e1272f..532115e1 100644 --- a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml +++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml @@ -1,6 +1,6 @@ suite: test ozgcloud_keycloak_operator_secrets_role_binding release: - name: alfa + name: user-manager namespace: by-helm-test templates: - templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml index 25f63240..13e38aad 100644 --- a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml +++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml @@ -1,6 +1,6 @@ suite: test ozgcloud_keycloak_operator_secrets_write_role release: - name: alfa + name: user-manager namespace: by-helm-test templates: - templates/ozgcloud_keycloak_operator_secrets_write_role.yaml diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml index f5b9a319..0bea1376 100644 --- a/src/test/helm/service_account_test.yaml +++ b/src/test/helm/service_account_test.yaml @@ -36,6 +36,8 @@ tests: asserts: - isKind: of: ServiceAccount + - isAPIVersion: + of: v1 - equal: path: metadata.name value: user-manager-service-account @@ -48,8 +50,6 @@ tests: create: true name: helm-service-account asserts: - - isKind: - of: ServiceAccount - equal: path: metadata.name value: helm-service-account diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml index c8be85c8..32b0cf3e 100644 --- a/src/test/helm/service_monitor_test.yaml +++ b/src/test/helm/service_monitor_test.yaml @@ -33,9 +33,34 @@ tests: asserts: - isKind: of: ServiceMonitor + - isAPIVersion: + of: monitoring.coreos.com/v1 - equal: path: metadata.labels["component"] value: user-manager-service-monitor + - it: should have metadata + asserts: + - equal: + path: metadata.name + value: user-manager + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should have default lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: user-manager + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: user-manager + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: user-manager-service-monitor + helm.sh/chart: user-manager-0.0.0-MANAGED-BY-JENKINS + k8s-app: prometheus-app-monitor + ozgcloud-mongodb-client: "true" - it: should be able to enable the endpoint asserts: - isKind: diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index 08c9324f..00d7b3d3 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -33,9 +33,33 @@ tests: asserts: - isKind: of: Service + - isAPIVersion: + of: v1 - equal: path: metadata.labels["component"] value: user-manager-service + - it: should have metadata + asserts: + - equal: + path: metadata.name + value: user-manager + - equal: + path: metadata.namespace + value: helm-test + - it: should have default lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: user-manager + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: user-manager + app.kubernetes.io/namespace: helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: user-manager-service + helm.sh/chart: user-manager-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" - it: should be of type ClusterIP asserts: - equal: -- GitLab