diff --git a/src/main/helm/README.md b/src/main/helm/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c7e009cd83e68c95334a46619915723634859987 --- /dev/null +++ b/src/main/helm/README.md @@ -0,0 +1,35 @@ +# 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' -v '../../test/unit-values.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. diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml index f16f03e07fbc9565a3e2d94adb1b4c489ccbb544..6ae1c2e19604c96a8c2716d9e5c80fa3af98c223 100644 --- a/src/main/helm/templates/ingress.yaml +++ b/src/main/helm/templates/ingress.yaml @@ -29,7 +29,11 @@ metadata: annotations: {{- toYaml . | nindent 4 }} {{- end }} more_set_headers "Access-Control-Allow-Origin: {{ (include "app.goofyAddress" .) }}"; + {{- if (.Values.ingress).use_staging_cert }} + cert-manager.io/cluster-issuer: letsencrypt-staging + {{- else }} cert-manager.io/cluster-issuer: letsencrypt-prod + {{- end }} name: {{ include "app.name" . }} namespace: {{ include "app.namespace" . }} spec: diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress-nginx-tests.yaml index 6eb4b5c09b0c4ff8bb780921345f2d2cfc4cbb77..2e036450f470628c66ac00e9442709ed0521dde4 100644 --- a/src/test/helm/ingress-nginx-tests.yaml +++ b/src/test/helm/ingress-nginx-tests.yaml @@ -46,3 +46,22 @@ tests: path: spec.ingressClassName - isNull: path: spec.tls[0].secretName + - it: should use default letsencrypt-prod cluster-issuer + asserts: + - equal: + path: metadata.annotations.[cert-manager.io/cluster-issuer] + value: letsencrypt-prod + - it: should use letsencrypt-staging cluster-issuer + set: + ingress.use_staging_cert: true + asserts: + - equal: + path: metadata.annotations.[cert-manager.io/cluster-issuer] + value: letsencrypt-staging + - it: should use letsencrypt-prod cluster-issuer + set: + ingress.use_staging_cert: false + asserts: + - equal: + path: metadata.annotations.[cert-manager.io/cluster-issuer] + value: letsencrypt-prod \ No newline at end of file