diff --git a/Jenkinsfile b/Jenkinsfile index 24c21bb82392c174d22990486300871f8fdddadd..ad830ce7327e27f8aa869ff6b7cef588bbe072a2 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 db0d7ca50f41352f3573dedbabfaeb72f7cf95d7..1fdd289fff80a710a0cce64eca60f66734539e48 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 330b9d3e7b914d480e99b4a69df385f5a03a0e37..3ee5b0eca57ec5866139eaa3f255bc2212422789 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 315c15a39dbd1ae230a7ccd991bbab36fa2b4abc..e5d00fa6320ef075ae9fc641c52939d57efc8203 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 9777e18eb34ae803ade6cd9fd612258dd22dfc5e..5da7c8209e648fbfcefe59bb2d079ccf99945665 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 9202e61ed4fc32ddd3bdce8b64729d0c96454cec..795d3f77033ef85faae1e5ae92f0b0e8cfc53fc2 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 525c2c98a76c4231495dc0520660d858d3ec525e..51fc54a9d7a2dafbed105d7cb8b2694f4ce7414a 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 854c1486fe0604fdf0f2ed1d3f1f6086bcbc65e0..11441f69daab06575a2accdec94a98f63ed76c45 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 cfc5b45f44f9750a773183eed9d071b193e8af98..27c9e2084a82835aae25f905bf264017056df3e3 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 36d372f7372dfc45f3e5135f2cc6a6c95ad72ccd..027de9d0a7a6b4e7aeccb248ca05814f8f84c602 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 0ef307b73378c16c6dc806dfe6118e1a7d00f6c5..0c182ce9731dc599c99f1ab8454a2f9314a0088f 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 76641b50b6700d80d80814b00859edbef71ada00..423d6268f8fea790bd466277a96f93c9594600a7 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 0f97df76002f928f105bf0a11d6614e976499bb2..7bf967dda4211df292b300c73a6c3f8265a4320a 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 8a8a059c85c66d95331bee77d8a9f0d77cf8dfbe..80fe6cab175442302cc02bde2d32e435ae55fa8f 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 e20b931986f88f3d9c21a322109738238ef31b5f..600c3f3a21a9c6754fe332f25f76f402f97372e0 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 f9680d60e2a5a8b75f9f2ab35274f58d2e0808ca..04b386829581befddefe0add807cb8c65ad7217e 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 83a5be81612ac53c174a363cddb6f26359a7a0fa..da77a1e5ba9bfbaa2b888143cf60626d05bad52b 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