diff --git a/run_helm_test.sh b/run_helm_test.sh index 3e37c7fcde941bda9e3456c45c299dd62c1ecda5..b19a9bc7c3072044dff8f0fb54c04c29acc3fbf6 100755 --- a/run_helm_test.sh +++ b/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' . \ No newline at end of file +cd src/main/helm && helm unittest -f '../../test/helm/**/*test.yaml' . \ No newline at end of file diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 0915f0f2372d26b4dab57e0c2aa3a25dae0b6b08..e0ff7ea44b451f802f623ad7b1f1e3cd47f829ce 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -42,11 +42,6 @@ app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end -}} -{{- define "app.imagePullSecret" }} -{{- with .Values.imageCredentials }} -{{- printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}}}" .registry .username .password .email (printf "%s:%s" .username .password | b64enc) | b64enc }} -{{- end }} -{{- end }} {{- define "app.envSpringProfiles" }} {{- if (.Values.env).overrideSpringProfiles -}} diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 700bdd9fb705ff655998f12c23c3af4dfb1cde54..89c0a9277df86d7042b64ea75e4c2213e8a21331 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -156,11 +156,7 @@ spec: dnsConfig: {} dnsPolicy: ClusterFirst imagePullSecrets: - {{- if .Values.imagePullSecret }} - - name: {{ .Values.imagePullSecret }} - {{ else }} - - name: {{ .Release.Name }}-image-pull-secret - {{- end }} + - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }} restartPolicy: Always {{- with .Values.hostAliases }} hostAliases: diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image-pull-secret.yaml deleted file mode 100644 index 327b37f8b27d39d926ae1a67d6ef35701b9852e8..0000000000000000000000000000000000000000 --- a/src/main/helm/templates/image-pull-secret.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# -# 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. -# - -{{- if not (.Values.imagePullSecret) }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-image-pull-secret - namespace: {{ include "app.namespace" . }} -type: kubernetes.io/dockerconfigjson -data: - .dockerconfigjson: {{ include "app.imagePullSecret" . }} -{{- end }} \ No newline at end of file diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml index dc7bf7d67561d23925b5ebd3cbac9a491af1ffc8..42eb0483702aedeef01c2dd6a7430108adfa3560 100644 --- a/src/test/helm-linter-values.yaml +++ b/src/test/helm-linter-values.yaml @@ -28,4 +28,6 @@ ozgcloud: bundesland: sh networkPolicy: - dnsServerNamespace: test-dns-server-namespace \ No newline at end of file + dnsServerNamespace: test-dns-server-namespace + +imagePullSecret: image-pull-secret \ No newline at end of file diff --git a/src/test/helm/deployment_63_chars_test.yaml b/src/test/helm/deployment_63_chars_test.yaml index 1e63b47eed93c5e640879e17856231ee1606eaee..62c2f8e3ca43e56adea5171322c914b79f892698 100644 --- a/src/test/helm/deployment_63_chars_test.yaml +++ b/src/test/helm/deployment_63_chars_test.yaml @@ -31,6 +31,7 @@ chart: name: eingang-manager set: ozgcloud.environment: test + imagePullSecret: image-pull-secret templates: - templates/deployment.yaml diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml index 9b3f68067786e6cdcb5a77c4dd07fced16581305..6e48055b01e611b36369c432835f085bebc69b3c 100644 --- a/src/test/helm/deployment_bindings_test.yaml +++ b/src/test/helm/deployment_bindings_test.yaml @@ -27,6 +27,7 @@ templates: - templates/deployment.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: should have temp-dir volume asserts: diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml index ddaa3ee20b9b707914a69d75e00e77ab6df702ca..0613312047954222164d9e3290025f0873d95086 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: eingang-manager namespace: sh-helm-test @@ -30,11 +30,10 @@ templates: - templates/deployment.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret 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_defaults_containers_health_test.yaml b/src/test/helm/deployment_defaults_containers_health_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c6e30a3a92cda6fdb3ad6c7ec29c41dea5e19139 --- /dev/null +++ b/src/test/helm/deployment_defaults_containers_health_test.yaml @@ -0,0 +1,82 @@ +# +# 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 + imagePullSecret: image-pull-secret +tests: + - it: should have correct health check values + 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/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index e5688f081df983cb484ad12faf57719437655b7f..4e2d5f7fd51431f4d91582e5cc50dd5d8ba1d837 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -22,28 +22,28 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment default label release: name: intelliform-adapter namespace: sh-helm-test templates: - templates/deployment.yaml - - templates/service_monitor.yaml - - templates/service.yaml + set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: check default labels asserts: - equal: - path: metadata.labels["app.kubernetes.io/instance"] - value: afm-adapter - - equal: - path: metadata.labels["app.kubernetes.io/name"] - value: intelliform-adapter - - equal: - path: metadata.labels["app.kubernetes.io/part-of"] - value: ozgcloud - - equal: - path: metadata.labels["app.kubernetes.io/namespace"] - value: sh-helm-test + path: metadata.labels + value: + app.kubernetes.io/instance: afm-adapter + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: intelliform-adapter + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS + ozg-component: eingangsadapter + diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..947c086f31e1b3a064cbe3577123c4e087577669 --- /dev/null +++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml @@ -0,0 +1,75 @@ +# +# 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: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud.environment: test + imagePullSecret: image-pull-secret +tests: + - it: check for some standard values + asserts: + - equal: + path: spec.template.spec.containers[0].image + value: docker.ozg-sh.de/intelliform-adapter:latest + - equal: + path: spec.template.spec.containers[0].imagePullPolicy + value: Always + - equal: + path: spec.template.spec.containers[0].name + value: intelliform-adapter + - equal: + path: spec.template.spec.containers[0].ports[0].containerPort + value: 8080 + - equal: + path: spec.template.spec.containers[0].ports[0].name + value: 8080tcp1 + - 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: 8081 + - equal: + path: spec.template.spec.containers[0].ports[1].name + value: metrics + - equal: + path: spec.template.spec.containers[0].ports[1].protocol + value: TCP \ No newline at end of file diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml similarity index 60% rename from src/test/helm/deployment_test.yaml rename to src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml index 7edba4d797ab8fb1484784d4d1cef9079f627eb6..9364e4502d8d63cc0968b5590212fec3591c7f84 100644 --- a/src/test/helm/deployment_test.yaml +++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml @@ -22,33 +22,27 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment topology release: - name: intelliform-adapter + name: eingang-manager namespace: sh-helm-test templates: - - deployment.yaml -set: + - templates/deployment.yaml +set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - - it: validate image type and container image + - it: check default values asserts: - - isKind: - of: Deployment - equal: - path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/intelliform-adapter:latest - - it: validate image pull secret resource name - asserts: + path: spec.template.spec.topologySpreadConstraints[0].maxSkew + value: 1 - equal: - path: spec.template.spec.imagePullSecrets[0].name - value: intelliform-adapter-image-pull-secret + path: spec.template.spec.topologySpreadConstraints[0].topologyKey + value: kubernetes.io/hostname - equal: - path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/intelliform-adapter:latest - - it: should have label ozg-component - asserts: + path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable + value: DoNotSchedule - equal: - path: metadata.labels.ozg-component - value: eingangsadapter - + path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"] + value: eingang-manager \ No newline at end of file diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_customList_test.yaml similarity index 94% rename from src/test/helm/deployment_env_test.yaml rename to src/test/helm/deployment_env_customList_test.yaml index fbc35ac562a0fa9aeb4ffae2a198acb173db4cc7..16022898f61af3474411ceff275c470d1feed81a 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_customList_test.yaml @@ -22,14 +22,14 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test environments +suite: test environments customList templates: - templates/deployment.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: check customList - template: deployment.yaml set: env.customList: - name: my_test_environment_name @@ -41,7 +41,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 diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml index 5bd226ad13c2cade607f3981f15b3f7ab3bee237..4ba73fa7df272156fb3597522bcdf478abd88d1f 100644 --- a/src/test/helm/deployment_host_aliases_test.yaml +++ b/src/test/helm/deployment_host_aliases_test.yaml @@ -31,6 +31,7 @@ templates: set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: should not set hostAliases asserts: diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml index e48100c1bbd73d6d9ec54caa7fbf40a0cbaee231..eb15225e4c522e445b55a64820eafa03b98022aa 100644 --- a/src/test/helm/deployment_imagepull_secret_test.yaml +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment imagepullsecret release: name: afm-adapter namespace: sh-helm-test @@ -31,19 +31,14 @@ templates: set: ozgcloud.environment: test tests: - - it: should use default imagePull secret - asserts: - - isKind: - of: Deployment - - equal: - path: spec.template.spec.imagePullSecrets[0].name - value: afm-adapter-image-pull-secret - it: should set the imagePull secret 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 + value: image-pull-secret + - it: should fail tempalte when not set + asserts: + - failedTemplate: + errorMessage: imagePullSecret must be set \ No newline at end of file diff --git a/src/test/helm/deployment_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml index bca6419f5c5bcf34a4d6c1bb533f22a20256bede..944984fb52cf4b6fbefa346eb1fcfcf065c1a581 100644 --- a/src/test/helm/deployment_liveness_probe_test.yaml +++ b/src/test/helm/deployment_liveness_probe_test.yaml @@ -22,20 +22,19 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment liveness probe templates: - templates/deployment.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret 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: diff --git a/src/test/helm/deployment_pod_default_spec_values_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ed1df2ad69fe488678b6778fc7143b9879db902a --- /dev/null +++ b/src/test/helm/deployment_pod_default_spec_values_test.yaml @@ -0,0 +1,50 @@ + # +# 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 +# +# 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 container basics +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud.environment: test + imagePullSecret: image-pull-secret +tests: + - 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_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index e945125e67791a5d195ac5d27d420732e995d3b6..6404c0c9b9549733ce89f1b3a73e5384b692c702 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -22,13 +22,14 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment resources release: name: afm-adapter templates: - templates/deployment.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: test resources set: diff --git a/src/test/helm/deployment_routing-strategy.yaml b/src/test/helm/deployment_routing_strategy_env.yaml similarity index 96% rename from src/test/helm/deployment_routing-strategy.yaml rename to src/test/helm/deployment_routing_strategy_env.yaml index 72d2046884e5cc96194448ef52daad3c170ee969..dc9ae515b3ad4c3c4ae977d4700736ff1f6633dc 100644 --- a/src/test/helm/deployment_routing-strategy.yaml +++ b/src/test/helm/deployment_routing_strategy_env.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment routing strategy release: name: intelliform-adapter namespace: sh-helm-test @@ -31,6 +31,7 @@ templates: set: image.tag: latest ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: validate default routing values without questions.yaml asserts: diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml index 1c3b8a40130177ef415443d82574265202f89243..0a5df07ed2cc679e0271998764a6a00ea893dff1 100644 --- a/src/test/helm/deployment_service_account_test.yaml +++ b/src/test/helm/deployment_service_account_test.yaml @@ -31,6 +31,7 @@ templates: set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: should use afm-adapter service account name set: diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml similarity index 94% rename from src/test/helm/deployment_springProfile_test.yaml rename to src/test/helm/deployment_springProfile_env_test.yaml index 446ce8f43177fd6f67bb53b780d2159c5edc228d..001fbf3d2e27589848ca87efb16347a183a2cd34 100644 --- a/src/test/helm/deployment_springProfile_test.yaml +++ b/src/test/helm/deployment_springProfile_env_test.yaml @@ -27,14 +27,13 @@ release: name: if-adapter templates: - templates/deployment.yaml - +set: + imagePullSecret: image-pull-secret tests: - it: should override spring profiles set: env.overrideSpringProfiles: oc,stage,ea asserts: - - isKind: - of: Deployment - contains: path: spec.template.spec.containers[0].env content: @@ -44,8 +43,6 @@ tests: set: ozgcloud.environment: test asserts: - - isKind: - of: Deployment - contains: path: spec.template.spec.containers[0].env content: diff --git a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0ab50fa23c12c02f58e50dd546c9a8417b40c975 --- /dev/null +++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml @@ -0,0 +1,73 @@ +# +# 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 +# +# 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 general values +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud.environment: test + imagePullSecret: image-pull-secret +tests: + - 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: eingang-manager + - equal: + path: metadata.namespace + value: sh-helm-test + + + - it: should have correct deyployment general spec values + asserts: + - equal: + path: spec.progressDeadlineSeconds + value: 600 + - equal: + path: spec.replicas + value: null + - 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/image-pull-secret-test.yaml b/src/test/helm/image-pull-secret-test.yaml deleted file mode 100644 index 71e2149189f71dab73ffe321033ae29dc4bb4f65..0000000000000000000000000000000000000000 --- a/src/test/helm/image-pull-secret-test.yaml +++ /dev/null @@ -1,57 +0,0 @@ -# -# 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 image pull secret -templates: - - templates/image-pull-secret.yaml -release: - name: intelliform-adaptero - namespace: helm-test -tests: - - it: should match basic data - set: - imageCredentials: - registry: docker.ozg-sh.de - username: test - password: test1234 - email: webmaster@ozg-sh.de - asserts: - - containsDocument: - kind: Secret - apiVersion: v1 - - equal: - path: metadata.name - value: intelliform-adaptero-image-pull-secret - - equal: - path: metadata.namespace - value: helm-test - - isNotEmpty: - path: data[".dockerconfigjson"] - - - it: should not create image pull secret - set: - imagePullSecret: "image-pull-secret" - asserts: - - hasDocuments: - count: 0 \ No newline at end of file diff --git a/src/test/helm/ingress-create-or-not.yaml b/src/test/helm/ingress_create_or_not.yaml similarity index 100% rename from src/test/helm/ingress-create-or-not.yaml rename to src/test/helm/ingress_create_or_not.yaml diff --git a/src/test/helm/ingress_host_test.yaml b/src/test/helm/ingress_host_test.yaml deleted file mode 100644 index 0889865bd4e04095929746d3d2953ed5463d1def..0000000000000000000000000000000000000000 --- a/src/test/helm/ingress_host_test.yaml +++ /dev/null @@ -1,18 +0,0 @@ -suite: test ozgcloud bezeichner length -release: - name: eingang-manager - namespace: sh-helm-test -templates: - - templates/ingress.yaml - -tests: - - it: should fail on bezeichner (in ingress host) length longer than 46 characters - template: ingress.yaml - set: - ozgcloud: - bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 - environment: test - bundesland: by - asserts: - - failedTemplate: - errorMessage: Bezeichner test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 46 Zeichen) \ No newline at end of file diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress_nginx_tests.yaml similarity index 100% rename from src/test/helm/ingress-nginx-tests.yaml rename to src/test/helm/ingress_nginx_tests.yaml diff --git a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml b/src/test/helm/realm_name_length_test.yaml similarity index 60% rename from xta-adapter/src/main/helm/templates/image-pull-secret.yaml rename to src/test/helm/realm_name_length_test.yaml index 327b37f8b27d39d926ae1a67d6ef35701b9852e8..5cb46db2bb654c1ff01c2ad09c9d95e8e62b4158 100644 --- a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml +++ b/src/test/helm/realm_name_length_test.yaml @@ -22,13 +22,20 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -{{- if not (.Values.imagePullSecret) }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-image-pull-secret - namespace: {{ include "app.namespace" . }} -type: kubernetes.io/dockerconfigjson -data: - .dockerconfigjson: {{ include "app.imagePullSecret" . }} -{{- end }} \ No newline at end of file +suite: test ozgcloud bezeichner length +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/ingress.yaml + +tests: + - it: should fail on bezeichner length longer than 46 characters + set: + ozgcloud: + bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 + environment: test + bundesland: by + asserts: + - failedTemplate: + errorMessage: Bezeichner test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 46 Zeichen) \ No newline at end of file diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml index 52561bed188a291f689b81480f02126cd8aed6bc..81b86cc0508c4023402a30ec49ee8de8a5abff20 100644 --- a/src/test/helm/service_account_test.yaml +++ b/src/test/helm/service_account_test.yaml @@ -37,12 +37,15 @@ tests: asserts: - isKind: of: ServiceAccount + - isAPIVersion: + of: v1 - equal: path: metadata.name value: afm-adapter-service-account - equal: path: metadata.namespace - value: sh-helm-test + value: sh-helm-test + - it: should create default fs adapter service account name set: image.name: formsolutions-adapter diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml index 55ebac3068844aafb2c632b1ab528b7cefe9cefe..c85a7a6b6cb599d55d1bd699bd84f2f2ac6f387c 100644 --- a/src/test/helm/service_monitor_test.yaml +++ b/src/test/helm/service_monitor_test.yaml @@ -22,26 +22,48 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test service monitor release: name: afm-adapter namespace: sh-helm-test templates: - templates/service_monitor.yaml tests: - - it: should have the label component with value afm-adapter-service-monitor attached + - it: should have basic info and the label component with value afm-adapter-service-monitor attached asserts: - isKind: of: ServiceMonitor + - isAPIVersion: + of: monitoring.coreos.com/v1 + - equal: + path: metadata.name + value: afm-adapter + - equal: + path: metadata.namespace + value: sh-helm-test - equal: path: metadata.labels["component"] value: afm-adapter-service-monitor + + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: afm-adapter + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: afm-adapter + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: afm-adapter-service-monitor + helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS + ozg-component: eingangsadapter + - it: should have the metrics endpoint configured by default set: env.springProfiles: oc,stage asserts: - - isKind: - of: ServiceMonitor - contains: path: spec.endpoints content: @@ -49,8 +71,6 @@ tests: path: /actuator/prometheus - it: should be able to enable the endpoint asserts: - - isKind: - of: ServiceMonitor - contains: path: spec.endpoints content: diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index 9004018482d301c6e942d4cc0112de534105a38e..ebc38d5c4c073721252e15a296588b7a73af23bf 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -22,20 +22,28 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test service release: name: afm-adapter namespace: sh-helm-test templates: - templates/service.yaml tests: - - it: should have the label component with value afm-adapter-service attached + - it: should have basics and the label component with value afm-adapter-service attached asserts: - isKind: of: Service + - isAPIVersion: + of: v1 - equal: path: metadata.labels["component"] value: afm-adapter-service + - equal: + path: metadata.name + value: afm-adapter + - equal: + path: metadata.namespace + value: sh-helm-test - it: should be of type ClusterIP asserts: - equal: @@ -75,4 +83,18 @@ tests: - equal: path: spec.selector["app.kubernetes.io/namespace"] value: sh-helm-test - \ No newline at end of file + + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: afm-adapter + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: afm-adapter + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: afm-adapter-service + helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS + ozg-component: eingangsadapter \ No newline at end of file diff --git a/xta-adapter/readme.md b/xta-adapter/readme.md index e285cd941516971122a3d156ca0685b0dfb4da55..0bac437c660b639ce2889e763554ca4cf0850e8e 100644 --- a/xta-adapter/readme.md +++ b/xta-adapter/readme.md @@ -22,7 +22,6 @@ Dann in Base64 umwandeln, damit es als Umgebungsvariable gesetzt werden kann: base64 KOP_SH_KIEL_DEV.p12 # Lokale Installation - Lokal das Root CA in keystore laden (https://ddatabox.dataport.de/public/download-shares/XUok5Wk3EDGWyYaoFGldOeJfGu0J8pke): sudo keytool -trustcacerts -keystore /lib/jvm/java-1.17.0-openjdk-amd64/lib/security/cacerts -storepass changeit -importcert -alias dataportRoot -file DataportRootCA02.crt @@ -31,7 +30,14 @@ Port forwarding aktivieren. Um eine Verbindung zum Nachrichtenbroker aufbauen zu ssh -L 3000:141.91.184.67:443 ozg-sh.de (ggf ssh -L 0.0.0.0:3000:141.91.184.67:443 ozg-sh.de) -## deprecated +## Alternative Dataport Zertifikat Installation +Zertifikate direkt vom Endpunkt anfragen: +```shell +openssl s_client -showcerts -connect li33-0005.dp.dsecurecloud.de:443 </dev/null +``` +und das `Dataport Root CA` Zertifikat unter `/etc/ssl/certs/dataport-root-ca.pem` abspeichern, dann `sudo update-ca-certificates` aufrufen. + +## deprecated DEPRECATED, da wir den HostNameVerifier deaktiviert haben: Hosts Datei erzeugen, damit der Hostname passt: diff --git a/xta-adapter/run_helm_test.sh b/xta-adapter/run_helm_test.sh index 9a57c3aa8f89a760772338f83d79796e04c242cb..31d13d5b9e4162f68f627d2eb96c3b2b3a98828a 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/_helpers.tpl b/xta-adapter/src/main/helm/templates/_helpers.tpl index afcc6d669c8d184bc9029f310e6b9464372b5cfd..5d09c85640bf9ac9943624f3f038687a2bdeec88 100644 --- a/xta-adapter/src/main/helm/templates/_helpers.tpl +++ b/xta-adapter/src/main/helm/templates/_helpers.tpl @@ -36,12 +36,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} helm.sh/chart: {{ include "app.chart" . }} {{- end -}} -{{- define "app.imagePullSecret" }} -{{- with .Values.imageCredentials }} -{{- printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"email\":\"%s\",\"auth\":\"%s\"}}}" .registry .username .password .email (printf "%s:%s" .username .password | b64enc) | b64enc }} -{{- end }} -{{- end }} - {{- define "app.envSpringProfiles" }} {{- if (.Values.env).overrideSpringProfiles -}} {{ printf "%s" (.Values.env).overrideSpringProfiles }} diff --git a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml index 2d91bf4309a5aab3ecf9c5e69dbbf58149e0e667..1159ff69ea4971ed41c08d8ba5d36090550ffa5e 100644 --- a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml +++ b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml @@ -163,11 +163,7 @@ spec: - name: temp-dir emptyDir: {} imagePullSecrets: - {{- if .Values.imagePullSecret }} - - name: {{ .Values.imagePullSecret }} - {{ else }} - - name: {{ .Release.Name }}-image-pull-secret - {{- end }} + - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }} {{- with .Values.podSecurityContext }} securityContext: {{ toYaml . | indent 12 }} diff --git a/xta-adapter/src/test/helm-linter-values.yaml b/xta-adapter/src/test/helm-linter-values.yaml index 61f9442209016b78e715a783e0e1f7aa14691a2d..2c2f51b5dbcf44d63e52ffe673d77261e6318d14 100644 --- a/xta-adapter/src/test/helm-linter-values.yaml +++ b/xta-adapter/src/test/helm-linter-values.yaml @@ -29,4 +29,5 @@ ozgcloud: networkPolicy: - dnsServerNamespace: test-dns-server-namespace \ No newline at end of file + dnsServerNamespace: test-dns-server-namespace +imagePullSecret: image-pull-secret \ No newline at end of file diff --git a/xta-adapter/src/test/helm/image_pull_secret_test.yaml b/xta-adapter/src/test/helm/image_pull_secret_test.yaml deleted file mode 100644 index 1db60649f5340ec1071f476f0cefb7e8c9344f07..0000000000000000000000000000000000000000 --- a/xta-adapter/src/test/helm/image_pull_secret_test.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# -# 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 image pull secret -templates: - - templates/image-pull-secret.yaml -release: - name: xta-adapter - namespace: helm-test -tests: - - it: should match basic data - set: - imageCredentials: - registry: docker.ozg-sh.de - username: test - password: test1234 - email: webmaster@ozg-sh.de - asserts: - - hasDocuments: - count: 1 - - containsDocument: - kind: Secret - apiVersion: v1 - - equal: - path: metadata.name - value: xta-adapter-image-pull-secret - - equal: - path: metadata.namespace - value: helm-test - - isNotEmpty: - path: data[".dockerconfigjson"] - - - it: should not create image pull secret - set: - imagePullSecret: "image-pull-secret" - asserts: - - hasDocuments: - count: 0 \ No newline at end of file diff --git a/xta-adapter/src/test/helm/service_account_test.yaml b/xta-adapter/src/test/helm/service_account_test.yaml index e69fb10ec60f838348d3ab287f6d8eba19db67fb..1027bebb9e7062b7eff532148e3414810523f48f 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_63_chars_test.yaml b/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml index b2a1223a8dbe928d2d0ce41ae6dd03d005e706eb..941883545d93772e6a349add7e60a8190e478629 100644 --- a/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml @@ -28,6 +28,7 @@ release: namespace: sh-helm-test set: ozgcloud.environment: test + imagePullSecret: image-pull-secret chart: name: xta-adapter 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 b17ff7452fb6022ce9d20bdfd58b5b28b538e393..3e4e37b8fe3f8ad0fce65be7a136aa3b8219431c 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 @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test xta adapter cronjob +suite: test xta adapter cronjob basics templates: - templates/xta_adapter_cronjob.yaml release: @@ -30,10 +30,10 @@ release: namespace: helm-test set: ozgcloud.environment: dev + imagePullSecret: image-pull-secret tests: - it: validate basic data - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter asserts: @@ -56,7 +56,6 @@ tests: path: spec.concurrencyPolicy value: Forbid - it: check set schedule - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -70,7 +69,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 +76,6 @@ tests: path: spec.schedule value: "*/15 * * * *" - it: check container image - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter asserts: @@ -87,7 +84,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 +120,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 97% 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 index 959b0b824e88969cbc4012198b340d64836e5c61..9305d2d92e471ba9e0239c57313496679b2bbea6 100644 --- a/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml @@ -27,6 +27,7 @@ templates: - templates/xta_adapter_cronjob.yaml set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: should have temp-dir volume asserts: 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 93637305c8f873e3557b93817da786ea391e32aa..a8cd367dcfe2e8b8dfb5b434769dfdde29f86886 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 @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test xta adapter cronjob +suite: test xta adapter cronjob dummy probes templates: - templates/xta_adapter_cronjob.yaml release: @@ -30,39 +30,34 @@ release: namespace: helm-test set: ozgcloud.environment: test + imagePullSecret: image-pull-secret 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 +66,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 45eb29fa69debf6962737e66509cc2c2c807ad29..4e84137ff94e27f91f7786522f65e9ff5b52d380 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 @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test xta adapter cronjob +suite: test xta adapter cronjob env templates: - templates/xta_adapter_cronjob.yaml release: @@ -30,9 +30,9 @@ release: namespace: helm-test set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: check default env - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -112,7 +112,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_image_pull_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml index bf1fb21e365ad092aceaa9829bfcb9520e65012d..645b25738b9b4124900a5f90cd78b6cb621261e6 100644 --- a/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml @@ -32,12 +32,10 @@ set: ozgcloud.environment: dev tests: - - it: should use default imagePull secret - set: + - it: should fail when imagePull secret not set asserts: - - equal: - path: spec.jobTemplate.spec.template.spec.imagePullSecrets[0].name - value: xta-adapter-image-pull-secret + - failedTemplate: + errormessage: imagePullSecret must be set - it: should set the imagePull secret set: imagePullSecret: image-pull-secret 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 02efe39637d3eeb149ffa8322d8f0e5d2e149f20..a2db96cbea3602e3d47035ec294b177a8dc480be 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 @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test xta adapter cronjob +suite: test xta adapter cronjob resources templates: - templates/xta_adapter_cronjob.yaml release: @@ -30,9 +30,9 @@ release: namespace: helm-test set: ozgcloud.environment: dev + imagePullSecret: image-pull-secret tests: - it: check resources - template: xta_adapter_cronjob.yaml set: resources: limits: diff --git a/xta-adapter/src/test/helm/cronjob_service_account_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_service_account_test.yaml similarity index 97% rename from xta-adapter/src/test/helm/cronjob_service_account_test.yaml rename to xta-adapter/src/test/helm/xta_adapter_cronjob_service_account_test.yaml index b84278f12a2b95b750f3dbe657f66f0e54d46bbf..961dbcf209534074b292de2dd879abadef922625 100644 --- a/xta-adapter/src/test/helm/cronjob_service_account_test.yaml +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_service_account_test.yaml @@ -30,6 +30,7 @@ release: namespace: helm-test set: ozgcloud.environment: test + imagePullSecret: image-pull-secret tests: - it: should use service account with default name set: 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 6acac9f4f2a7376cef9ca583eb3e82ae9cec76ec..7af81adc1e39cc206f113ab1e00415b147a65f99 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 @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test xta adapter cronjob +suite: test xta adapter cronjob volume templates: - templates/xta_adapter_cronjob.yaml release: @@ -30,9 +30,9 @@ release: namespace: helm-test set: ozgcloud.environment: dev + imagePullSecret: image-pull-secret tests: - it: check volume mounts - template: xta_adapter_cronjob.yaml set: image.name: xta-adapter xta: @@ -63,7 +63,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 ff4858ff0bdc6cbddfccbaa81b5b8dbf9668e3af..ad3697998319f96038442aa30f873ea9a7b343a5 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 b01988387b43fc36fb45cb84ff2f4d09c5df9555..8272eb11cb25d56516716f5d86ad111c3a57ccb1 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 c3861ba54d4cdbf807cfb5780090080d1290371e..f65bbcb9edc38e2fed6da3531eecaae8a69db205 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