diff --git a/Jenkinsfile b/Jenkinsfile index ec06a286b328e9db37cbb3560af803ce248dce2e..9bb110e4afb5ce6d635a114f7830aa44d82a9536 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -135,7 +135,7 @@ pipeline { HELM_CHART_VERSION = generateHelmChartVersion() dir('src/main/helm') { - sh "helm lint -f test-values.yaml" + sh "helm lint -f ../../test/helm-linter-values.yaml" sh "helm unittest --helm3 -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' ." diff --git a/common/pom.xml b/common/pom.xml index 2bdfbf447d0a29bac8df22e7260158197667eec1..9efae59c15cc8dd375e623b60b027133b6d857da 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -31,7 +31,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> <artifactId>common</artifactId> diff --git a/enterprise-adapter/pom.xml b/enterprise-adapter/pom.xml index 087694ce0450c2d56f32fb917b607562b228759e..e3ee923984e3a9a8a5bf7b8b3fcedb0cf3ec2111 100644 --- a/enterprise-adapter/pom.xml +++ b/enterprise-adapter/pom.xml @@ -4,15 +4,13 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> </parent> <artifactId>enterprise-adapter</artifactId> <name>EM - Enterprise Interface Adapter</name> <properties> - <spring-boot.build-image.imageName> - docker.ozg-sh.de/enterprise-adapter:build-latest - </spring-boot.build-image.imageName> + <spring-boot.build-image.imageName>docker.ozg-sh.de/enterprise-adapter:build-latest</spring-boot.build-image.imageName> </properties> <dependencies> diff --git a/formcycle-adapter/formcycle-adapter-impl/pom.xml b/formcycle-adapter/formcycle-adapter-impl/pom.xml index 094afe79d2140f257df3d7ca132978074d8aad80..ece347c1c30b0c532fb8a814e811bbc6cfd4aaae 100644 --- a/formcycle-adapter/formcycle-adapter-impl/pom.xml +++ b/formcycle-adapter/formcycle-adapter-impl/pom.xml @@ -29,7 +29,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>formcycle-adapter</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> diff --git a/formcycle-adapter/formcycle-adapter-interface/pom.xml b/formcycle-adapter/formcycle-adapter-interface/pom.xml index 16e4a43119a366e482974b1e1783122e99be18bf..79ed14bc702f298771d4e97310b56642338e23cb 100644 --- a/formcycle-adapter/formcycle-adapter-interface/pom.xml +++ b/formcycle-adapter/formcycle-adapter-interface/pom.xml @@ -29,17 +29,17 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>3.0.0-SNAPSHOT</version> + <version>3.0.0</version> <relativePath/> </parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>formcycle-adapter-interface</artifactId> <name>EM - Formcycle Adapter - Interface</name> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <properties> - <vorgang-manager.version>2.0.0-SNAPSHOT</vorgang-manager.version> + <vorgang-manager.version>2.0.0</vorgang-manager.version> <java.version>17</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> diff --git a/formcycle-adapter/pom.xml b/formcycle-adapter/pom.xml index c3f4ba6390e2ea3ea70863bf2ac98aebbe7dbc22..606abe550b5d079f85b27fb05e5ec1ecdc0357b8 100644 --- a/formcycle-adapter/pom.xml +++ b/formcycle-adapter/pom.xml @@ -29,7 +29,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> </parent> <artifactId>formcycle-adapter</artifactId> diff --git a/formsolutions-adapter/pom.xml b/formsolutions-adapter/pom.xml index 476f5f3e7d6581999883ca804861392b13b328b7..d890d223e7d8117323f585971b5ae414a7078180 100644 --- a/formsolutions-adapter/pom.xml +++ b/formsolutions-adapter/pom.xml @@ -32,7 +32,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> diff --git a/forwarder/pom.xml b/forwarder/pom.xml index 2f42fe015d8462d6dde248cd342186abb2a13539..0fe701608ee19d9175105733344628e9bb97a6fc 100644 --- a/forwarder/pom.xml +++ b/forwarder/pom.xml @@ -29,7 +29,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> diff --git a/intelliform-adapter/pom.xml b/intelliform-adapter/pom.xml index e9086dc1add897c613aa9a079d4dc4277e2ca164..bc56cc19f243e50f2cd5541343441d5ffd3b8656 100644 --- a/intelliform-adapter/pom.xml +++ b/intelliform-adapter/pom.xml @@ -31,7 +31,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> diff --git a/pom.xml b/pom.xml index cca6ef0de0657c8f9b6302a00122eabf317ecf09..1e7f64f507d8fa5a93eaf2150c3bad8035f85a85 100644 --- a/pom.xml +++ b/pom.xml @@ -31,13 +31,13 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>3.0.0-SNAPSHOT</version> + <version>3.0.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>OZG-Cloud Eingang Manager</name> @@ -56,7 +56,7 @@ <properties> <mapstruct.version>1.4.2.Final</mapstruct.version> - <vorgang-manager.version>2.0.0-SNAPSHOT</vorgang-manager.version> + <vorgang-manager.version>2.0.0</vorgang-manager.version> <jsoup.version>1.14.3</jsoup.version> <xmlschema.version>2.3.0</xmlschema.version> diff --git a/router/pom.xml b/router/pom.xml index 9ccbaa12ffa05e0675c2ff23231dab22e9288986..03fe0e2cfabc5bf5662a9bf866729b8e38ad7d87 100644 --- a/router/pom.xml +++ b/router/pom.xml @@ -29,7 +29,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> <relativePath>../</relativePath> </parent> diff --git a/run_helm_test.sh b/run_helm_test.sh index 7324e7d118cdd0dd4d8815201c07089ea5122d12..5c2ac8a359d9b3be43e39c05eddf49e36d5f2a2d 100755 --- a/run_helm_test.sh +++ b/run_helm_test.sh @@ -2,6 +2,6 @@ set -e -helm template ./src/main/helm/ -f src/test/unit-values.yaml -helm lint -f src/test/unit-values.yaml ./src/main/helm/ +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 --helm3 -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' . \ No newline at end of file diff --git a/semantik-adapter/pom.xml b/semantik-adapter/pom.xml index c6f87a717ed4beaa09a51cee063383fc2425c6fc..53f0873d74e443f7218dc94895a2ca7a135461a8 100644 --- a/semantik-adapter/pom.xml +++ b/semantik-adapter/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> </parent> <artifactId>semantik-adapter</artifactId> diff --git a/src/main/helm/README.md b/src/main/helm/README.md index a5f2ffa71abef0d610826b5f699d01e93a530d58..343f5028d591329a068cf876ba38de3dd9b642a5 100644 --- a/src/main/helm/README.md +++ b/src/main/helm/README.md @@ -1,35 +1,93 @@ -# Helm - -## Linter - -`helm lint -f test-values.yaml` - -## Unit-Tests - -Für Unit-Tests wird das helm [helm-unittest](https://github.com/quintush/helm-unittest) plugin benötigt. Die Unit-Tests liegen im Verzeichnis src/test/helm - -`helm unittest -f '../../test/helm/*.yaml' .` - -## SyntaxCheck - -`helm template --debug -f test-values.yaml .` - -## Package - -`helm package --version=[version] .` - -## Versionierung - -Jenkins verwendet die Version aus der pom.xml - -### Master Branch - -Im master Branch werden die ersten 7 Zeichen vom git commit hash an die Version gehangen. - -### Release Branch - -Ist nur die Version aus der pom.xml - -### Feature Branch - -In einem feature Branch wird der Branchname an die Version gehangen. \ No newline at end of file +# Intelliform Adapter + +Adapter zum empfangen von Formulardaten von einem IntellForm basierten Formularserver, zum Beispiel iAFM (integriertes Antrags- und Formularmanagement). + +## Routingkonfiguration + +### Vorgang-Manager Instanzen + +Für alle Vorgang-Manager-Instanzen, die von dem Adapter erreichbar sein sollen, muss in das _Environment_ ein Eintrag mit dem GRPC-Service ergänzt werden: + +```yaml +grpc.client.vorgang-manager-*vorgang-manager-name*.address:*url und port* +grpc.client.vorgang-manager-*vorgang-manager-name*.negotiationType: PLAINTEXT +``` + +### Fallback Strategy + +Die Fallback Stratey steuert wie mit Eingängen umgegangen werden soll, für die keine passende Vorgang-Manager-Instanze gefunden werden konnte. + +Folgende Optionen stehen zur Verfügung: + +- **DENY** der Antrag wird mit einer Fehlermeldung abgelehnt. Dies funktioniert nur, solange die Abarbeitung synchron erfolgt. + +- **FUNDSTELLE** der Antrag wird an eine zentrale Fundstelle weitergeleitet. Dafür muss der Name der Vorgang-Manager-Instanze, die als Fundstelle fungiert, eingetragen werden. + +### Routing Strategy + +Die Routing Strategy steuert wie das Routing konfiguriert wird und wieviele Vorgang-Manager-Instanzen berücksichtigt werden können. + +Folgende Optionen stehen zur Verfügung: + +- **MULTI** es kann an beliebig viele Vorgang-Manager-Instanzen geroutet werden. Dafür muss in der Environment ein Mapping der Organisationseinheit-Id auf den Namen einer Vorgang-Manager-Instanz konfiguriert werden. + +```yaml +ozgcloud.adapter.organisationseinheiten.*id*: *vorgang-manager-name* +``` + +- **SINGLE** es wird immer nur an eine Vorgang-Manager-Instanze geroutet, der Name der Instanz ist im Feld 'Vorgang-Manager Name' anzugeben. + +### Beispielkonfiguration + +```yaml +env: + springProfiles: "oc, dev" + grpc: + - name: grpc_client_vorgang-manager-test_address + value: "vorgang-manager.test:9090" + - name: grpc_client_vorgang-manager-test_negotiationType + value: PLAINTEXT + - name: ozgcloud.adapter.organisationseinheiten.1357913579 + value: test +image: + tag: snapshot-latest +imageCredentials: + email: webmaster@ozg-sh.de + password: + registry: docker.ozg-sh.de + username: ozgcloud +ingress: + host: kiel-afm.dev.by.ozg-cloud.de +replicaCount: 2 +resources: + limits: + cpu: 1 + memory: 1200Mi + requests: + cpu: 100m + memory: 250Mi +global: + cattle: + clusterId: c-8g78g + clusterName: ozg-dev + systemDefaultRegistry: "" + systemDefaultRegistry: "" +routing: + fallbackStrategy: FUNDSTELLE + fundstelleVorgangManagerName: kiel + routingStrategy: MULTI + targetVorgangManagerName: kiel +``` + +### Benutzung beliebiger environment Werte + +In jedem der Projekte kann man beliebige weitere environments setzen. Dazu muss man in der jeweiligen values.yaml unter env.customList ein name value Paar setzen: + +```yaml +env: + customList: + - name: Dinge + value: true + - name: ... + value: ... +``` diff --git a/src/main/helm/app-readme.md b/src/main/helm/app-readme.md deleted file mode 100644 index 343f5028d591329a068cf876ba38de3dd9b642a5..0000000000000000000000000000000000000000 --- a/src/main/helm/app-readme.md +++ /dev/null @@ -1,93 +0,0 @@ -# Intelliform Adapter - -Adapter zum empfangen von Formulardaten von einem IntellForm basierten Formularserver, zum Beispiel iAFM (integriertes Antrags- und Formularmanagement). - -## Routingkonfiguration - -### Vorgang-Manager Instanzen - -Für alle Vorgang-Manager-Instanzen, die von dem Adapter erreichbar sein sollen, muss in das _Environment_ ein Eintrag mit dem GRPC-Service ergänzt werden: - -```yaml -grpc.client.vorgang-manager-*vorgang-manager-name*.address:*url und port* -grpc.client.vorgang-manager-*vorgang-manager-name*.negotiationType: PLAINTEXT -``` - -### Fallback Strategy - -Die Fallback Stratey steuert wie mit Eingängen umgegangen werden soll, für die keine passende Vorgang-Manager-Instanze gefunden werden konnte. - -Folgende Optionen stehen zur Verfügung: - -- **DENY** der Antrag wird mit einer Fehlermeldung abgelehnt. Dies funktioniert nur, solange die Abarbeitung synchron erfolgt. - -- **FUNDSTELLE** der Antrag wird an eine zentrale Fundstelle weitergeleitet. Dafür muss der Name der Vorgang-Manager-Instanze, die als Fundstelle fungiert, eingetragen werden. - -### Routing Strategy - -Die Routing Strategy steuert wie das Routing konfiguriert wird und wieviele Vorgang-Manager-Instanzen berücksichtigt werden können. - -Folgende Optionen stehen zur Verfügung: - -- **MULTI** es kann an beliebig viele Vorgang-Manager-Instanzen geroutet werden. Dafür muss in der Environment ein Mapping der Organisationseinheit-Id auf den Namen einer Vorgang-Manager-Instanz konfiguriert werden. - -```yaml -ozgcloud.adapter.organisationseinheiten.*id*: *vorgang-manager-name* -``` - -- **SINGLE** es wird immer nur an eine Vorgang-Manager-Instanze geroutet, der Name der Instanz ist im Feld 'Vorgang-Manager Name' anzugeben. - -### Beispielkonfiguration - -```yaml -env: - springProfiles: "oc, dev" - grpc: - - name: grpc_client_vorgang-manager-test_address - value: "vorgang-manager.test:9090" - - name: grpc_client_vorgang-manager-test_negotiationType - value: PLAINTEXT - - name: ozgcloud.adapter.organisationseinheiten.1357913579 - value: test -image: - tag: snapshot-latest -imageCredentials: - email: webmaster@ozg-sh.de - password: - registry: docker.ozg-sh.de - username: ozgcloud -ingress: - host: kiel-afm.dev.by.ozg-cloud.de -replicaCount: 2 -resources: - limits: - cpu: 1 - memory: 1200Mi - requests: - cpu: 100m - memory: 250Mi -global: - cattle: - clusterId: c-8g78g - clusterName: ozg-dev - systemDefaultRegistry: "" - systemDefaultRegistry: "" -routing: - fallbackStrategy: FUNDSTELLE - fundstelleVorgangManagerName: kiel - routingStrategy: MULTI - targetVorgangManagerName: kiel -``` - -### Benutzung beliebiger environment Werte - -In jedem der Projekte kann man beliebige weitere environments setzen. Dazu muss man in der jeweiligen values.yaml unter env.customList ein name value Paar setzen: - -```yaml -env: - customList: - - name: Dinge - value: true - - name: ... - value: ... -``` diff --git a/src/main/helm/questions.yml b/src/main/helm/questions.yml deleted file mode 100644 index b8309442a20fed6e3e3db74661d36bc1204c3586..0000000000000000000000000000000000000000 --- a/src/main/helm/questions.yml +++ /dev/null @@ -1,106 +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. -# - -questions: - # --- Container --- - - variable: image.name - type: enum - default: intelliform-adapter - label: The deployed Image - group: Container - required: true - options: - - intelliform-adapter - - formsolutions-adapter - - variable: image.tag - default: latest - type: string - label: The deployed version tag - group: "Container" - - variable: replicaCount - group: "Container" - type: string - default: "2" - label: "Deployment Replica count" - - variable: env.overrideSpringProfiles - group: "Container" - type: string - label: "Override Spring boot profile" - - variable: ozgcloud.bezeichner - group: "OZGCLOUD" - label: "Bezeichner" - type: string - required: true - - variable: ozgcloud.environment - group: "OZGCLOUD" - label: "Environment" - type: string - required: true - - - variable: ingress.enabled - type: boolean - label: Enable ingress - default: true - group: "Ingress" - show_subquestion_if: true - subquestions: - - variable: ingress.overrideHost - type: string - label: Override generated deposit Webservice URL - group: "Ingress" - - - variable: routing.fallbackStrategy - label: Fallback Strategy - group: Routing - type: enum - default: DENY - required: true - options: - - FUNDSTELLE - - DENY - show_subquestion_if: FUNDSTELLE - subquestions: - - variable: routing.fundstelleVorgangManagerName - type: string - label: Fundstelle - required: true - - variable: routing.routingStrategy - label: Routing Strategy - type: enum - default: SINGLE - required: true - group: Routing - options: - - MULTI - - SINGLE - show_subquestion_if: SINGLE - subquestions: - - variable: routing.targetVorgangManagerName - type: string - label: Vorgang-Manager Name - required: true - - variable: routing.targetNamespace - type: string - label: Namespace - required: true diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index c7dfcd79523309e42ab91563882a39f65e4ecb60..10c105666dc6ec19ce0a16e4334b2ff3ed1aa435 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -80,4 +80,8 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- else }} {{- printf "%s-afm.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }} {{- end }} +{{- end -}} + +{{- define "app.serviceAccountName" -}} +{{ printf "%s" ( (.Values.serviceAccount).name | default "eingang-manager-service-account" ) }} {{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index cefff9be956d634f21a76a00f01b9269f24f8d21..b6850b78412c4d2e1327f89f840cafca8b517b9d 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -47,6 +47,9 @@ spec: {{- include "app.defaultLabels" . | indent 8 }} component: afm-adapter spec: + {{- if (.Values.serviceAccount).create }} + serviceAccountName: {{ include "app.serviceAccountName" . }} + {{- end }} topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname @@ -118,7 +121,13 @@ spec: allowPrivilegeEscalation: false privileged: false readOnlyRootFilesystem: false - runAsNonRoot: false + runAsNonRoot: true + {{- with (.Values.securityContext).runAsUser }} + runAsUser: {{ . }} + {{- end }} + {{- with (.Values.securityContext).runAsGroup }} + runAsGroup: {{ . }} + {{- end }} stdin: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File @@ -126,8 +135,16 @@ spec: dnsConfig: {} dnsPolicy: ClusterFirst imagePullSecrets: + {{- if .Values.imagePullSecret }} + - name: {{ .Values.imagePullSecret }} + {{ else }} - name: {{ include "app.name" . }}-image-pull-secret + {{- end }} restartPolicy: Always + {{- with .Values.hostAliases }} + hostAliases: +{{ toYaml . | indent 8 }} + {{- end }} schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 \ No newline at end of file diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image-pull-secret.yaml index 17d65b7b75e0ebe440ece0451e78269e94596901..9ac29e90a738d57e16307c8335a60c032134f1c8 100644 --- a/src/main/helm/templates/image-pull-secret.yaml +++ b/src/main/helm/templates/image-pull-secret.yaml @@ -22,6 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # +{{- if not (.Values.imagePullSecret) }} apiVersion: v1 kind: Secret metadata: @@ -29,4 +30,5 @@ metadata: namespace: {{ include "app.namespace" . }} type: kubernetes.io/dockerconfigjson data: - .dockerconfigjson: {{ include "app.imagePullSecret" . }} \ No newline at end of file + .dockerconfigjson: {{ include "app.imagePullSecret" . }} +{{- end }} \ No newline at end of file diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index e539e8e0d02d3fed66e97fded23f800b937bdc02..fe85cf3ea82a073c99575ed87a7e56bad6910bf8 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -27,7 +27,11 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: - {{- if (.Values.ingress).use_staging_cert }} + {{- if (.Values.ingress).certManagerAnnotations -}} + {{- range (.Values.ingress).certManagerAnnotations }} +{{ . | indent 4 }} + {{- end }} + {{- else if (.Values.ingress).use_staging_cert }} cert-manager.io/cluster-issuer: letsencrypt-staging {{- else }} cert-manager.io/cluster-issuer: letsencrypt-prod @@ -53,7 +57,9 @@ spec: tls: - hosts: - {{ include "app.ingress.host" . }} - {{- if ne (.Values).cluster_env "dataport" }} + {{- if (.Values.ingress).tlsSecretName }} + secretName: {{ (.Values.ingress).tlsSecretName }} + {{- else if ne (.Values).cluster_env "dataport" }} secretName: {{ .Values.ozgcloud.bezeichner }}-{{ include "app.name" . }}-tls {{- end }} {{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml index 18cf7b2ccffa80585d82fa23789554ff862f3600..c243a2b78267cbcbca542afa462cf40a2422f85d 100644 --- a/src/main/helm/templates/network_policy.yaml +++ b/src/main/helm/templates/network_policy.yaml @@ -49,10 +49,7 @@ spec: - to: - namespaceSelector: matchLabels: - kubernetes.io/metadata.name: kube-system - podSelector: - matchLabels: - k8s-app: kube-dns + kubernetes.io/metadata.name: {{ required "networkPolicy.dnsServerNamespace must be set" (.Values.networkPolicy).dnsServerNamespace }} ports: - port: 53 protocol: UDP diff --git a/src/main/helm/templates/service_account.yaml b/src/main/helm/templates/service_account.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0e13e6bcabf1933117c29487473453b63265922a --- /dev/null +++ b/src/main/helm/templates/service_account.yaml @@ -0,0 +1,31 @@ +# +# 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 (.Values.serviceAccount).create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "app.serviceAccountName" . }} + namespace: {{ include "app.namespace" . }} +{{- end }} \ No newline at end of file diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index 4a2bd83c1c4eb04af79fbd4b6458eb4dc52a1c9c..240501d36a5cc48d18ae5bc3a324b985f47ca550 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -44,12 +44,6 @@ image: # cpu: 100m # [default: 100m] # memory: 250Mi # [default: 250Mi] -imageCredentials: - registry: docker.ozg-sh.de - username: ozgcloud - password: - email: webmaster@ozg-sh.de - ingress: enabled: true # overrideHost: kiel-afm.dev.by.ozg-cloud.de diff --git a/src/main/helm/test-values.yaml b/src/test/helm-linter-values.yaml similarity index 92% rename from src/main/helm/test-values.yaml rename to src/test/helm-linter-values.yaml index e72f46c87bf4c6b6ce3cf960e19effcd09fd53b8..dc7bf7d67561d23925b5ebd3cbac9a491af1ffc8 100644 --- a/src/main/helm/test-values.yaml +++ b/src/test/helm-linter-values.yaml @@ -25,4 +25,7 @@ ozgcloud: environment: test bezeichner: helm - bundesland: sh \ No newline at end of file + bundesland: sh + +networkPolicy: + dnsServerNamespace: test-dns-server-namespace \ No newline at end of file diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..18a7450337149faf441b8fd520fc4883388f1f6e --- /dev/null +++ b/src/test/helm/deployment_container_security_context_test.yaml @@ -0,0 +1,65 @@ +# +# 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 +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +tests: + - it: check default values + asserts: + - isKind: + of: Deployment + - equal: + path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.privileged + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem + value: false + - equal: + path: spec.template.spec.containers[0].securityContext.runAsNonRoot + value: true + - isNull: + path: spec.template.spec.containers[0].securityContext.runAsUser + - isNull: + path: spec.template.spec.containers[0].securityContext.runAsGroup + - it: check runAsUser + set: + securityContext.runAsUser: 1000 + asserts: + - equal: + path: spec.template.spec.containers[0].securityContext.runAsUser + value: 1000 + - it: check runAsGroup + set: + securityContext.runAsGroup: 1000 + asserts: + - equal: + path: spec.template.spec.containers[0].securityContext.runAsGroup + value: 1000 \ No newline at end of file diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..689bf6fd2d5d9eabbb92a6f521397c665bde2f08 --- /dev/null +++ b/src/test/helm/deployment_host_aliases_test.yaml @@ -0,0 +1,50 @@ +# +# 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: deployment host aliases +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +tests: + - it: should not set hostAliases + asserts: + - isNull: + path: spec.template.spec.hostAliases + - it: should set hostAliases + set: + hostAliases: + - ip: "127.0.0.1" + hostname: + - "eins" + - "zwei" + asserts: + - contains: + path: spec.template.spec.hostAliases + content: + ip: "127.0.0.1" + hostname: + - "eins" + - "zwei" diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2c72debd4fe921192fd925b909f7e6b85c649685 --- /dev/null +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -0,0 +1,47 @@ +# +# 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 +release: + name: afm-adapter + namespace: sh-helm-test +templates: + - templates/deployment.yaml +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 diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c3108cff4b6adf30955e3db6b8cf577bbba096cd --- /dev/null +++ b/src/test/helm/deployment_service_account_test.yaml @@ -0,0 +1,52 @@ +# +# 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: deployment service account +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +tests: + - it: should use service account with default name + set: + serviceAccount: + create: true + asserts: + - equal: + path: spec.template.spec.serviceAccountName + value: eingang-manager-service-account + - it: should use service account with name + set: + serviceAccount: + create: true + name: helm-service-account + asserts: + - equal: + path: spec.template.spec.serviceAccountName + value: helm-service-account + - it: should use default service account + asserts: + - isNull: + path: spec.template.spec.serviceAccountName \ No newline at end of file diff --git a/src/test/helm/image-pull-secret-test.yaml b/src/test/helm/image-pull-secret-test.yaml index 423d6268f8fea790bd466277a96f93c9594600a7..c95545170d0e4dd01fce0aab3a1c8953e3e20b5f 100644 --- a/src/test/helm/image-pull-secret-test.yaml +++ b/src/test/helm/image-pull-secret-test.yaml @@ -30,6 +30,12 @@ release: 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 @@ -40,3 +46,12 @@ tests: - 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/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml index 96c857eb6260c8ed088cf1a5fb1d70f8fa39c318..15c3a1ad88d74d6f694f27a7698a81237f91fa1c 100644 --- a/src/test/helm/network_policy_test.yaml +++ b/src/test/helm/network_policy_test.yaml @@ -30,14 +30,23 @@ templates: - templates/network_policy.yaml tests: - it: should match apiVersion + set: + networkPolicy: + dnsServerNamespace: test-dns-namespace asserts: - isAPIVersion: of: networking.k8s.io/v1 - it: should match kind + set: + networkPolicy: + dnsServerNamespace: test-dns-namespace asserts: - isKind: of: NetworkPolicy - it: validate metadata + set: + networkPolicy: + dnsServerNamespace: test-dns-namespace asserts: - equal: path: metadata @@ -45,6 +54,9 @@ tests: name: network-policy-afm-adapter namespace: by-helm-test - it: validate spec + set: + networkPolicy: + dnsServerNamespace: test-dns-namespace asserts: - equal: path: spec @@ -69,10 +81,7 @@ tests: - to: - namespaceSelector: matchLabels: - kubernetes.io/metadata.name: kube-system - podSelector: - matchLabels: - k8s-app: kube-dns + kubernetes.io/metadata.name: test-dns-namespace ports: - port: 53 protocol: UDP @@ -83,6 +92,7 @@ tests: set: networkPolicy: disabled: true + dnsServerNamespace: test-dns-namespace asserts: - hasDocuments: count: 0 @@ -91,6 +101,7 @@ tests: set: networkPolicy: disabled: false + dnsServerNamespace: test-dns-namespace asserts: - hasDocuments: count: 1 \ No newline at end of file diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4f8f2fe84b5b1e57dbbfb5844673bac980630f93 --- /dev/null +++ b/src/test/helm/service_account_test.yaml @@ -0,0 +1,62 @@ +# +# 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 service account +release: + name: eingang-manager + namespace: sh-helm-test +templates: + - templates/service_account.yaml +tests: + - it: should create service account with default name + set: + serviceAccount: + create: true + asserts: + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: eingang-manager-service-account + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should create service account with name + set: + serviceAccount: + create: true + name: helm-service-account + asserts: + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: helm-service-account + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should not create service account + asserts: + - hasDocuments: + count: 0 \ No newline at end of file diff --git a/src/test/unit-values.yaml b/src/test/unit-values.yaml index fcf2eaf1056c00bb9462330e2229f294201302cf..4c10588096434157f0e0ce39098dfcb134dec497 100644 --- a/src/test/unit-values.yaml +++ b/src/test/unit-values.yaml @@ -36,9 +36,3 @@ image: repo: docker.ozg-sh.de name: intelliform-adapter tag: latest - -imageCredentials: - registry: docker.ozg-sh.de - username: ozgcloud - password: - email: webmaster@ozg-sh.de \ No newline at end of file diff --git a/xta-adapter/pom.xml b/xta-adapter/pom.xml index 60bf2129fd8cf9804da55c30005efd2e384a9929..dec34827ee1f71d4e3d631db6d96bdacfdd23fcc 100644 --- a/xta-adapter/pom.xml +++ b/xta-adapter/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.0.0-SNAPSHOT</version> + <version>2.1.0-SNAPSHOT</version> </parent> <artifactId>xta-adapter</artifactId> <name>Eingangs Adapter - XTA</name> diff --git a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml b/xta-adapter/src/main/helm/templates/image-pull-secret.yaml index 17d65b7b75e0ebe440ece0451e78269e94596901..9ac29e90a738d57e16307c8335a60c032134f1c8 100644 --- a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml +++ b/xta-adapter/src/main/helm/templates/image-pull-secret.yaml @@ -22,6 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # +{{- if not (.Values.imagePullSecret) }} apiVersion: v1 kind: Secret metadata: @@ -29,4 +30,5 @@ metadata: namespace: {{ include "app.namespace" . }} type: kubernetes.io/dockerconfigjson data: - .dockerconfigjson: {{ include "app.imagePullSecret" . }} \ No newline at end of file + .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 61cac8717883a47d52e3992b23de6beb98a18782..c3bca9d7feb890b449f04fe8ff8d974d6d287b8b 100644 --- a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml +++ b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml @@ -99,7 +99,13 @@ spec: allowPrivilegeEscalation: false privileged: false readOnlyRootFilesystem: false - runAsNonRoot: false + runAsNonRoot: true + {{- with (.Values.securityContext).runAsUser }} + runAsUser: {{ . }} + {{- end }} + {{- with (.Values.securityContext).runAsGroup }} + runAsGroup: {{ . }} + {{- end }} resources: {{- with .Values.resources }} {{ toYaml . | indent 16 }} @@ -146,4 +152,8 @@ spec: secret: secretName: xta-keystore imagePullSecrets: - - name: {{ include "app.name" . }}-image-pull-secret \ No newline at end of file + {{- if .Values.imagePullSecret }} + - name: {{ .Values.imagePullSecret }} + {{ else }} + - name: {{ include "app.name" . }}-image-pull-secret + {{- end }} \ No newline at end of file diff --git a/xta-adapter/src/main/helm/values.yaml b/xta-adapter/src/main/helm/values.yaml index 2b3d383c69e987fbfe7c73bb0eded6b2bd109405..b7fd23ad6dcbad154f52411df043403824f33d86 100644 --- a/xta-adapter/src/main/helm/values.yaml +++ b/xta-adapter/src/main/helm/values.yaml @@ -30,12 +30,6 @@ image: # env: # overrideSpringProfiles: "oc,prod" -imageCredentials: - registry: docker.ozg-sh.de - username: ozgcloud - password: - email: webmaster@ozg-sh.de - routing: targetVorgangManagerName: vorgang-manager fallbackStrategy: DENY diff --git a/xta-adapter/src/test/helm/image_pull_secret_test.yaml b/xta-adapter/src/test/helm/image_pull_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..80bffcc068842596343a15aeaa1eff0d52930584 --- /dev/null +++ b/xta-adapter/src/test/helm/image_pull_secret_test.yaml @@ -0,0 +1,59 @@ +# +# 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_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml index 677ce10dc7fb886a0d2484cba11e0517ef8d1639..4667b03c48c34279b76865a0913a69758f745bbf 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 @@ -99,8 +99,25 @@ tests: value: false - equal: path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsNonRoot - value: false - + value: true + - isNull: + path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsUser + - isNull: + path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsGroup + - it: check runAsUser + set: + securityContext.runAsUser: 1000 + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsUser + value: 1000 + - it: check runAsGroup + set: + securityContext.runAsGroup: 1000 + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsGroup + value: 1000 - it: check pod labels template: xta_adapter_cronjob.yaml asserts: 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 new file mode 100644 index 0000000000000000000000000000000000000000..d74e945ac83c43e56c43f2065615719c412c9432 --- /dev/null +++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml @@ -0,0 +1,43 @@ +# +# 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 xta adapter imagePull secret +release: + name: xta-adapter + namespace: sh-helm-test +templates: + - templates/xta_adapter_cronjob.yaml +tests: + - it: should use default imagePull secret + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.imagePullSecrets[0].name + value: xta-adapter-image-pull-secret + - it: should set the imagePull secret + set: + imagePullSecret: image-pull-secret + asserts: + - equal: + path: spec.jobTemplate.spec.template.spec.imagePullSecrets[0].name + value: image-pull-secret \ No newline at end of file