From ada01fcd7e91f8acf0e0bb4be0d11e0ecd9eeb58 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 10 Apr 2024 12:58:44 +0200 Subject: [PATCH] OZG-3328 make imagepullsecret required --- src/main/helm/templates/_helpers.tpl | 6 -- src/main/helm/templates/deployment.yaml | 6 +- .../helm/templates/image_pull_secret.yaml | 34 ----------- src/test/helm/deployment_63_char_test.yaml | 2 +- ...yment_container_security_context_test.yaml | 1 + .../helm/deployment_default_spec_test.yaml | 1 + .../helm/deployment_defaults_labels_test.yaml | 1 + ...faults_topologySpreadConstraints_test.yaml | 1 + src/test/helm/deployment_env_test.yaml | 1 + .../helm/deployment_host_aliases_test.yaml | 1 + .../deployment_imagepull_secret_test.yaml | 14 ++--- ... deployment_keycloak_values_env_test.yaml} | 3 +- ...yment_mongodb_passwort_secretref_test.yaml | 5 +- .../deployment_optional_trust_store_test.yaml | 1 + src/test/helm/deployment_probes_test.yaml | 1 + src/test/helm/deployment_resources_test.yaml | 1 + .../helm/deployment_service_account_test.yaml | 1 + src/test/helm/deployment_url_value_test.yaml | 3 +- .../helm/deplyoment_cert_bindings_test.yaml | 1 + ...t_general_value_and_default_spec_test.yaml | 1 + src/test/helm/imagepull_secret_test.yaml | 59 ------------------- src/test/linter-values.yaml | 2 +- 22 files changed, 27 insertions(+), 119 deletions(-) delete mode 100644 src/main/helm/templates/image_pull_secret.yaml rename src/test/helm/{deployment_keycloak_values_test.yaml => deployment_keycloak_values_env_test.yaml} (98%) delete mode 100644 src/test/helm/imagepull_secret_test.yaml diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 9d24fd8e..bbb79882 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -41,12 +41,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.cronjobScheduler" }} {{- printf "%d %d * * *" (div (randNumeric 2) 2) (div (randNumeric 1) 2) -}} {{- end -}} diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index a602dfe7..66262635 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -226,11 +226,7 @@ spec: dnsConfig: {} dnsPolicy: ClusterFirst imagePullSecrets: - {{- if .Values.imagePullSecret }} - - name: {{ .Values.imagePullSecret }} - {{ else }} - - name: user-manager-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 02be1463..00000000 --- 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: user-manager-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/deployment_63_char_test.yaml b/src/test/helm/deployment_63_char_test.yaml index e6a14d3a..5c5d86b1 100644 --- a/src/test/helm/deployment_63_char_test.yaml +++ b/src/test/helm/deployment_63_char_test.yaml @@ -36,7 +36,7 @@ set: environment: dev sso.serverUrl: https://sso.company.local baseUrl: test.company.local - + imagePullSecret: image-pull-secret tests: - it: should fail on .Release.Namespace length longer than 63 characters release: diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml index 205e5aac..5d501b02 100644 --- a/src/test/helm/deployment_container_security_context_test.yaml +++ b/src/test/helm/deployment_container_security_context_test.yaml @@ -35,6 +35,7 @@ set: environment: dev sso.serverUrl: https://sso.company.local baseUrl: test.company.local + imagePullSecret: image-pull-secret tests: - it: check default values asserts: diff --git a/src/test/helm/deployment_default_spec_test.yaml b/src/test/helm/deployment_default_spec_test.yaml index 5e2d1726..b06b3382 100644 --- a/src/test/helm/deployment_default_spec_test.yaml +++ b/src/test/helm/deployment_default_spec_test.yaml @@ -36,6 +36,7 @@ set: baseUrl: test.sh.ozg-cloud.de sso: serverUrl: sso.test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: check for some standard values asserts: diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index ea21aa38..5cfcd5a5 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -36,6 +36,7 @@ set: sso: serverUrl: https://sso.company.local baseUrl: test.sh.ozg-cloud.local + imagePullSecret: image-pull-secret tests: - it: check default labels asserts: diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml index 1071ef23..a71b7e67 100644 --- a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml +++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml @@ -36,6 +36,7 @@ set: baseUrl: test.sh.ozg-cloud.de sso: serverUrl: sso.test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: check default values asserts: diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 50bd0bbe..c0acc80b 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -33,6 +33,7 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: check customList set: diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml index 35a67366..0d704cc7 100644 --- a/src/test/helm/deployment_host_aliases_test.yaml +++ b/src/test/helm/deployment_host_aliases_test.yaml @@ -36,6 +36,7 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + 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 557926de..196a5f4d 100644 --- a/src/test/helm/deployment_imagepull_secret_test.yaml +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -36,16 +36,16 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + tests: - - it: should use default imagePull secret - asserts: - - equal: - path: spec.template.spec.imagePullSecrets[0].name - value: user-manager-image-pull-secret - it: should set the imagePull secret - set: + set: imagePullSecret: image-pull-secret asserts: - 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 if the imagePull secret not set + asserts: + - failedTemplate: + errorMessage: imagePullSecret must be set \ No newline at end of file diff --git a/src/test/helm/deployment_keycloak_values_test.yaml b/src/test/helm/deployment_keycloak_values_env_test.yaml similarity index 98% rename from src/test/helm/deployment_keycloak_values_test.yaml rename to src/test/helm/deployment_keycloak_values_env_test.yaml index b458a4a1..f9579ff7 100644 --- a/src/test/helm/deployment_keycloak_values_test.yaml +++ b/src/test/helm/deployment_keycloak_values_env_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment kc values release: name: user-manager templates: @@ -35,6 +35,7 @@ set: sso: serverUrl: https://sso.test.by.ozg-cloud.local baseUrl: test.company.local + imagePullSecret: image-pull-secret tests: - it: validate keycloak configuration values asserts: diff --git a/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml b/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml index 5398f844..b717977c 100644 --- a/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml +++ b/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: test deployment mongodb psw secretref release: name: user-manager templates: @@ -34,11 +34,11 @@ set: environment: dev sso.serverUrl: https://sso.company.local baseUrl: test.company.local + imagePullSecret: image-pull-secret tests: - it: should reference mongodb connection service for user-manager set: database.secretName: pluto-database-admin-user-manager-database-user - template: deployment.yaml release: namespace: sh-helm-test asserts: @@ -52,7 +52,6 @@ tests: name: pluto-database-admin-user-manager-database-user optional: false - it: check default mongodb connection service for user-manager - template: deployment.yaml release: namespace: sh-helm-test asserts: diff --git a/src/test/helm/deployment_optional_trust_store_test.yaml b/src/test/helm/deployment_optional_trust_store_test.yaml index 6944e3d1..056003a5 100644 --- a/src/test/helm/deployment_optional_trust_store_test.yaml +++ b/src/test/helm/deployment_optional_trust_store_test.yaml @@ -33,6 +33,7 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: check without truststore asserts: diff --git a/src/test/helm/deployment_probes_test.yaml b/src/test/helm/deployment_probes_test.yaml index 16ea2042..b0b21391 100644 --- a/src/test/helm/deployment_probes_test.yaml +++ b/src/test/helm/deployment_probes_test.yaml @@ -36,6 +36,7 @@ set: sso: serverUrl: https://sso.company.local baseUrl: test.by.company.local + imagePullSecret: image-pull-secret tests: - it: livenessProbe should be disabled by default asserts: diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index ca06a606..0cbca6c0 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -35,6 +35,7 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: test resources set: diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml index 92b60bc0..75a15ba0 100644 --- a/src/test/helm/deployment_service_account_test.yaml +++ b/src/test/helm/deployment_service_account_test.yaml @@ -36,6 +36,7 @@ set: sso: serverUrl: sso.test.sh.ozg-cloud.de baseUrl: test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: should use service account with default name diff --git a/src/test/helm/deployment_url_value_test.yaml b/src/test/helm/deployment_url_value_test.yaml index 49a89498..981fe2a4 100644 --- a/src/test/helm/deployment_url_value_test.yaml +++ b/src/test/helm/deployment_url_value_test.yaml @@ -34,9 +34,9 @@ set: environment: dev sso.serverUrl: https://sso.company.local baseUrl: test.company.local + imagePullSecret: image-pull-secret tests: - it: validate keycloak configuration values - template: deployment.yaml release: namespace: sh-name-dev asserts: @@ -47,7 +47,6 @@ tests: value: https://helm-user-manager.test.company.local - it: set baseDomain for ozgcloud_user_manager_url - template: deployment.yaml set: baseDomain: helm-usm.test.company.local asserts: diff --git a/src/test/helm/deplyoment_cert_bindings_test.yaml b/src/test/helm/deplyoment_cert_bindings_test.yaml index 3fec0d1b..4ac96535 100644 --- a/src/test/helm/deplyoment_cert_bindings_test.yaml +++ b/src/test/helm/deplyoment_cert_bindings_test.yaml @@ -36,6 +36,7 @@ set: baseUrl: test.sh.ozg-cloud.de sso: serverUrl: sso.test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: should mount volumes for user-manager root ca asserts: 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 index 173b04d8..c412536f 100644 --- a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml +++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml @@ -36,6 +36,7 @@ set: baseUrl: test.sh.ozg-cloud.de sso: serverUrl: sso.test.sh.ozg-cloud.de + imagePullSecret: image-pull-secret tests: - it: should have correct apiVersion diff --git a/src/test/helm/imagepull_secret_test.yaml b/src/test/helm/imagepull_secret_test.yaml deleted file mode 100644 index 80631de8..00000000 --- a/src/test/helm/imagepull_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: user-manager - 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: user-manager-image-pull-secret - - equal: - path: metadata.namespace - value: helm-test - - isNotNullOrEmpty: - 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/linter-values.yaml b/src/test/linter-values.yaml index 90be3712..1aa9fbc0 100644 --- a/src/test/linter-values.yaml +++ b/src/test/linter-values.yaml @@ -38,4 +38,4 @@ sso: networkPolicy: ssoPublicIp: 51.89.117.53/32 dnsServerNamespace: test-dns-namespace - \ No newline at end of file +imagePullSecret: image-pull-secret -- GitLab