From 2ee7af343baaf5052fd7799a62e41f4c795a3059 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Sun, 13 Nov 2022 21:06:07 +0100 Subject: [PATCH] OZG-3152: refactor helm chart for new cluster --- Jenkinsfile | 2 +- src/main/helm/templates/_helpers.tpl | 32 +---- src/main/helm/templates/ingress.yaml | 7 +- src/main/helm/test-values.yaml | 2 + src/main/helm/values.yaml | 2 + .../helm/deployment_defaults_labels_test.yaml | 6 +- src/test/helm/deployment_env_test.yaml | 1 - src/test/helm/deployment_resources_test.yaml | 6 +- .../helm/deployment_routing-strategy.yaml | 5 +- .../helm/deployment_springProfile_test.yaml | 4 +- src/test/helm/deployment_test.yaml | 8 +- src/test/helm/image-pull-secret-test.yaml | 2 - src/test/helm/ingress-create-or-not.yaml | 5 - src/test/helm/ingress_test.yaml | 120 ++---------------- src/test/helm/service_monitor_test.yaml | 6 +- src/test/helm/service_test.yaml | 4 +- ...s_annotaion_test.yaml => unit-values.yaml} | 40 +++--- 17 files changed, 51 insertions(+), 201 deletions(-) rename src/test/{helm/deployment_defaults_annotaion_test.yaml => unit-values.yaml} (60%) diff --git a/Jenkinsfile b/Jenkinsfile index 24c21bb82..ad830ce73 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -136,7 +136,7 @@ pipeline { dir('src/main/helm') { sh "helm lint -f test-values.yaml" - sh "helm unittest -f '../../test/helm/*.yaml' ." + sh "helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ." sh "helm package --version=${HELM_CHART_VERSION} ." diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index db0d7ca50..1fdd289ff 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -48,7 +48,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end }} {{- end }} - {{- define "app.envSpringProfiles" }} {{- if (.Values.env).overrideSpringProfiles -}} {{ printf "%s" (.Values.env).overrideSpringProfiles }} @@ -57,12 +56,10 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end -}} {{- end -}} - {{- define "app.kopEnvironment" -}} {{- required "Environment muss angegeben sein" (.Values.kop).environment -}} {{- end -}} - {{- define "app.kopBezeichner" -}} {{ $length := len (.Values.kop).bezeichner }} {{- if ge 27 $length -}} @@ -72,7 +69,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end -}} {{- end -}} - {{- define "app.resources" }} {{- if eq (include "app.kopEnvironment" . ) "prod" }} limits: @@ -91,32 +87,10 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- end }} {{- end -}} - {{- define "app.ingress.host" }} -{{- if .Values.ingress.overrideHost }} -{{- printf "%s" ( trimPrefix "https://" .Values.ingress.overrideHost ) }} -{{- else }} - -{{- if eq (include "app.kopEnvironment" . ) "prod" }} -{{- if eq (.Values.image).name "formsolutions-adapter" }} -{{- printf "%s.fs.ozg-sh.de" (include "app.kopBezeichner" .) }} -{{- else }} -{{- printf "%s.afm.ozg-sh.de" (include "app.kopBezeichner" .) }} -{{- end }} - -{{- else if eq (include "app.kopEnvironment" . ) "stage" }} -{{- if eq (.Values.image).name "formsolutions-adapter" }} -{{- printf "%s.stage.fs.ozg-sh.de" (include "app.kopBezeichner" .) }} -{{- else }} -{{- printf "%s.stage.afm.ozg-sh.de" (include "app.kopBezeichner" .) }} -{{- end }} - -{{- else }} {{- if eq (.Values.image).name "formsolutions-adapter" }} -{{- printf "%s-fs.%s.ozg-sh.de" (include "app.kopBezeichner" .) (include "app.kopEnvironment" . ) }} +{{- printf "%s-fs.%s" (include "app.kopBezeichner" .) .Values.baseUrl }} {{- else }} -{{- printf "%s-afm.%s.ozg-sh.de" (include "app.kopBezeichner" .) (include "app.kopEnvironment" . ) }} -{{- end }} -{{- end }} -{{- end }} +{{- printf "%s-afm.%s" (include "app.kopBezeichner" .) .Values.baseUrl }} {{- end }} +{{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index 330b9d3e7..3ee5b0eca 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -26,12 +26,12 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - {{- with .Values.ingressAnnotations }} - annotations: {{- toYaml . | nindent 4 }} - {{- end }} + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod name: {{ include "app.name" . }} namespace: {{ include "app.namespace" . }} spec: + ingressClassName: nginx rules: - http: paths: @@ -46,4 +46,5 @@ spec: tls: - hosts: - {{ include "app.ingress.host" . }} + secretName: {{ .Values.kop.bezeichner }}-{{ include "app.name" . }}-tls {{- end -}} \ No newline at end of file diff --git a/src/main/helm/test-values.yaml b/src/main/helm/test-values.yaml index 315c15a39..e5d00fa63 100644 --- a/src/main/helm/test-values.yaml +++ b/src/main/helm/test-values.yaml @@ -22,6 +22,8 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # +baseUrl: test.by.ozg-cloud.de + kop: environment: test bezeichner: helm \ No newline at end of file diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index 9777e18eb..5da7c8209 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -22,6 +22,8 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # +baseUrl: test.by.ozg-cloud.de + image: repo: docker.ozg-sh.de name: intelliform-adapter # [default: intelliform-adapter] diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index 9202e61ed..795d3f770 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -25,15 +25,13 @@ suite: test deployment release: name: intelliform-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - templates/deployment.yaml - templates/service_monitor.yaml - templates/service.yaml tests: - it: check default labels - set: - kop.environment: dev asserts: - equal: path: metadata.labels.[app.kubernetes.io/instance] @@ -46,4 +44,4 @@ tests: value: kop - equal: path: metadata.labels.[app.kubernetes.io/namespace] - value: sh-helm-test + value: by-helm-test diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 525c2c98a..51fc54a9d 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -29,7 +29,6 @@ tests: - it: check customList template: deployment.yaml set: - kop.environment: test env.customList: - name: my_test_environment_name value: "A test value" diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index 854c1486f..11441f69d 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -30,7 +30,7 @@ templates: tests: - it: test resources for prod environment release: - namespace: sh-name-prod + namespace: sh-helm-prod set: kop.environment: prod asserts: @@ -48,9 +48,7 @@ tests: value: 250Mi - it: test default resources release: - namespace: sh-name-dev - set: - kop.environment: dev + namespace: by-helm-test asserts: - equal: path: spec.template.spec.containers[0].resources.limits.cpu diff --git a/src/test/helm/deployment_routing-strategy.yaml b/src/test/helm/deployment_routing-strategy.yaml index cfc5b45f4..27c9e2084 100644 --- a/src/test/helm/deployment_routing-strategy.yaml +++ b/src/test/helm/deployment_routing-strategy.yaml @@ -25,15 +25,13 @@ suite: test deployment release: name: intelliform-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - deployment.yaml set: image.tag: latest tests: - it: validate default routing values without questions.yaml - set: - kop.environment: test asserts: - contains: path: spec.template.spec.containers[0].env @@ -47,7 +45,6 @@ tests: value: DENY - it: validate routing infos set: - kop.environment: test routing.routingStrategy: MULTI routing.fallbackStrategy: FUNDSTELLE asserts: diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_test.yaml index 36d372f73..027de9d0a 100644 --- a/src/test/helm/deployment_springProfile_test.yaml +++ b/src/test/helm/deployment_springProfile_test.yaml @@ -30,7 +30,7 @@ templates: tests: - it: should override spring profiles set: - kop.environment: test + kop.environment: stage env.overrideSpringProfiles: oc,stage,ea asserts: - isKind: @@ -41,8 +41,6 @@ tests: name: spring_profiles_active value: oc,stage,ea - it: should generate spring profiles - set: - kop.environment: test asserts: - isKind: of: Deployment diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_test.yaml index 0ef307b73..0c182ce97 100644 --- a/src/test/helm/deployment_test.yaml +++ b/src/test/helm/deployment_test.yaml @@ -25,14 +25,11 @@ suite: test deployment release: name: intelliform-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - deployment.yaml tests: - it: validate image type and container image - set: - kop.environment: test - image.tag: latest asserts: - isKind: of: Deployment @@ -40,9 +37,6 @@ tests: path: spec.template.spec.containers[0].image value: docker.ozg-sh.de/intelliform-adapter:latest - it: validate image pull secret resource name - set: - kop.environment: test - image.tag: latest asserts: - equal: path: spec.template.spec.imagePullSecrets[0].name diff --git a/src/test/helm/image-pull-secret-test.yaml b/src/test/helm/image-pull-secret-test.yaml index 76641b50b..423d6268f 100644 --- a/src/test/helm/image-pull-secret-test.yaml +++ b/src/test/helm/image-pull-secret-test.yaml @@ -28,8 +28,6 @@ templates: release: name: intelliform-adaptero namespace: helm-test -set: - image.name: intelliform-adapter tests: - it: should match basic data asserts: diff --git a/src/test/helm/ingress-create-or-not.yaml b/src/test/helm/ingress-create-or-not.yaml index 0f97df760..7bf967dda 100644 --- a/src/test/helm/ingress-create-or-not.yaml +++ b/src/test/helm/ingress-create-or-not.yaml @@ -29,8 +29,6 @@ tests: - it: create ingress by config set: ingress.enabled: true - kop.environment: dev - kop.bezeichner: unit asserts: - isKind: of: Ingress @@ -41,9 +39,6 @@ tests: - hasDocuments: count: 0 - it: ingress should be created by default - set: - kop.environment: dev - kop.bezeichner: unit asserts: - isKind: of: Ingress diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml index 8a8a059c8..80fe6cab1 100644 --- a/src/test/helm/ingress_test.yaml +++ b/src/test/helm/ingress_test.yaml @@ -25,14 +25,11 @@ suite: test ingress creation release: name: intelliform-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - templates/ingress.yaml tests: - it: should match basic data - set: - kop.environment: dev - kop.bezeichner: unit asserts: - containsDocument: kind: Ingress @@ -42,142 +39,43 @@ tests: value: intelliform-adapter - equal: path: metadata.namespace - value: sh-helm-test + value: by-helm-test - it: should match service port number - set: - kop.environment: dev - kop.bezeichner: unit asserts: - equal: path: spec.rules[0].http.paths[0].backend.service.port.number value: 8080 - it: should match service name - set: - kop.environment: dev - kop.bezeichner: unit asserts: - equal: path: spec.rules[0].http.paths[0].backend.service.name value: intelliform-adapter - it: should match service path - set: - kop.environment: dev - kop.bezeichner: unit asserts: - isEmpty: path: spec.rules[0].http.paths[0].path - it: should match service pathType - set: - kop.environment: dev - kop.bezeichner: unit asserts: - equal: path: spec.rules[0].http.paths[0].pathType value: ImplementationSpecific - - it: should create afm dev host - set: - kop.environment: dev - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit-afm.dev.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit-afm.dev.ozg-sh.de - - it: should create afm test host - set: - kop.environment: test - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit-afm.test.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit-afm.test.ozg-sh.de - - it: should create afm prod host - set: - kop.environment: prod - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit.afm.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit.afm.ozg-sh.de - - it: should create afm stage host - set: - kop.environment: stage - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit.stage.afm.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit.stage.afm.ozg-sh.de - - it: should set host - release: - namespace: sh-unit-stage - set: - ingress.overrideHost: https://host.dev.ozg-sh.de - kop.environment: dev - kop.bezeichner: unit + - it: should create afm host asserts: - equal: path: spec.rules[0].host - value: host.dev.ozg-sh.de + value: helm-afm.test.by.ozg-cloud.de - equal: path: spec.tls[0].hosts[0] - value: host.dev.ozg-sh.de + value: helm-afm.test.by.ozg-cloud.de - - it: should create fs dev host - set: - image.name: formsolutions-adapter - kop.environment: dev - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit-fs.dev.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit-fs.dev.ozg-sh.de - - it: should create fs test host - set: - image.name: formsolutions-adapter - kop.environment: test - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit-fs.test.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit-fs.test.ozg-sh.de - - it: should create fs prod host - set: - image.name: formsolutions-adapter - kop.environment: prod - kop.bezeichner: unit - asserts: - - equal: - path: spec.rules[0].host - value: unit.fs.ozg-sh.de - - equal: - path: spec.tls[0].hosts[0] - value: unit.fs.ozg-sh.de - - it: should create fs stage host + + - it: should create fs host set: image.name: formsolutions-adapter - kop.environment: stage - kop.bezeichner: unit asserts: - equal: path: spec.rules[0].host - value: unit.stage.fs.ozg-sh.de + value: helm-fs.test.by.ozg-cloud.de - equal: path: spec.tls[0].hosts[0] - value: unit.stage.fs.ozg-sh.de \ No newline at end of file + value: helm-fs.test.by.ozg-cloud.de diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml index e20b93198..600c3f3a2 100644 --- a/src/test/helm/service_monitor_test.yaml +++ b/src/test/helm/service_monitor_test.yaml @@ -25,7 +25,7 @@ suite: test deployment release: name: afm-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - templates/service_monitor.yaml tests: @@ -60,7 +60,7 @@ tests: asserts: - contains: path: spec.namespaceSelector.matchNames - content: sh-helm-test + content: by-helm-test - it: selector should contain the component label with the value afm-adapter-service asserts: - equal: @@ -73,4 +73,4 @@ tests: value: afm-adapter - equal: path: spec.selector.matchLabels.[app.kubernetes.io/namespace] - value: sh-helm-test + value: by-helm-test diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index f9680d60e..04b386829 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -25,7 +25,7 @@ suite: test deployment release: name: afm-adapter - namespace: sh-helm-test + namespace: by-helm-test templates: - templates/service.yaml tests: @@ -74,5 +74,5 @@ tests: value: afm-adapter - equal: path: spec.selector.[app.kubernetes.io/namespace] - value: sh-helm-test + value: by-helm-test \ No newline at end of file diff --git a/src/test/helm/deployment_defaults_annotaion_test.yaml b/src/test/unit-values.yaml similarity index 60% rename from src/test/helm/deployment_defaults_annotaion_test.yaml rename to src/test/unit-values.yaml index 83a5be816..da77a1e5b 100644 --- a/src/test/helm/deployment_defaults_annotaion_test.yaml +++ b/src/test/unit-values.yaml @@ -22,26 +22,22 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment -release: +baseUrl: test.by.ozg-cloud.de + +kop: + environment: test + bezeichner: helm + +routing: + targetPlutoName: pluto + +image: + repo: docker.ozg-sh.de name: intelliform-adapter - namespace: sh-helm-test -templates: - - templates/ingress.yaml -tests: - - it: check ingress annotaions if traefik v2 - set: - kop.environment: dev - kop.bezeichner: helm - asserts: - - isKind: - of: Ingress - - equal: - path: metadata.annotations.[kubernetes.io/ingress.class] - value: traefik - - equal: - path: metadata.annotations.[traefik.ingress.kubernetes.io/router.entrypoints] - value: websecure - - equal: - path: metadata.annotations.[traefik.ingress.kubernetes.io/router.tls] - value: "true" + tag: latest + +imageCredentials: + registry: docker.ozg-sh.de + username: kop + password: + email: webmaster@ozg-sh.de \ No newline at end of file -- GitLab