Skip to content
Snippets Groups Projects
Commit fe9129a8 authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7906 clean up helm templates add missing tests a

parent 29d458b2
No related branches found
No related tags found
1 merge request!15Ozg 7906 aggregation manager server
Showing
with 469 additions and 45 deletions
......@@ -26,7 +26,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: aggregation-manager-bindings-type
name: aggregation-manager-job-bindings-type
namespace: {{ include "app.namespace" . }}
data:
type: |
......
......@@ -153,7 +153,7 @@ spec:
{{- if ((.Values.database).tls).enabled }}
- name: bindings
configMap:
name: aggregation-manager-bindings-type
name: aggregation-manager-job-bindings-type
- name: mongodb-root-ca
secret:
secretName: {{ ((.Values.database).tls).secretName }}
......
......@@ -45,7 +45,7 @@ tests:
of: v1
- equal:
path: metadata.name
value: aggregation-manager-bindings-type
value: aggregation-manager-job-bindings-type
- equal:
path: metadata.namespace
value: sh-helm-test
......
......@@ -80,7 +80,7 @@ tests:
value: "bindings"
- equal:
path: spec.jobTemplate.spec.template.spec.volumes[0].configMap.name
value: "aggregation-manager-bindings-type"
value: "aggregation-manager-job-bindings-type"
- equal:
path: spec.jobTemplate.spec.template.spec.volumes[1].name
value: "mongodb-root-ca"
......
......@@ -78,14 +78,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
{{- required "Environment muss angegeben sein" (.Values.ozgcloud).environment -}}
{{- end -}}
{{- define "app.grpcClientVorgangManagerAddress" -}}
{{- if (.Values.env).grpcClientVorgangManagerAddress -}}
{{ printf "%s" (.Values.env).grpcClientVorgangManagerAddress }}
{{- else -}}
{{ printf "dns:///%s.%s:9090" ( coalesce .Values.vorgangManagerName "vorgang-manager" ) (include "app.namespace" . ) }}
{{- end -}}
{{- end -}}
{{- define "app.getCustomList" -}}
{{- with (.Values.env).customList -}}
{{- if kindIs "map" . -}}
......
......@@ -22,11 +22,13 @@
# unter der Lizenz sind dem Lizenztext zu entnehmen.
#
{{- if ((.Values.database).tls).enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: bindings-type
name: aggregation-manager-server-bindings-type
namespace: {{ include "app.namespace" . }}
data:
type: |
ca-certificates
{{- end }}
\ No newline at end of file
......@@ -54,6 +54,9 @@ spec:
labelSelector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
{{- if (.Values.serviceAccount).create }}
serviceAccountName: {{ .Values.serviceAccount.name }}
{{- end }}
containers:
- name: aggregation-manager-server
image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}"
......@@ -63,6 +66,11 @@ spec:
value: "/bindings"
- name: spring_profiles_active
value: {{ include "app.envSpringProfiles" . }}
- name: ozgcloud_administration_address
value: {{ include "app.getOzgcloudAdministrationAddress" . }}
{{- with include "app.getCustomList" . }}
{{ . | indent 8 }}
{{- end }}
ports:
- containerPort: 8081
name: metrics
......@@ -100,16 +108,30 @@ spec:
terminationMessagePolicy: File
tty: true
volumeMounts:
{{- if ((.Values.database).tls).enabled }}
- name: bindings
mountPath: "/bindings/ca-certificates/type"
subPath: type
readOnly: true
- name: mongodb-root-ca
mountPath: "/bindings/ca-certificates/mongodb-root-ca.pem"
subPath: ca.crt
readOnly: true
{{- end }}
volumes:
{{- if ((.Values.database).tls).enabled }}
- name: bindings
configMap:
name: bindings-type
name: aggregation-manager-server-bindings-type
- name: mongodb-root-ca
secret:
secretName: {{ ((.Values.database).tls).secretName }}
optional: true
{{- end }}
dnsConfig: { }
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }}
restartPolicy: Always
schedulerName: default-scheduler
securityContext: { }
......
......@@ -42,6 +42,6 @@ serviceAccount:
create: true
name: aggregation-manager-server-service-account
imagePullSecret: ""
replicaCount: 1
administrationName: administration
......@@ -27,3 +27,5 @@ ozgcloud:
networkPolicy:
dnsServerNamespace: dummy-dns
imagePullSecret: image-pull-secret
#
# Copyright (C) 2025 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: configmap_bindings_type
release:
name: aggregation-manager-server
namespace: sh-helm-test
templates:
- templates/configmap_bindings_type.yaml
tests:
- it: configMap should not exists
asserts:
- hasDocuments:
count: 0
- it: should have configmap if database tls is enabled
set:
database:
tls:
enabled: true
asserts:
- isKind:
of: ConfigMap
- isAPIVersion:
of: v1
- equal:
path: metadata.name
value: aggregation-manager-server-bindings-type
- equal:
path: metadata.namespace
value: sh-helm-test
- equal:
path: data.type
value: "ca-certificates"
#
# Copyright (C) 2025 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 container environments
templates:
- templates/deployment.yaml
release:
namespace: sh-helm-test
set:
imagePullSecret: image-pull-secret
tests:
- it: should have ozgcloud_administration_address
set:
ozgcloud:
environment: dev
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: ozgcloud_administration_address
value: http://administration.sh-helm-test:8080
- it: should set ozgcloud_administration_address
set:
administrationAddress: http://test-administration:8080
ozgcloud:
environment: dev
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: ozgcloud_administration_address
value: http://test-administration:8080
- it: should fail template when env not set
set:
asserts:
- failedTemplate:
errormessage: Environment muss angegeben sein
#
# Copyright (C) 2025 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 environments customList
templates:
- templates/deployment.yaml
set:
ozgcloud.environment: test
imagePullSecret: image-pull-secret
tests:
- it: check customList as list
set:
env.customList:
- name: my_test_environment_name
value: "A test value"
- name: test_environment
value: "B test value"
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: my_test_environment_name
value: "A test value"
- contains:
path: spec.template.spec.containers[0].env
content:
name: test_environment
value: "B test value"
- it: check customList as dict
set:
env.customList:
my_test_environment_name: "A test value"
test_environment: "B test value"
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: my_test_environment_name
value: "A test value"
- contains:
path: spec.template.spec.containers[0].env
content:
name: test_environment
value: "B test value"
- it: check customList test value is not set by default
asserts:
- notContains:
path: spec.template.spec.containers[0].env
content:
name: my_test_environment_name
value: "A test value"
#
# Copyright (C) 2025 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 imagepullsecret
release:
name: eingang-adapter
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud.environment: test
tests:
- it: should set the imagePull secret
set:
imagePullSecret: image-pull-secret
asserts:
- equal:
path: spec.template.spec.imagePullSecrets[0].name
value: image-pull-secret
- it: should fail tempalte when not set
asserts:
- failedTemplate:
errorMessage: imagePullSecret must be set
#
# Copyright (C) 2025 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: aggregation-manager-server
namespace: by-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: dev
imagePullSecret: image-pull-secret
tests:
- it: should use aggregation-manager-server service account
asserts:
- equal:
path: spec.template.spec.serviceAccountName
value: aggregation-manager-server-service-account
- it: should set service account name
set:
serviceAccount:
name: helm-service-account
asserts:
- equal:
path: spec.template.spec.serviceAccountName
value: helm-service-account
- it: should use default service account
set:
serviceAccount:
create: false
asserts:
- isNull:
path: spec.template.spec.serviceAccountName
#
# Copyright (C) 2025 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 springProfile tests
release:
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: dev
imagePullSecret: image-pull-secret
tests:
- it: should override the spring profiles
set:
env.overrideSpringProfiles: oc,dev,ea
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: spring_profiles_active
value: oc,dev,ea
- it: should generate the spring profiles
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: spring_profiles_active
value: oc, dev
......@@ -233,28 +233,6 @@ tests:
- equal:
path: spec.template.spec.containers[0].securityContext.runAsNonRoot
value: false
- it: validate container volume mounts
asserts:
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].name
value: bindings
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].mountPath
value: "/bindings/ca-certificates/type"
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].subPath
value: type
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].readOnly
value: true
- it: validate volumes
asserts:
- equal:
path: spec.template.spec.volumes[0].name
value: bindings
- equal:
path: spec.template.spec.volumes[0].configMap.name
value: bindings-type
- it: validate container root config
asserts:
- equal:
......
#
# Copyright (C) 2025 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 volumes tests
release:
name: aggregation-manager-server
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: "default"
imagePullSecret: image-pull-secret
tests:
- it: should not have volumeMounts
asserts:
- isEmpty:
path: spec.template.spec.containers[0].volumeMounts
- it: should not have volumes
asserts:
- isEmpty:
path: spec.template.spec.volumes
- it: should have volumeMounts if database tls is enabled
set:
database:
tls:
enabled: true
asserts:
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].name
value: "bindings"
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].mountPath
value: "/bindings/ca-certificates/type"
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].subPath
value: "type"
- equal:
path: spec.template.spec.containers[0].volumeMounts[0].readOnly
value: true
- equal:
path: spec.template.spec.containers[0].volumeMounts[1].name
value: "mongodb-root-ca"
- equal:
path: spec.template.spec.containers[0].volumeMounts[1].mountPath
value: "/bindings/ca-certificates/mongodb-root-ca.pem"
- equal:
path: spec.template.spec.containers[0].volumeMounts[1].subPath
value: "ca.crt"
- equal:
path: spec.template.spec.containers[0].volumeMounts[1].readOnly
value: true
- it: should have volumes on it's spec if database tls is enabled
set:
database:
tls:
enabled: true
asserts:
- equal:
path: spec.template.spec.volumes[0].name
value: "bindings"
- equal:
path: spec.template.spec.volumes[0].configMap.name
value: "aggregation-manager-server-bindings-type"
- equal:
path: spec.template.spec.volumes[1].name
value: "mongodb-root-ca"
- equal:
path: spec.template.spec.volumes[1].secret.secretName
value: "ozg-mongodb-tls-cert"
- equal:
path: spec.template.spec.volumes[1].secret.optional
value: true
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment