Skip to content
Snippets Groups Projects
Commit ba299f07 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3328 cleanup helm unittests and add tests to cover each line

parent 4294e78f
Branches
Tags
No related merge requests found
Showing
with 252 additions and 100 deletions
#
# 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 not (.Values.imagePullSecret) }}
apiVersion: v1
kind: Secret
metadata:
name: vorgang-manager-image-pull-secret
namespace: {{ include "app.namespace" . }}
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: {{ include "app.imagePullSecret" . }}
{{- end }}
\ No newline at end of file
...@@ -33,6 +33,8 @@ tests: ...@@ -33,6 +33,8 @@ tests:
asserts: asserts:
- isKind: - isKind:
of: ConfigMap of: ConfigMap
- isAPIVersion:
of: v1
- equal: - equal:
path: metadata.name path: metadata.name
value: bindings-type value: bindings-type
......
#
# Copyright (C) 2024 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 actuator
release:
name: vorgang-manager
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: dev
tests:
- it: check readiness and startup probe
asserts:
- equal:
path: spec.template.spec.containers[0].readinessProbe
value:
failureThreshold: 3
httpGet:
path: /actuator/health/readiness
port: 8081
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 3
- equal:
path: spec.template.spec.containers[0].startupProbe
value:
failureThreshold: 10
httpGet:
path: /actuator/health/readiness
port: 8081
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
...@@ -44,8 +44,6 @@ set: ...@@ -44,8 +44,6 @@ set:
gemeindeSchluessel: "gemeindeSchluessel" gemeindeSchluessel: "gemeindeSchluessel"
tests: tests:
- it: should enable bayernid - it: should enable bayernid
templates:
- templates/deployment.yaml
asserts: asserts:
- contains: - contains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
......
...@@ -33,7 +33,6 @@ set: ...@@ -33,7 +33,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: should have volumes - it: should have volumes
template: deployment.yaml
set: set:
usermanagerName: user-manager usermanagerName: user-manager
asserts: asserts:
...@@ -45,7 +44,6 @@ tests: ...@@ -45,7 +44,6 @@ tests:
subPath: ca.crt subPath: ca.crt
readOnly: true readOnly: true
- it: should have volume for user-manager-tls-certificate - it: should have volume for user-manager-tls-certificate
template: deployment.yaml
set: set:
usermanagerName: user-manager usermanagerName: user-manager
asserts: asserts:
......
#
# Copyright (C) 2024 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 basics
release:
name: vorgang-manager
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: dev
tests:
- it: should have correct values for container image, name, imagePullPolicy
asserts:
- equal:
path: spec.template.spec.containers[0].image
value: docker.ozg-sh.de/vorgang-manager:latest
- equal:
path: spec.template.spec.containers[0].name
value: vorgang-manager
- equal:
path: spec.template.spec.containers[0].imagePullPolicy
value: Always
- it: should have correct values for container ports
asserts:
- contains:
path: spec.template.spec.containers[0].ports
content:
containerPort: 9090
name: grpc-9090
protocol: TCP
- contains:
path: spec.template.spec.containers[0].ports
content:
containerPort: 8081
name: metrics
protocol: TCP
\ No newline at end of file
#
# Copyright (C) 2024 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 other values
release:
name: vorgang-manager
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: dev
tests:
- it: should have correct values for container terminationMessagePolicy, terminationMessagePath, stdin, tty
asserts:
- equal:
path: spec.template.spec.containers[0].terminationMessagePolicy
value: File
- equal:
path: spec.template.spec.containers[0].terminationMessagePath
value: /dev/termination-log
- equal:
path: spec.template.spec.containers[0].stdin
value: true
- equal:
path: spec.template.spec.containers[0].tty
value: true
\ No newline at end of file
...@@ -34,8 +34,6 @@ set: ...@@ -34,8 +34,6 @@ set:
tests: tests:
- it: check default values - it: check default values
asserts: asserts:
- isKind:
of: Deployment
- equal: - equal:
path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation
value: false value: false
......
...@@ -28,8 +28,6 @@ release: ...@@ -28,8 +28,6 @@ release:
namespace: sh-helm-test namespace: sh-helm-test
templates: templates:
- templates/deployment.yaml - templates/deployment.yaml
- templates/service.yaml
- templates/service_monitor.yaml
set: set:
ozgcloud: ozgcloud:
environment: dev environment: dev
...@@ -49,26 +47,10 @@ tests: ...@@ -49,26 +47,10 @@ tests:
path: metadata.labels["app.kubernetes.io/namespace"] path: metadata.labels["app.kubernetes.io/namespace"]
value: sh-helm-test value: sh-helm-test
- it: check component label for deployment - it: check component label for deployment
templates:
- templates/deployment.yaml
asserts: asserts:
- equal: - equal:
path: spec.template.metadata.labels["component"] path: spec.template.metadata.labels["component"]
value: vorgang-manager value: vorgang-manager
- it: check component label for service
templates:
- templates/service.yaml
asserts:
- equal:
path: metadata.labels["component"]
value: vorgang-manager-service
- it: check component label for service monitor
templates:
- templates/service_monitor.yaml
asserts:
- equal:
path: metadata.labels["component"]
value: vorgang-manager-service-monitor
- it: should have label for mongodb client - it: should have label for mongodb client
asserts: asserts:
......
#
# Copyright (C) 2024 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 topology spread constrains
release:
name: vorgang-manager
namespace: sh-helm-test
templates:
- templates/deployment.yaml
set:
ozgcloud:
environment: test
tests:
- it: check default values of spec.template.spec.topologySpreadConstraints
asserts:
- equal:
path: spec.template.spec.topologySpreadConstraints[0].maxSkew
value: 1
- equal:
path: spec.template.spec.topologySpreadConstraints[0].topologyKey
value: kubernetes.io/hostname
- equal:
path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable
value: ScheduleAnyway
- equal:
path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
value: vorgang-manager
\ No newline at end of file
...@@ -30,7 +30,6 @@ set: ...@@ -30,7 +30,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: check if elastic credentials are disabled by default - it: check if elastic credentials are disabled by default
template: deployment.yaml
asserts: asserts:
- notContains: - notContains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
...@@ -89,7 +88,6 @@ tests: ...@@ -89,7 +88,6 @@ tests:
- it: smoke test if elasticsearch is disabled when set to false - it: smoke test if elasticsearch is disabled when set to false
template: deployment.yaml
set: set:
ozgcloud.environment: test ozgcloud.environment: test
database.password: hase database.password: hase
...@@ -106,7 +104,6 @@ tests: ...@@ -106,7 +104,6 @@ tests:
optional: false optional: false
- it: check enabled elastic credentials - it: check enabled elastic credentials
template: deployment.yaml
set: set:
elasticsearch.enabled: true elasticsearch.enabled: true
asserts: asserts:
......
...@@ -30,7 +30,6 @@ set: ...@@ -30,7 +30,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: check customList - it: check customList
template: deployment.yaml
set: set:
env.customList: env.customList:
- name: my_test_environment_name - name: my_test_environment_name
...@@ -43,7 +42,6 @@ tests: ...@@ -43,7 +42,6 @@ tests:
value: "A test value" value: "A test value"
- it: check customList test value is not set by default - it: check customList test value is not set by default
template: deployment.yaml
asserts: asserts:
- notContains: - notContains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
...@@ -52,7 +50,6 @@ tests: ...@@ -52,7 +50,6 @@ tests:
value: "A test value" value: "A test value"
- it: should have processor configuration - it: should have processor configuration
template: deployment.yaml
set: set:
ozgcloud: ozgcloud:
environment: dev environment: dev
......
...@@ -33,8 +33,6 @@ set: ...@@ -33,8 +33,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: should set the grpc user-manager client address - it: should set the grpc user-manager client address
templates:
- templates/deployment.yaml
asserts: asserts:
- contains: - contains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
...@@ -42,8 +40,6 @@ tests: ...@@ -42,8 +40,6 @@ tests:
name: grpc_client_user-manager_address name: grpc_client_user-manager_address
value: user-manager.sh-helm-test:9000 value: user-manager.sh-helm-test:9000
- it: should contain default user-manager grpc negotiationType tls - it: should contain default user-manager grpc negotiationType tls
templates:
- templates/deployment.yaml
asserts: asserts:
- contains: - contains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
...@@ -51,8 +47,6 @@ tests: ...@@ -51,8 +47,6 @@ tests:
name: grpc_client_user-manager_negotiationType name: grpc_client_user-manager_negotiationType
value: TLS value: TLS
- it: should contain user-manager grpc negotiationType plaintext - it: should contain user-manager grpc negotiationType plaintext
templates:
- templates/deployment.yaml
set: set:
userManager.grpcClientNegotiationType: PLAINTEXT userManager.grpcClientNegotiationType: PLAINTEXT
asserts: asserts:
......
...@@ -34,8 +34,6 @@ set: ...@@ -34,8 +34,6 @@ set:
tests: tests:
- it: should use default imagePull secret - it: should use default imagePull secret
asserts: asserts:
- isKind:
of: Deployment
- equal: - equal:
path: spec.template.spec.imagePullSecrets[0].name path: spec.template.spec.imagePullSecrets[0].name
value: vorgang-manager-image-pull-secret value: vorgang-manager-image-pull-secret
...@@ -43,8 +41,6 @@ tests: ...@@ -43,8 +41,6 @@ tests:
set: set:
imagePullSecret: image-pull-secret imagePullSecret: image-pull-secret
asserts: asserts:
- isKind:
of: Deployment
- equal: - equal:
path: spec.template.spec.imagePullSecrets[0].name path: spec.template.spec.imagePullSecrets[0].name
value: image-pull-secret value: image-pull-secret
\ No newline at end of file
...@@ -33,13 +33,11 @@ set: ...@@ -33,13 +33,11 @@ set:
environment: dev environment: dev
tests: tests:
- it: livenessProbe should be disabled by default - it: livenessProbe should be disabled by default
template: deployment.yaml
asserts: asserts:
- notExists: - notExists:
path: spec.template.spec.containers[0].livenessProbe path: spec.template.spec.containers[0].livenessProbe
- it: enable livenessProbe - it: enable livenessProbe
template: deployment.yaml
set: set:
enableLivenessProbe: true enableLivenessProbe: true
asserts: asserts:
...@@ -54,3 +52,8 @@ tests: ...@@ -54,3 +52,8 @@ tests:
periodSeconds: 10 periodSeconds: 10
successThreshold: 1 successThreshold: 1
timeoutSeconds: 3 timeoutSeconds: 3
- it: not enable livenessProbe by default
asserts:
- isNull:
path: spec.template.spec.containers[0].livenessProbe
\ No newline at end of file
...@@ -30,7 +30,6 @@ set: ...@@ -30,7 +30,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: check mongodb default env - it: check mongodb default env
template: deployment.yaml
release: release:
name: vorgang-manager name: vorgang-manager
asserts: asserts:
...@@ -57,7 +56,6 @@ tests: ...@@ -57,7 +56,6 @@ tests:
optional: true optional: true
- it: check external mongodb - it: check external mongodb
template: deployment.yaml
release: release:
name: vorgang-manager name: vorgang-manager
set: set:
...@@ -81,7 +79,7 @@ tests: ...@@ -81,7 +79,7 @@ tests:
name: vorgang-manager-database-spring name: vorgang-manager-database-spring
- it: check mongodb set secretname - it: check mongodb set secretname
template: deployment.yaml
release: release:
name: vorgang-manager name: vorgang-manager
set: set:
...@@ -103,7 +101,6 @@ tests: ...@@ -103,7 +101,6 @@ tests:
value: vorgang-manager-database value: vorgang-manager-database
- it: check mongodb root ca mount - it: check mongodb root ca mount
template: deployment.yaml
release: release:
name: vorgang-manager name: vorgang-manager
asserts: asserts:
...@@ -123,7 +120,6 @@ tests: ...@@ -123,7 +120,6 @@ tests:
optional: true optional: true
- it: check mongodb tls set tls cert name - it: check mongodb tls set tls cert name
template: deployment.yaml
release: release:
name: vorgang-manager name: vorgang-manager
set: set:
......
...@@ -33,8 +33,6 @@ set: ...@@ -33,8 +33,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: check if nachrichten-manager address is correct - it: check if nachrichten-manager address is correct
templates:
- templates/deployment.yaml
asserts: asserts:
- contains: - contains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
......
# #
# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den # Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
# Ministerpräsidenten des Landes Schleswig-Holstein # Ministerpräsidenten des Landes Schleswig-Holstein
# Staatskanzlei # Staatskanzlei
# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung # Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
# unter der Lizenz sind dem Lizenztext zu entnehmen. # unter der Lizenz sind dem Lizenztext zu entnehmen.
# #
suite: test Vorgangfilter general values suite: test deployment container basics
release: release:
name: vorgang-manager name: vorgang-manager
namespace: sh-helm-test namespace: sh-helm-test
...@@ -32,11 +32,19 @@ set: ...@@ -32,11 +32,19 @@ set:
ozgcloud: ozgcloud:
environment: dev environment: dev
tests: tests:
- it: testIsDeployment - it: should have correct pod template values
template: deployment.yaml
asserts: asserts:
- isKind: - isEmpty:
of: Deployment path: spec.template.spec.dnsConfig
- equal: - equal:
path: spec.template.spec.containers[0].image path: spec.template.spec.dnsPolicy
value: docker.ozg-sh.de/vorgang-manager:latest value: "ClusterFirst"
- equal:
path: spec.template.spec.restartPolicy
value: "Always"
- equal:
path: spec.template.spec.schedulerName
value: "default-scheduler"
- equal:
path: spec.template.spec.terminationGracePeriodSeconds
value: 30
\ No newline at end of file
...@@ -30,7 +30,6 @@ set: ...@@ -30,7 +30,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: check rabbitmq spring env - it: check rabbitmq spring env
template: deployment.yaml
set: set:
rabbitmq.enabled: true rabbitmq.enabled: true
asserts: asserts:
...@@ -53,7 +52,6 @@ tests: ...@@ -53,7 +52,6 @@ tests:
key: password key: password
optional: false optional: false
- it: check rabbitmq spring env is not set by default - it: check rabbitmq spring env is not set by default
template: deployment.yaml
asserts: asserts:
- notContains: - notContains:
path: spec.template.spec.containers[0].env path: spec.template.spec.containers[0].env
...@@ -74,7 +72,6 @@ tests: ...@@ -74,7 +72,6 @@ tests:
key: password key: password
optional: false optional: false
- it: check rabbitmq spring env is not set - it: check rabbitmq spring env is not set
template: deployment.yaml
set: set:
rabbitmq.enabled: false rabbitmq.enabled: false
asserts: asserts:
......
...@@ -32,7 +32,6 @@ set: ...@@ -32,7 +32,6 @@ set:
environment: dev environment: dev
tests: tests:
- it: test resources - it: test resources
template: deployment.yaml
set: set:
resources: resources:
limits: limits:
...@@ -54,8 +53,7 @@ tests: ...@@ -54,8 +53,7 @@ tests:
- equal: - equal:
path: spec.template.spec.containers[0].resources.requests.memory path: spec.template.spec.containers[0].resources.requests.memory
value: 44Mi value: 44Mi
- it: no resources defined - it: no resources defined by default
template: deployment.yaml
asserts: asserts:
- isEmpty: - isEmpty:
path: spec.template.spec.containers[0].resources path: spec.template.spec.containers[0].resources
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment