diff --git a/src/main/helm/templates/truststore/init_truststore_job.yaml b/src/main/helm/templates/truststore/init_truststore_job.yaml index 6285cf7bbe674a5e93b23100e36bdda1fd3f7930..6a25bfd64ba01f4cdafc91365880916506007c4e 100644 --- a/src/main/helm/templates/truststore/init_truststore_job.yaml +++ b/src/main/helm/templates/truststore/init_truststore_job.yaml @@ -39,6 +39,7 @@ spec: name: init-user-manager-truststore-job labels: {{- include "app.defaultLabels" . | indent 8 }} + component: user-manager-create-truststore spec: serviceAccountName: truststore-init-service-account initContainers: diff --git a/src/main/helm/templates/truststore/truststore_cronjob.yaml b/src/main/helm/templates/truststore/truststore_cronjob.yaml index 34e2f1fe80f187c830c8b0076e7396ce7de03b5d..11b378e5a2c9a120b9f8a09aae8ac7a372847bd9 100644 --- a/src/main/helm/templates/truststore/truststore_cronjob.yaml +++ b/src/main/helm/templates/truststore/truststore_cronjob.yaml @@ -39,6 +39,7 @@ spec: name: renew-user-manager-truststore-cronjob labels: {{- include "app.defaultLabels" . | indent 12 }} + component: user-manager-create-truststore spec: serviceAccountName: truststore-secret-service-account initContainers: diff --git a/src/main/helm/templates/truststore/truststore_network_policy.yaml b/src/main/helm/templates/truststore/truststore_network_policy.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e82f316126bb0cee36393d4c5d32b4469e907e48 --- /dev/null +++ b/src/main/helm/templates/truststore/truststore_network_policy.yaml @@ -0,0 +1,46 @@ +# +# 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.networkPolicy).disabled }} +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: network-policy-user-manager-create-truststore + namespace: {{ .Release.Namespace }} +spec: + podSelector: + matchLabels: + component: user-manager-create-truststore + policyTypes: + - Egress + egress: + # kube api + - to: + - ipBlock: + cidr: 172.18.0.1/32 + - ipBlock: + cidr: 10.0.0.0/8 + ports: + - port: 6443 + - port: 443 +{{- end }} diff --git a/src/test/helm/truststore/init_truststore_job_test.yaml b/src/test/helm/truststore/init_truststore_job_test.yaml index 1a764f60fec178139d7168f6d7142736f8dcb3c6..eee4e66053d43fe787a8d2d09d5e41c3d34a4e44 100644 --- a/src/test/helm/truststore/init_truststore_job_test.yaml +++ b/src/test/helm/truststore/init_truststore_job_test.yaml @@ -115,6 +115,9 @@ tests: - equal: path: spec.template.metadata.labels["ozgcloud-mongodb-client"] value: "true" + - equal: + path: spec.template.metadata.labels["component"] + value: "user-manager-create-truststore" - it: check job serviceaccountname asserts: diff --git a/src/test/helm/truststore/truststore_cronjob_test.yaml b/src/test/helm/truststore/truststore_cronjob_test.yaml index 1329ae06687db7fec0ad1273cb9b16e9595b212c..14135866af7e3cf26a796b9efe9b9d9a20bd2ba9 100644 --- a/src/test/helm/truststore/truststore_cronjob_test.yaml +++ b/src/test/helm/truststore/truststore_cronjob_test.yaml @@ -115,6 +115,9 @@ tests: - equal: path: spec.jobTemplate.spec.template.metadata.labels["ozgcloud-mongodb-client"] value: "true" + - equal: + path: spec.jobTemplate.spec.template.metadata.labels["component"] + value: "user-manager-create-truststore" - it: check cronJob serviceaccountname asserts: diff --git a/src/test/helm/truststore/truststore_network_policy_test.yaml b/src/test/helm/truststore/truststore_network_policy_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b751093bc3d7ce43516e0bfbd264eb13fdf6f613 --- /dev/null +++ b/src/test/helm/truststore/truststore_network_policy_test.yaml @@ -0,0 +1,78 @@ +# +# 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: truststore network policy test +release: + namespace: by-helm-test +templates: + - templates/truststore/truststore_network_policy.yaml +tests: + - it: should match apiVersion + asserts: + - isAPIVersion: + of: networking.k8s.io/v1 + - it: should match kind + asserts: + - isKind: + of: NetworkPolicy + - it: validate metadata + asserts: + - equal: + path: metadata + value: + name: network-policy-user-manager-create-truststore + namespace: by-helm-test + - it: should have podSelector component user-manager-create-truststore + asserts: + - equal: + path: spec.podSelector + value: + matchLabels: + component: user-manager-create-truststore + - it: should have policyTypes egress + asserts: + - equal: + path: spec.policyTypes + value: + - Egress + - it: validate egress policy + asserts: + - contains: + path: spec.egress + content: + to: + - ipBlock: + cidr: 172.18.0.1/32 + - ipBlock: + cidr: 10.0.0.0/8 + ports: + - port: 6443 + - port: 443 + - it: test network policy disabled + set: + networkPolicy: + disabled: true + asserts: + - hasDocuments: + count: 0 \ No newline at end of file