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
No related branches found
No related tags found
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