diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image-pull-secret.yaml deleted file mode 100644 index 3fe7a2fb6f60d52c8cee42df906d7e20f025f226..0000000000000000000000000000000000000000 --- a/src/main/helm/templates/image-pull-secret.yaml +++ /dev/null @@ -1,34 +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. -# - -{{- 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 diff --git a/src/test/helm/configmap_bindings_type_test.yaml b/src/test/helm/configmap_bindings_type_test.yaml index 78236b32067b019da7497306962f0fd74d7d9307..e097f3b15d2c12e7043830c5ba2d794302f07da4 100644 --- a/src/test/helm/configmap_bindings_type_test.yaml +++ b/src/test/helm/configmap_bindings_type_test.yaml @@ -33,6 +33,8 @@ tests: asserts: - isKind: of: ConfigMap + - isAPIVersion: + of: v1 - equal: path: metadata.name value: bindings-type diff --git a/src/test/helm/deployment_actuator_test.yaml b/src/test/helm/deployment_actuator_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d652c101de03ed17edda9b908b527c0b664e56de --- /dev/null +++ b/src/test/helm/deployment_actuator_test.yaml @@ -0,0 +1,66 @@ +# +# 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 + + + + + diff --git a/src/test/helm/deployment_bayernid_test.yaml b/src/test/helm/deployment_bayernid_test.yaml index 4f662d913bc841f73abf47289ef5c1b7095858a5..6eb60f5189ebea7ce81fe950584daef922038437 100644 --- a/src/test/helm/deployment_bayernid_test.yaml +++ b/src/test/helm/deployment_bayernid_test.yaml @@ -44,8 +44,6 @@ set: gemeindeSchluessel: "gemeindeSchluessel" tests: - it: should enable bayernid - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml index fed0968f63f66c4471c76957858b2a5e27d312c5..25a322d80c5dd5f5231c9bb434b53b81306abdbd 100644 --- a/src/test/helm/deployment_bindings_test.yaml +++ b/src/test/helm/deployment_bindings_test.yaml @@ -33,7 +33,6 @@ set: environment: dev tests: - it: should have volumes - template: deployment.yaml set: usermanagerName: user-manager asserts: @@ -45,7 +44,6 @@ tests: subPath: ca.crt readOnly: true - it: should have volume for user-manager-tls-certificate - template: deployment.yaml set: usermanagerName: user-manager asserts: diff --git a/src/test/helm/deployment_container_basic_test.yaml b/src/test/helm/deployment_container_basic_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6c5862e44df74997549664ef9938c5850fb9f0bc --- /dev/null +++ b/src/test/helm/deployment_container_basic_test.yaml @@ -0,0 +1,60 @@ +# +# 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 diff --git a/src/test/helm/deployment_container_other_values_test.yaml b/src/test/helm/deployment_container_other_values_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b9e6a3db6a1a985bcb9af04aaae837db71d3abfc --- /dev/null +++ b/src/test/helm/deployment_container_other_values_test.yaml @@ -0,0 +1,49 @@ + + # +# 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 diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml index f3638e95aa39c33c1afd7ebf6860a68367a50ce7..f4f53af732abfff313731fffef7560d5318085de 100644 --- a/src/test/helm/deployment_container_security_context_test.yaml +++ b/src/test/helm/deployment_container_security_context_test.yaml @@ -34,8 +34,6 @@ set: tests: - it: check default values asserts: - - isKind: - of: Deployment - equal: path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation value: false diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index 08f277ac27db074e7936b0fc2c7af85efb749301..9d4698c012bdde71bc21a40966298019d674e641 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -28,8 +28,6 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml - - templates/service.yaml - - templates/service_monitor.yaml set: ozgcloud: environment: dev @@ -49,26 +47,10 @@ tests: path: metadata.labels["app.kubernetes.io/namespace"] value: sh-helm-test - it: check component label for deployment - templates: - - templates/deployment.yaml asserts: - equal: path: spec.template.metadata.labels["component"] 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 asserts: diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6ece2491a43a9bd8254a53600b006ef1183f64e1 --- /dev/null +++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml @@ -0,0 +1,49 @@ +# +# 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 diff --git a/src/test/helm/elasticsearch_deployment_test.yaml b/src/test/helm/deployment_elasticsearch_test.yaml similarity index 98% rename from src/test/helm/elasticsearch_deployment_test.yaml rename to src/test/helm/deployment_elasticsearch_test.yaml index 6dc0ed45bd0aa299b30ca0d45e06760396ff0248..3f803ae3ab6216b12d38ecb1a9fd3d2d5ec5075f 100644 --- a/src/test/helm/elasticsearch_deployment_test.yaml +++ b/src/test/helm/deployment_elasticsearch_test.yaml @@ -30,7 +30,6 @@ set: environment: dev tests: - it: check if elastic credentials are disabled by default - template: deployment.yaml asserts: - notContains: path: spec.template.spec.containers[0].env @@ -89,7 +88,6 @@ tests: - it: smoke test if elasticsearch is disabled when set to false - template: deployment.yaml set: ozgcloud.environment: test database.password: hase @@ -106,7 +104,6 @@ tests: optional: false - it: check enabled elastic credentials - template: deployment.yaml set: elasticsearch.enabled: true asserts: diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 7c48f92fc3d6707ea82ff187e16eccf852d4e9ef..b4b1d282cfcbe08d95e8ebdebb42389933f6abc0 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -30,7 +30,6 @@ set: environment: dev tests: - it: check customList - template: deployment.yaml set: env.customList: - name: my_test_environment_name @@ -43,7 +42,6 @@ tests: value: "A test value" - it: check customList test value is not set by default - template: deployment.yaml asserts: - notContains: path: spec.template.spec.containers[0].env @@ -52,7 +50,6 @@ tests: value: "A test value" - it: should have processor configuration - template: deployment.yaml set: ozgcloud: environment: dev diff --git a/src/test/helm/deployment_grpc_user_manager_address_test.yaml b/src/test/helm/deployment_grpc_user_manager_address_test.yaml index 016fca501d0c9a9a91b0634e9e0a15f42bb214c5..2f0d4d7ea6275d969b1fa354f77fca0147860d81 100644 --- a/src/test/helm/deployment_grpc_user_manager_address_test.yaml +++ b/src/test/helm/deployment_grpc_user_manager_address_test.yaml @@ -33,8 +33,6 @@ set: environment: dev tests: - it: should set the grpc user-manager client address - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env @@ -42,8 +40,6 @@ tests: name: grpc_client_user-manager_address value: user-manager.sh-helm-test:9000 - it: should contain default user-manager grpc negotiationType tls - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env @@ -51,8 +47,6 @@ tests: name: grpc_client_user-manager_negotiationType value: TLS - it: should contain user-manager grpc negotiationType plaintext - templates: - - templates/deployment.yaml set: userManager.grpcClientNegotiationType: PLAINTEXT asserts: diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml index 8d096eeba8850f1616715c79b58e2845ca64b465..25b5f86457c37bd336b33c4d0b831b1b4e157588 100644 --- a/src/test/helm/deployment_imagepull_secret_test.yaml +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -34,8 +34,6 @@ set: tests: - it: should use default imagePull secret asserts: - - isKind: - of: Deployment - equal: path: spec.template.spec.imagePullSecrets[0].name value: vorgang-manager-image-pull-secret @@ -43,8 +41,6 @@ tests: 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_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml index 82db783bcdb7deece5d0a346b2675305fce48582..cb20beb0db34ae36165958df4fabb0f0b2cdd289 100644 --- a/src/test/helm/deployment_liveness_probe_test.yaml +++ b/src/test/helm/deployment_liveness_probe_test.yaml @@ -33,13 +33,11 @@ set: environment: dev tests: - it: livenessProbe should be disabled by default - template: deployment.yaml asserts: - notExists: path: spec.template.spec.containers[0].livenessProbe - it: enable livenessProbe - template: deployment.yaml set: enableLivenessProbe: true asserts: @@ -54,3 +52,8 @@ tests: periodSeconds: 10 successThreshold: 1 timeoutSeconds: 3 + - it: not enable livenessProbe by default + asserts: + - isNull: + path: spec.template.spec.containers[0].livenessProbe + \ No newline at end of file diff --git a/src/test/helm/deployment_mongodb_test.yaml b/src/test/helm/deployment_mongodb_test.yaml index a36f2926e9496cd4b539ecf69a13494f549fb842..e34c5ddbf4568c16428a9d29bcc3919a27f4dc5c 100644 --- a/src/test/helm/deployment_mongodb_test.yaml +++ b/src/test/helm/deployment_mongodb_test.yaml @@ -30,7 +30,6 @@ set: environment: dev tests: - it: check mongodb default env - template: deployment.yaml release: name: vorgang-manager asserts: @@ -57,7 +56,6 @@ tests: optional: true - it: check external mongodb - template: deployment.yaml release: name: vorgang-manager set: @@ -81,7 +79,7 @@ tests: name: vorgang-manager-database-spring - it: check mongodb set secretname - template: deployment.yaml + release: name: vorgang-manager set: @@ -102,8 +100,7 @@ tests: name: spring_data_mongodb_database value: vorgang-manager-database - - it: check mongodb root ca mount - template: deployment.yaml + - it: check mongodb root ca mount release: name: vorgang-manager asserts: @@ -123,7 +120,6 @@ tests: optional: true - it: check mongodb tls set tls cert name - template: deployment.yaml release: name: vorgang-manager set: diff --git a/src/test/helm/deployment_nachrichten_manager_address_test.yaml b/src/test/helm/deployment_nachrichten_manager_address_test.yaml index 4a8132270e6156ad9cd5e88762b056e44b8b417c..a817d9030c065a7f0ca8acdeb75b64557ec0cfd1 100644 --- a/src/test/helm/deployment_nachrichten_manager_address_test.yaml +++ b/src/test/helm/deployment_nachrichten_manager_address_test.yaml @@ -33,8 +33,6 @@ set: environment: dev tests: - it: check if nachrichten-manager address is correct - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_pod_general_values_test.yaml similarity index 63% rename from src/test/helm/deployment_test.yaml rename to src/test/helm/deployment_pod_general_values_test.yaml index 930892966926123411689524b81e518be23ff059..7367474b056be90d144b672b5b94ac3fdafeaa3f 100644 --- a/src/test/helm/deployment_test.yaml +++ b/src/test/helm/deployment_pod_general_values_test.yaml @@ -1,5 +1,5 @@ -# -# 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 # Staatskanzlei # Abteilung Digitalisierung und zentrales IT-Management der Landesregierung @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test Vorgangfilter general values +suite: test deployment container basics release: name: vorgang-manager namespace: sh-helm-test @@ -32,11 +32,19 @@ set: ozgcloud: environment: dev tests: - - it: testIsDeployment - template: deployment.yaml - asserts: - - isKind: - of: Deployment + - it: should have correct pod template values + asserts: + - isEmpty: + path: spec.template.spec.dnsConfig + - equal: + path: spec.template.spec.dnsPolicy + value: "ClusterFirst" + - equal: + path: spec.template.spec.restartPolicy + value: "Always" + - equal: + path: spec.template.spec.schedulerName + value: "default-scheduler" - equal: - path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/vorgang-manager:latest + path: spec.template.spec.terminationGracePeriodSeconds + value: 30 \ No newline at end of file diff --git a/src/test/helm/deployment_rabbitmq_test.yaml b/src/test/helm/deployment_rabbitmq_env_test.yaml similarity index 97% rename from src/test/helm/deployment_rabbitmq_test.yaml rename to src/test/helm/deployment_rabbitmq_env_test.yaml index 24dc0338a27d155572f8da42cf8f8e926f0558fb..010cd7d777b7bdbec664feb73b18a1389c8cc424 100644 --- a/src/test/helm/deployment_rabbitmq_test.yaml +++ b/src/test/helm/deployment_rabbitmq_env_test.yaml @@ -30,7 +30,6 @@ set: environment: dev tests: - it: check rabbitmq spring env - template: deployment.yaml set: rabbitmq.enabled: true asserts: @@ -53,7 +52,6 @@ tests: key: password optional: false - it: check rabbitmq spring env is not set by default - template: deployment.yaml asserts: - notContains: path: spec.template.spec.containers[0].env @@ -74,7 +72,6 @@ tests: key: password optional: false - it: check rabbitmq spring env is not set - template: deployment.yaml set: rabbitmq.enabled: false asserts: diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index b1eb74080c692af6ba87a46621f0d3f6d8d57473..939760a69dae91e4eea34a679ad413c57a65ecfe 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -32,7 +32,6 @@ set: environment: dev tests: - it: test resources - template: deployment.yaml set: resources: limits: @@ -54,8 +53,7 @@ tests: - equal: path: spec.template.spec.containers[0].resources.requests.memory value: 44Mi - - it: no resources defined - template: deployment.yaml + - it: no resources defined by default asserts: - isEmpty: path: spec.template.spec.containers[0].resources diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml similarity index 84% rename from src/test/helm/deployment_springProfile_test.yaml rename to src/test/helm/deployment_springProfile_env_test.yaml index bc6e22a6779e1de00531a52f1ee232dfa3ba924e..ada5fc53fc421599c7a007ae90c708d9bf352e5f 100644 --- a/src/test/helm/deployment_springProfile_test.yaml +++ b/src/test/helm/deployment_springProfile_env_test.yaml @@ -31,19 +31,9 @@ set: ozgcloud: environment: dev tests: - - it: is kind of Deployment - set: - env.overrideSpringProfiles: oc,stage,ea - templates: - - templates/deployment.yaml - asserts: - - isKind: - of: Deployment - it: should override spring profiles set: env.overrideSpringProfiles: oc,stage,ea - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env @@ -51,8 +41,6 @@ tests: name: spring_profiles_active value: oc,stage,ea - it: should generate spring profiles - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env diff --git a/src/test/helm/deployment_test_ozgcloud_base_values_test.yaml b/src/test/helm/deployment_test_ozgcloud_base_values_test.yaml index 501996d39001690d2e9788840e279ee30c6ba0c9..26838951f2e6e7ea518babf86c448ab94d416439 100644 --- a/src/test/helm/deployment_test_ozgcloud_base_values_test.yaml +++ b/src/test/helm/deployment_test_ozgcloud_base_values_test.yaml @@ -31,12 +31,10 @@ templates: tests: - it: should fail on missing environment - template: deployment.yaml asserts: - failedTemplate: errorMessage: ozgcloud.environment muss angegeben sein - it: should not fail on missing environment - template: deployment.yaml set: ozgcloud: environment: dev diff --git a/src/test/helm/deployment_usermanager_url_test.yaml b/src/test/helm/deployment_usermanager_url_env_test.yaml similarity index 96% rename from src/test/helm/deployment_usermanager_url_test.yaml rename to src/test/helm/deployment_usermanager_url_env_test.yaml index 7d9e042f837d8def09f004944c2373188e85b87f..cf02b3ccce6ab0fe9040ee684432b52788ba233f 100644 --- a/src/test/helm/deployment_usermanager_url_test.yaml +++ b/src/test/helm/deployment_usermanager_url_env_test.yaml @@ -33,8 +33,6 @@ set: environment: dev tests: - it: check if user-manager url is correct - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env diff --git a/src/test/helm/deployment_zufimanager_address_test.yaml b/src/test/helm/deployment_zufimanager_address_env_test.yaml similarity index 96% rename from src/test/helm/deployment_zufimanager_address_test.yaml rename to src/test/helm/deployment_zufimanager_address_env_test.yaml index 3e506705ef32fa97a11aad0fa64350c2ae317bec..6111641d09204b793e8a547bed686853812f1fd2 100644 --- a/src/test/helm/deployment_zufimanager_address_test.yaml +++ b/src/test/helm/deployment_zufimanager_address_env_test.yaml @@ -33,8 +33,6 @@ set: environment: dev tests: - it: check if zufi-manager address is correct - templates: - - templates/deployment.yaml asserts: - contains: path: spec.template.spec.containers[0].env diff --git a/src/test/helm/deyploment_general_value_test.yaml b/src/test/helm/deyploment_general_value_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..04caedade37ce2aef0ef80c5687e3b819f7c5fed --- /dev/null +++ b/src/test/helm/deyploment_general_value_test.yaml @@ -0,0 +1,74 @@ +# +# 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 general values +release: + name: vorgang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + ozgcloud: + environment: dev + +tests: + - it: should have correct apiVersion + asserts: + - isKind: + of: Deployment + - isAPIVersion: + of: "apps/v1" + + - it: should have correct deployment metadata + asserts: + - equal: + path: metadata.name + value: vorgang-manager + - equal: + path: metadata.namespace + value: sh-helm-test + + + - it: should have correct deyployment general spec values + asserts: + - equal: + path: spec.progressDeadlineSeconds + value: 600 + - equal: + path: spec.replicas + value: 2 + - equal: + path: spec.revisionHistoryLimit + value: 10 + - it: should have correct deployment spec strategy values + asserts: + - equal: + path: spec.strategy + value: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + type: RollingUpdate + + diff --git a/src/test/helm/elasticsearch_cr_test.yaml b/src/test/helm/elasticsearch_cr_test.yaml index 59674fb8b925276d9ddbc32bd86ea673f569c057..068c1fd7c0170efcac8d73fdba88fc0440a1e7f9 100644 --- a/src/test/helm/elasticsearch_cr_test.yaml +++ b/src/test/helm/elasticsearch_cr_test.yaml @@ -12,13 +12,15 @@ tests: asserts: - isAPIVersion: of: operator.ozgcloud.de/v1 - - it: should contain kind + - it: should contain basic info set: elasticsearch: enabled: true asserts: - isKind: of: OzgCloudElasticsearch + - isAPIVersion: + of: operator.ozgcloud.de/v1 - it: should have metadata name set: elasticsearch: @@ -41,6 +43,7 @@ tests: set: elasticsearch: enabled: true + disableOzgCloudOperator: false asserts: - hasDocuments: count: 1 @@ -49,4 +52,14 @@ tests: asserts: - hasDocuments: count: 0 - documentIndex: 0 \ No newline at end of file + documentIndex: 0 + - it: should NOT create cr if disableOzgCloudOperator true + set: + elasticsearch: + enabled: true + disableOzgCloudOperator: true + asserts: + - hasDocuments: + count: 0 + documentIndex: 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 16661a34b0b43473c82029e7496f2867220dd785..5728f2fc1bab9d58421e31d1f7235d840a54f12b 100644 --- a/src/test/helm/network_policy_test.yaml +++ b/src/test/helm/network_policy_test.yaml @@ -35,6 +35,8 @@ tests: asserts: - isAPIVersion: of: networking.k8s.io/v1 + - isKind: + of: NetworkPolicy - it: should match kind set: diff --git a/src/test/helm/image_pull_secret_test.yaml b/src/test/helm/ozgcloud_proxyapi_secret_test.yaml similarity index 62% rename from src/test/helm/image_pull_secret_test.yaml rename to src/test/helm/ozgcloud_proxyapi_secret_test.yaml index 2d4aa120dfbd26bf3348cca913c6d53a34e44192..bfc35606b3bddf13b93662723d0a339d2b316f34 100644 --- a/src/test/helm/image_pull_secret_test.yaml +++ b/src/test/helm/ozgcloud_proxyapi_secret_test.yaml @@ -22,38 +22,45 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test image pull secret -templates: - - templates/image-pull-secret.yaml +suite: test secret ozgcloudProxyApi release: name: vorgang-manager - namespace: helm-test + namespace: sh-helm-test +templates: + - templates/secret_ozgcloud_proxyapi.yaml tests: - - it: should match basic data + - it: test metadata set: - imageCredentials: - registry: docker.ozg-sh.de - username: test - password: test1234 - email: webmaster@ozg-sh.de + ozgcloudProxyApi.apikey: api-key asserts: - - hasDocuments: - count: 1 - - containsDocument: - kind: Secret - apiVersion: v1 + - isKind: + of: Secret + - isAPIVersion: + of: v1 - equal: path: metadata.name - value: vorgang-manager-image-pull-secret + value: vorgang-manager-ozgcloud-proxyapi - equal: path: metadata.namespace - value: helm-test - - isNotNullOrEmpty: - path: data[".dockerconfigjson"] - - - it: should not create image pull secret + value: sh-helm-test + - it: test secret type set: - imagePullSecret: "image-pull-secret" + ozgcloudProxyApi.apikey: api-key + asserts: + - equal: + path: type + value: Opaque + - it: should not create secret by default asserts: - hasDocuments: - count: 0 \ No newline at end of file + count: 0 + + - it: should have data + set: + ozgcloudProxyApi.apikey: api-key + asserts: + - isNotEmpty: + path: data.ozgcloud_osi_postfach_proxyapi_key + + + diff --git a/src/test/helm/rabbitmq_exchange_test.yaml b/src/test/helm/rabbitmq_exchange_test.yaml index 8a8d0db7acd22d6b2e72b7730c4f9f3f5e825f1e..ca967c1df86550d4ae4da0deb6f490299cc1b866 100644 --- a/src/test/helm/rabbitmq_exchange_test.yaml +++ b/src/test/helm/rabbitmq_exchange_test.yaml @@ -35,18 +35,28 @@ tests: asserts: - isKind: of: Exchange + - isAPIVersion: + of: rabbitmq.com/v1beta1 - equal: path: metadata.name value: sh-helm-test - - it: test if spec name like namespace + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should have correct spec set: rabbitmq.enabled: true asserts: - - isKind: - of: Exchange - equal: - path: spec.name - value: sh-helm-test-exchange + path: spec + value: + name: sh-helm-test-exchange + type: direct + autoDelete: false + durable: true + rabbitmqClusterReference: + name: ozg-mq-cluster + namespace: rabbitmq-system - it: should not create rabbitmq exchange set: rabbitmq.enabled: false diff --git a/src/test/helm/rabbitmq_permissions_test.yaml b/src/test/helm/rabbitmq_permissions_test.yaml index b680ac19caa9e22f859334ff4cd08a27ee7f12af..155d4d0b9e2481be7654ee6e2a973273a63c71f2 100644 --- a/src/test/helm/rabbitmq_permissions_test.yaml +++ b/src/test/helm/rabbitmq_permissions_test.yaml @@ -35,29 +35,32 @@ tests: asserts: - isKind: of: Permission + - isAPIVersion: + of: rabbitmq.com/v1beta1 - equal: - path: spec.user + path: metadata.name value: sh-helm-test - - it: test specs write permissions - set: - rabbitmq.enabled: true - rabbitmq.cluster.name: rabbit-test - rabbitmq.cluster.namespace: rabbit-test-ns - asserts: - - isKind: - of: Permission - equal: - path: spec.permissions.write - value: "sh-helm-test-.*" - - it: test specs read permissions + path: metadata.namespace + value: sh-helm-test + - it: should have correct spec set: rabbitmq.enabled: true asserts: - - isKind: - of: Permission - equal: - path: spec.permissions.read - value: "sh-helm-test-.*" + path: spec + value: + vhost: "/" + user: "sh-helm-test" + permissions: + write: "sh-helm-test-.*" + configure: ".*" + read: "sh-helm-test-.*" + rabbitmqClusterReference: + name: ozg-mq-cluster + namespace: rabbitmq-system + + - it: should not create rabbitmq permission set: rabbitmq.enabled: false diff --git a/src/test/helm/rabbitmq_queue_test.yaml b/src/test/helm/rabbitmq_queue_test.yaml index 684814c49727b442295925fecd63841a6ccf8edf..b1f486a1096af207c78388bb4a2ef36eda38fe47 100644 --- a/src/test/helm/rabbitmq_queue_test.yaml +++ b/src/test/helm/rabbitmq_queue_test.yaml @@ -35,9 +35,14 @@ tests: asserts: - isKind: of: Queue + - isAPIVersion: + of: rabbitmq.com/v1beta1 - equal: path: metadata.name value: sh-helm-test + - equal: + path: metadata.namespace + value: sh-helm-test - it: should not create rabbitmq queue set: rabbitmq.enabled: false @@ -47,4 +52,28 @@ tests: - it: should not create rabbitmq queue by default asserts: - hasDocuments: - count: 0 \ No newline at end of file + count: 0 + - it: should have rabbitmq credentials and clusterReference info when enabled + set: + rabbitmq.enabled: true + asserts: + - equal: + path: spec.name + value: sh-helm-test-queue + - equal: + path: spec.vhost + value: "/" + - equal: + path: spec.type + value: quorum + - equal: + path: spec.autoDelete + value: false + - equal: + path: spec.durable + value: true + - equal: + path: spec.rabbitmqClusterReference + value: + name: ozg-mq-cluster + namespace: rabbitmq-system \ No newline at end of file diff --git a/src/test/helm/rabbitmq_secret_test.yaml b/src/test/helm/rabbitmq_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fc8fc6889b00b3e173b4dd493624ce6e740ac23e --- /dev/null +++ b/src/test/helm/rabbitmq_secret_test.yaml @@ -0,0 +1,79 @@ +# +# 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 rabbitmq secret +release: + name: vorgang-manager + namespace: sh-helm-test +templates: + - templates/rabbitmq_secret.yaml +tests: + - it: test metadata + set: + rabbitmq.enabled: true + asserts: + - isKind: + of: Secret + - isAPIVersion: + of: v1 + - equal: + path: metadata.name + value: rabbitmq-credentials + - equal: + path: metadata.namespace + value: sh-helm-test + - equal: + path: metadata.annotations + value: + "helm.sh/resource-policy": "keep" + - it: test secret type + set: + rabbitmq.enabled: true + asserts: + - equal: + path: type + value: Opaque + - it: should not create rabbitmq secret + set: + rabbitmq.enabled: false + asserts: + - hasDocuments: + count: 0 + - it: should not create rabbitmq secret by default + set: + ozgcloud.environment: test + asserts: + - hasDocuments: + count: 0 + + - it: should have stringData + set: + rabbitmq.enabled: true + asserts: + - isNotEmpty: + path: stringData.password + - isNotEmpty: + path: stringData.username + + diff --git a/src/test/helm/rabbitmq_user_test.yaml b/src/test/helm/rabbitmq_user_test.yaml index e05eb4ddbb45c744ba2aaeb82904c3e4542e17ee..35d940f7733e5516047117adaba1e619f0ee5b3b 100644 --- a/src/test/helm/rabbitmq_user_test.yaml +++ b/src/test/helm/rabbitmq_user_test.yaml @@ -35,9 +35,14 @@ tests: asserts: - isKind: of: User + - isAPIVersion: + of: rabbitmq.com/v1beta1 - equal: path: metadata.name value: sh-helm-test + - equal: + path: metadata.namespace + value: sh-helm-test - it: should not create rabbitmq user set: rabbitmq.enabled: false @@ -49,4 +54,18 @@ tests: ozgcloud.environment: test asserts: - hasDocuments: - count: 0 \ No newline at end of file + count: 0 + - it: should have rabbitmq credentials and clusterReference info when enabled + set: + rabbitmq.enabled: true + asserts: + - equal: + path: spec.importCredentialsSecret + value: + name: rabbitmq-credentials + - equal: + path: spec.rabbitmqClusterReference.name + value: ozg-mq-cluster + - equal: + path: spec.rabbitmqClusterReference.namespace + value: rabbitmq-system \ No newline at end of file diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml index e71aa0fc9379b68553987dbfe6128ef61f6d0326..0e312737a09f243ce1ea1bc4fc52a5162e139596 100644 --- a/src/test/helm/service_account_test.yaml +++ b/src/test/helm/service_account_test.yaml @@ -36,6 +36,8 @@ tests: asserts: - isKind: of: ServiceAccount + - isAPIVersion: + of: v1 - equal: path: metadata.name value: vorgang-manager-service-account diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml index 96f6e796d08698296662e02757263ff4276768ad..d25ceca7b423fd829bdd3432755087f90a1dc35f 100644 --- a/src/test/helm/service_monitor_test.yaml +++ b/src/test/helm/service_monitor_test.yaml @@ -33,9 +33,29 @@ tests: asserts: - isKind: of: ServiceMonitor + - isAPIVersion: + of: monitoring.coreos.com/v1 - equal: - path: metadata.labels["component"] - value: vorgang-manager-service-monitor + path: metadata.name + value: vorgang-manager + - equal: + path: metadata.namespace + value: sh-helm-test + + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: vorgang-manager + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: vorgang-manager + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: vorgang-manager-service-monitor + helm.sh/chart: vorgang-manager-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" - it: should be able to enable the endpoint asserts: - isKind: diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml index 627df058bde17bd49836ffd528a740eb4af30030..91d54504614680cdb057bb36fb465bb48c93ef18 100644 --- a/src/test/helm/service_test.yaml +++ b/src/test/helm/service_test.yaml @@ -33,9 +33,8 @@ tests: asserts: - isKind: of: Service - - equal: - path: metadata.labels.component - value: vorgang-manager-service + - isAPIVersion: + of: v1 - it: should be of type ClusterIP asserts: - equal: @@ -74,4 +73,17 @@ tests: - equal: path: spec.selector["app.kubernetes.io/namespace"] value: sh-helm-test - \ No newline at end of file + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/instance: vorgang-manager + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: vorgang-manager + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: vorgang-manager-service + helm.sh/chart: vorgang-manager-0.0.0-MANAGED-BY-JENKINS + ozgcloud-mongodb-client: "true" \ No newline at end of file