diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 591374806e479479021290713461546c3c3f11c3..0acd89657d08667d2be1e5634cb0974b428c930a 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -9,13 +9,16 @@ app.kubernetes.io/part-of: ozgcloud app.kubernetes.io/version: {{ .Chart.Version }} helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" }} app.kubernetes.io/component: bayernid-proxy -component: bayernid-proxy +{{- end -}} + +{{/* Namespace */}} +{{- define "app.namespace" -}} +{{- default .Release.Namespace | toString | trunc 63 | trimSuffix "-" -}} {{- end -}} {{- define "app.matchLabels" }} app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/namespace: {{ .Release.Namespace }} -component: bayernid-proxy {{- end -}} {{- define "app.envSpringProfiles" }} diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index f1aadaee30f8dcdd3fa17fcb61678dfbd281fd46..b4923f25c3bd7d683c9c6a15e9eedc409f31c64b 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -29,6 +29,7 @@ metadata: namespace: {{ .Release.Namespace }} labels: {{- include "app.defaultLabels" . | indent 4 }} + component: bayernid-proxy spec: progressDeadlineSeconds: 600 replicas: {{ .Values.replicaCount }} @@ -36,6 +37,7 @@ spec: selector: matchLabels: {{- include "app.matchLabels" . | indent 6 }} + component: bayernid-proxy strategy: rollingUpdate: maxSurge: 1 @@ -45,6 +47,7 @@ spec: metadata: labels: {{- include "app.defaultLabels" . | indent 8 }} + component: bayernid-proxy spec: {{- if (.Values.serviceAccount).create }} serviceAccountName: {{ include "app.serviceAccountName" . }} diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml index ed6467de511d8fddec146bd3fb2a96791f7f7a8f..02ce38d9d4422c084d4a0bd66ae6985b9b0a664e 100644 --- a/src/main/helm/templates/service.yaml +++ b/src/main/helm/templates/service.yaml @@ -29,6 +29,7 @@ metadata: namespace: {{ .Release.Namespace }} labels: {{- include "app.defaultLabels" . | indent 4 }} + component: bayernid-proxy spec: type: ClusterIP ports: @@ -40,3 +41,4 @@ spec: protocol: TCP selector: {{- include "app.matchLabels" . | indent 4 }} + component: bayernid-proxy diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..24e6a01eeda28dfb75c699550c6fd5000452156d --- /dev/null +++ b/src/test/helm/service_monitor_test.yaml @@ -0,0 +1,96 @@ +# +# 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 service_monitor +release: + name: bayernid-proxy + namespace: sh-helm-test +templates: + - templates/service_monitor.yaml +tests: + - it: should have basic info and the label component with value bayernid-proxy-service-monitor attached + asserts: + - isKind: + of: ServiceMonitor + - isAPIVersion: + of: monitoring.coreos.com/v1 + - equal: + path: metadata.name + value: bayernid-proxy + - equal: + path: metadata.namespace + value: sh-helm-test + - equal: + path: metadata.labels["component"] + value: bayernid-proxy-service-monitor + + - it: should contain default lables and component lables + asserts: + - equal: + path: metadata.labels + value: + app.kubernetes.io/component: bayernid-proxy + app.kubernetes.io/instance: bayernid-proxy + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: bayernid-proxy + app.kubernetes.io/namespace: sh-helm-test + app.kubernetes.io/part-of: ozgcloud + app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS + component: bayernid-proxy-service-monitor + helm.sh/chart: bayernid-proxy-0.0.0-MANAGED-BY-JENKINS + + - it: should have the metrics endpoint configured by default + set: + env.springProfiles: oc,stage + asserts: + - contains: + path: spec.endpoints + content: + port: metrics + path: /actuator/prometheus + - it: should be able to enable the endpoint + asserts: + - contains: + path: spec.endpoints + content: + port: metrics + path: /actuator/prometheus + - it: namespace selector should contain the namespace + asserts: + - contains: + path: spec.namespaceSelector.matchNames + content: sh-helm-test + - it: selector should contain the component label with the value bayernid-proxy-service + asserts: + - equal: + path: spec.selector.matchLabels["component"] + value: bayernid-proxy-service + - it: selector should contain helm recommended labels name and namespace + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/name: bayernid-proxy + app.kubernetes.io/namespace: sh-helm-test + component: bayernid-proxy-service