| {{/* |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */}} |
| |
| {{- if and .Values.deployment.client_secrets .Values.manifests.helm_tests }} |
| {{- $envAll := . }} |
| |
| {{- $serviceAccountName := printf "%s-%s" $envAll.Release.Name "test" }} |
| {{ tuple $envAll "tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} |
| --- |
| kind: ClusterRole |
| apiVersion: rbac.authorization.k8s.io/v1 |
| metadata: |
| name: {{ $serviceAccountName }} |
| rules: |
| - apiGroups: |
| - '' |
| resources: |
| - persistentvolumes |
| - persistentvolumeclaims |
| - events |
| - pods |
| - pods/log |
| - configmaps |
| verbs: |
| - create |
| - get |
| - delete |
| - list |
| - apiGroups: |
| - storage.k8s.io |
| resources: |
| - storageclasses |
| verbs: |
| - get |
| - list |
| - watch |
| --- |
| apiVersion: rbac.authorization.k8s.io/v1 |
| kind: ClusterRoleBinding |
| metadata: |
| name: {{ $serviceAccountName }} |
| subjects: |
| - kind: ServiceAccount |
| name: {{ $serviceAccountName }} |
| namespace: {{ $envAll.Release.Namespace }} |
| roleRef: |
| kind: ClusterRole |
| name: {{ $serviceAccountName }} |
| apiGroup: rbac.authorization.k8s.io |
| --- |
| apiVersion: v1 |
| kind: Pod |
| metadata: |
| name: "{{.Release.Name}}-test" |
| labels: |
| {{ tuple $envAll "ceph" "provisioner-test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }} |
| annotations: |
| "helm.sh/hook": test-success |
| {{ dict "envAll" $envAll "podName" $serviceAccountName "containerNames" (list "init" "ceph-provisioner-helm-test") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }} |
| spec: |
| {{ dict "envAll" $envAll "application" "test" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 2 }} |
| restartPolicy: Never |
| serviceAccountName: {{ $serviceAccountName }} |
| nodeSelector: |
| {{ .Values.labels.test.node_selector_key }}: {{ .Values.labels.test.node_selector_value }} |
| initContainers: |
| {{ tuple $envAll "tests" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }} |
| containers: |
| - name: ceph-provisioner-helm-test |
| {{ tuple $envAll "ceph_config_helper" | include "helm-toolkit.snippets.image" | indent 6 }} |
| {{ tuple $envAll $envAll.Values.pod.resources.jobs.tests | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }} |
| {{ dict "envAll" $envAll "application" "test" "container" "test" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 6 }} |
| env: |
| - name: PVC_NAMESPACE |
| value: {{ .Release.Namespace }} |
| - name: RBD_TEST_POD_NAME |
| value: {{ .Values.pod.test_pod.rbd.name }} |
| - name: RBD_TEST_PVC_NAME |
| value: {{ .Values.pod.test_pod.rbd.pvc_name }} |
| - name: CSI_RBD_TEST_POD_NAME |
| value: {{ .Values.pod.test_pod.csi_rbd.name }} |
| - name: CSI_RBD_TEST_PVC_NAME |
| value: {{ .Values.pod.test_pod.csi_rbd.pvc_name }} |
| - name: CEPHFS_TEST_POD_NAME |
| value: {{ .Values.pod.test_pod.cephfs.name }} |
| - name: CEPHFS_TEST_PVC_NAME |
| value: {{ .Values.pod.test_pod.cephfs.pvc_name }} |
| - name: TEST_POD_WAIT_TIMEOUT |
| value: {{ .Values.pod.test_pod.wait_timeout | quote }} |
| command: |
| - /tmp/helm-tests.sh |
| volumeMounts: |
| - name: ceph-provisioners-bin-clients |
| mountPath: /tmp/helm-tests.sh |
| subPath: helm-tests.sh |
| readOnly: true |
| - name: pod-tmp |
| mountPath: /tmp |
| volumes: |
| - name: ceph-provisioners-bin-clients |
| configMap: |
| name: {{ printf "%s-%s" $envAll.Release.Name "ceph-prov-bin-clients" | quote }} |
| defaultMode: 0555 |
| - name: pod-tmp |
| emptyDir: {} |
| {{- end }} |