From 6c36cb3ee70fb4094aa680aa69760b64838f1533 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 10 Apr 2024 14:12:55 +0200
Subject: [PATCH] OZG-3328 refactor xta adapter helm imagePullSecret

---
 .../src/main/helm/templates/_helpers.tpl      |  6 --
 .../helm/templates/image_pull_secret.yaml     | 34 -----------
 .../helm/templates/xta_adapter_cronjob.yaml   |  6 +-
 xta-adapter/src/test/helm-linter-values.yaml  |  3 +-
 .../src/test/helm/image_pull_secret_test.yaml | 59 -------------------
 .../test/helm/xta_adapter_63_chars_test.yaml  |  1 +
 .../helm/xta_adapter_cronjob_basic_test.yaml  |  3 +-
 .../xta_adapter_cronjob_bindings_test.yaml    |  1 +
 ...xta_adapter_cronjob_dummy_probes_test.yaml |  3 +-
 .../helm/xta_adapter_cronjob_env_test.yaml    |  3 +-
 .../xta_adapter_cronjob_image_pull_test.yaml  |  8 +--
 .../xta_adapter_cronjob_resources_test.yaml   |  3 +-
 ...adapter_cronjob_service_account_test.yaml} |  1 +
 .../xta_adapter_cronjob_volumes_test.yaml     |  3 +-
 14 files changed, 19 insertions(+), 115 deletions(-)
 delete mode 100644 xta-adapter/src/main/helm/templates/image_pull_secret.yaml
 delete mode 100644 xta-adapter/src/test/helm/image_pull_secret_test.yaml
 rename xta-adapter/src/test/helm/{cronjob_service_account_test.yaml => xta_adapter_cronjob_service_account_test.yaml} (97%)

diff --git a/xta-adapter/src/main/helm/templates/_helpers.tpl b/xta-adapter/src/main/helm/templates/_helpers.tpl
index afcc6d669..5d09c8564 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/image_pull_secret.yaml b/xta-adapter/src/main/helm/templates/image_pull_secret.yaml
deleted file mode 100644
index 327b37f8b..000000000
--- a/xta-adapter/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/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
index 2d91bf430..1159ff69e 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 61f944220..2c2f51b5d 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 4ffa69cba..000000000
--- 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/xta_adapter_63_chars_test.yaml b/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml
index b2a1223a8..941883545 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 74afdf5e3..3e4e37b8f 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,6 +30,7 @@ release:
   namespace: helm-test
 set:
   ozgcloud.environment: dev  
+  imagePullSecret: image-pull-secret
   
 tests:
   - it: validate basic data 
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml
index 959b0b824..9305d2d92 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_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 dc08c5ac6..a8cd367dc 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,6 +30,7 @@ release:
   namespace: helm-test
 set:
   ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
 tests:
   - it: check dummy livenessProbe default disabled
     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 294bf8fb9..4e84137ff 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,6 +30,7 @@ release:
   namespace: helm-test
 set: 
   ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
 tests:
   - it: check default env
     set:
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 bf1fb21e3..645b25738 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 b9b879cd3..a2db96cbe 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,6 +30,7 @@ release:
   namespace: helm-test
 set: 
   ozgcloud.environment: dev
+  imagePullSecret: image-pull-secret
 tests:
   - it: check resources
     set:
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 b84278f12..961dbcf20 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 bbddacc94..7af81adc1 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,6 +30,7 @@ release:
   namespace: helm-test
 set: 
   ozgcloud.environment: dev
+  imagePullSecret: image-pull-secret
 tests:
   - it: check volume mounts
     set:
-- 
GitLab