blob: 5ef57fa34bea2a576862ca43d03c7ab5f7657183 [file] [log] [blame]
Mohammed Naserf3f59a72023-01-15 21:02:04 -05001{{/*
2Licensed under the Apache License, Version 2.0 (the "License");
3you may not use this file except in compliance with the License.
4You may obtain a copy of the License at
5
6 http://www.apache.org/licenses/LICENSE-2.0
7
8Unless required by applicable law or agreed to in writing, software
9distributed under the License is distributed on an "AS IS" BASIS,
10WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11See the License for the specific language governing permissions and
12limitations under the License.
13*/}}
14
15{{- if (.Values.global).subchart_release_name }}
16{{- $_ := set . "deployment_name" .Chart.Name }}
17{{- else }}
18{{- $_ := set . "deployment_name" .Release.Name }}
19{{- end }}
20
21{{- if .Values.manifests.pod_rally_test }}
22{{- $envAll := . }}
23
24{{- $mounts_tests := .Values.pod.mounts.neutron_tests.neutron_tests }}
25{{- $mounts_tests_init := .Values.pod.mounts.neutron_tests.init_container }}
26
27{{- $serviceAccountName := print .deployment_name "-test" }}
28{{ tuple $envAll "tests" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
29---
30apiVersion: v1
31kind: Pod
32metadata:
33 name: {{ print .deployment_name "-test" }}
34 annotations:
35 "helm.sh/hook": test-success
36 {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
37 labels:
38{{ tuple $envAll "neutron" "test" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
39{{ dict "envAll" $envAll "podName" "neutron-test" "containerNames" (list "init" "neutron-test" "neutron-test-ks-user") | include "helm-toolkit.snippets.kubernetes_mandatory_access_control_annotation" | indent 4 }}
40spec:
41 nodeSelector:
42 {{ .Values.labels.test.node_selector_key }}: {{ .Values.labels.test.node_selector_value }}
43{{ if $envAll.Values.pod.tolerations.neutron.enabled }}
44{{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 2 }}
45{{ end }}
46 restartPolicy: Never
47 serviceAccountName: {{ $serviceAccountName }}
48 initContainers:
49{{ tuple $envAll "tests" $mounts_tests_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 4 }}
50 - name: neutron-test-ks-user
51{{ tuple $envAll "ks_user" | include "helm-toolkit.snippets.image" | indent 6 }}
52{{ tuple $envAll $envAll.Values.pod.resources.jobs.ks_user | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }}
53 command:
54 - /tmp/ks-user.sh
55 volumeMounts:
56 - name: pod-tmp
57 mountPath: /tmp
58 - name: neutron-bin
59 mountPath: /tmp/ks-user.sh
60 subPath: ks-user.sh
61 readOnly: true
62{{- dict "enabled" .Values.manifests.certificates "name" .Values.secrets.tls.network.server.internal | include "helm-toolkit.snippets.tls_volume_mount" | indent 8 }}
63 env:
64{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin "useCA" .Values.manifests.certificates }}
65{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
66{{- end }}
67 - name: SERVICE_OS_SERVICE_NAME
68 value: "test"
69{{- with $env := dict "ksUserSecret" .Values.secrets.identity.test }}
70{{- include "helm-toolkit.snippets.keystone_user_create_env_vars" $env | indent 8 }}
71{{- end }}
72 - name: SERVICE_OS_ROLE
73 value: {{ .Values.endpoints.identity.auth.test.role | quote }}
74{{ if $envAll.Values.conf.rally_tests.force_project_purge }}
75 - name: {{ .deployment_name }}-reset
76{{ tuple $envAll "purge_test" | include "helm-toolkit.snippets.image" | indent 6 }}
77 env:
78{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin "useCA" .Values.manifests.certificates }}
79{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
80{{- end }}
81{{- with $env := dict "ksUserSecret" .Values.secrets.identity.test }}
82{{- include "helm-toolkit.snippets.keystone_user_create_env_vars" $env | indent 8 }}
83{{- end }}
84 - name: OS_TEST_PROJECT_NAME
85 value: {{ .Values.endpoints.identity.auth.test.project_name }}
86 - name: OS_TEST_PROJECT_DOMAIN_NAME
87 value: {{ .Values.endpoints.identity.auth.test.domain_name }}
88 - name: NETWORK_QUOTA
89 value: {{ (first (index .Values.conf.rally_tests.tests "NeutronNetworks.create_and_delete_networks")).context.quotas.neutron.network | quote }}
90 - name: PORT_QUOTA
91 value: {{ (first (index .Values.conf.rally_tests.tests "NeutronNetworks.create_and_delete_ports")).context.quotas.neutron.port | quote }}
92 - name: ROUTER_QUOTA
93 value: {{ (first (index .Values.conf.rally_tests.tests "NeutronNetworks.create_and_delete_routers")).context.quotas.neutron.router | quote }}
94 - name: SUBNET_QUOTA
95 value: {{ (first (index .Values.conf.rally_tests.tests "NeutronNetworks.create_and_delete_subnets")).context.quotas.neutron.subnet | quote }}
96 - name: SEC_GROUP_QUOTA
97 value: {{ (first (index .Values.conf.rally_tests.tests "NeutronSecurityGroup.create_and_list_security_groups")).context.quotas.neutron.security_group | quote }}
98 command:
99 - /tmp/neutron-test-force-cleanup.sh
100 volumeMounts:
101 - name: neutron-bin
102 mountPath: /tmp/neutron-test-force-cleanup.sh
103 subPath: neutron-test-force-cleanup.sh
104 readOnly: true
105 - name: pod-tmp
106 mountPath: /tmp/pod-tmp
107{{- dict "enabled" .Values.manifests.certificates "name" .Values.secrets.tls.network.server.internal | include "helm-toolkit.snippets.tls_volume_mount" | indent 8 }}
108{{ end }}
109 containers:
110 - name: neutron-test
111{{ tuple $envAll "test" | include "helm-toolkit.snippets.image" | indent 6 }}
112{{ tuple $envAll $envAll.Values.pod.resources.jobs.tests | include "helm-toolkit.snippets.kubernetes_resources" | indent 6 }}
113 env:
114{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin "useCA" .Values.manifests.certificates }}
115{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 8 }}
116{{- end }}
117{{- with $env := dict "ksUserSecret" .Values.secrets.identity.test }}
118{{- include "helm-toolkit.snippets.keystone_user_create_env_vars" $env | indent 8 }}
119{{- end }}
120 - name: RALLY_ENV_NAME
121 value: {{.Release.Name}}
122 command:
123 - /tmp/rally-test.sh
124 volumeMounts:
125 - name: pod-tmp
126 mountPath: /tmp
127 - name: neutron-etc
128 mountPath: /etc/rally/rally_tests.yaml
129 subPath: rally_tests.yaml
130 readOnly: true
131 - name: neutron-bin
132 mountPath: /tmp/rally-test.sh
133 subPath: rally-test.sh
134 readOnly: true
135 - name: rally-db
136 mountPath: /var/lib/rally
137{{- dict "enabled" .Values.manifests.certificates "name" .Values.secrets.tls.network.server.internal | include "helm-toolkit.snippets.tls_volume_mount" | indent 8 }}
138{{ if $mounts_tests.volumeMounts }}{{ toYaml $mounts_tests.volumeMounts | indent 8 }}{{ end }}
139 volumes:
140 - name: pod-tmp
141 emptyDir: {}
142 - name: neutron-etc
143 secret:
144 secretName: neutron-etc
145 defaultMode: 0444
146 - name: neutron-bin
147 configMap:
148 name: neutron-bin
149 defaultMode: 0555
150 - name: rally-db
151 emptyDir: {}
152{{- dict "enabled" .Values.manifests.certificates "name" .Values.secrets.tls.network.server.internal | include "helm-toolkit.snippets.tls_volume" | indent 4 }}
153{{ if $mounts_tests.volumes }}{{ toYaml $mounts_tests.volumes | indent 4 }}{{ end }}
154{{- end }}