2 Copyright (c) 2019 AT&T Intellectual Property.
3 Copyright (c) 2019 Nokia.
4 Copyright (c) 2020 HCL Technologies Limited.
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
18 {{- $platformNamespace := include "common.namespace.platform" . }}
19 {{- $e2simNamespace := default "test"}}
20 {{- $xappNamespace := include "common.namespace.xapp" . }}
21 {{- $releaseName := default "ric-full" .Values.ric.platform.releaseName }}
22 {{- $jobName := printf "%s-%s" .Release.Name $releaseName }}
23 {{- $acctName := randAlpha 6 | lower | printf "%s-%s" $jobName }}
24 {{- $serviceAccountName := default $acctName .Values.ric.robot.job.serviceAccount.name }}
25 {{- if .Values.ric.robot.job.serviceAccount.create }}
30 name: {{ $serviceAccountName }}
31 namespace: {{ .Release.Namespace }}
33 apiVersion: rbac.authorization.k8s.io/v1beta1
36 name: {{ $serviceAccountName }}-{{ $releaseName }}-ricplatform-access
37 namespace: {{ $platformNamespace }}
40 resources: ["pods", "pods/log", "pods/exec", "services"]
41 verbs: ["get", "list"]
43 resources: ["daemonsets", "replicasets", "statefulsets"]
44 verbs: ["get", "list"]
45 - apiGroups: ["extensions"]
46 resources: ["daemonsets", "replicasets"]
47 verbs: ["get", "list"]
49 resources: ["deployments"]
50 verbs: ["get", "list", "patch"]
51 - apiGroups: ["extensions"]
52 resources: ["deployments"]
53 verbs: ["get", "list", "patch"]
55 apiVersion: rbac.authorization.k8s.io/v1beta1
58 name: {{ $serviceAccountName }}-{{ $releaseName }}-ricplatform-access
59 namespace: {{ $platformNamespace }}
61 apiGroup: rbac.authorization.k8s.io
63 name: {{ $serviceAccountName }}-{{ $releaseName }}-ricplatform-access
65 - kind: ServiceAccount
66 name: {{ $serviceAccountName }}
67 namespace: {{ .Release.Namespace }}
68 {{- if ne $xappNamespace $platformNamespace }}
70 apiVersion: rbac.authorization.k8s.io/v1beta1
73 name: {{ $serviceAccountName }}-{{ $releaseName }}-xapp-access
74 namespace: {{ $xappNamespace }}
77 resources: ["pods", "pods/log", "pods/exec", "services"]
78 verbs: ["get", "list"]
80 resources: ["deployments", "daemonsets", "replicasets", "statefulsets"]
81 verbs: ["get", "list"]
82 - apiGroups: ["extensions"]
83 resources: ["deployments", "daemonsets", "replicasets"]
84 verbs: ["get", "list"]
86 apiVersion: rbac.authorization.k8s.io/v1beta1
89 name: {{ $serviceAccountName }}-{{ $releaseName }}-xapp-access
90 namespace: {{ $xappNamespace }}
92 apiGroup: rbac.authorization.k8s.io
94 name: {{ $serviceAccountName }}-{{ $releaseName }}-xapp-access
96 - kind: ServiceAccount
97 name: {{ $serviceAccountName }}
98 namespace: {{ .Release.Namespace }}
102 apiVersion: rbac.authorization.k8s.io/v1beta1
105 name: {{ $serviceAccountName }}-{{ $releaseName }}-e2sim-access
106 namespace: {{ $e2simNamespace }}
109 resources: ["pods", "pods/log", "pods/exec", "services"]
110 verbs: ["get", "list"]
111 - apiGroups: ["apps"]
112 resources: ["daemonsets", "replicasets", "statefulsets"]
113 verbs: ["get", "list"]
114 - apiGroups: ["extensions"]
115 resources: ["daemonsets", "replicasets"]
116 verbs: ["get", "list"]
117 - apiGroups: ["apps"]
118 resources: ["deployments"]
119 verbs: ["get", "list", "patch"]
120 - apiGroups: ["extensions"]
121 resources: ["deployments"]
122 verbs: ["get", "list", "patch"]
124 apiVersion: rbac.authorization.k8s.io/v1beta1
127 name: {{ $serviceAccountName }}-{{ $releaseName }}-e2sim-access
128 namespace: {{ $e2simNamespace }}
130 apiGroup: rbac.authorization.k8s.io
132 name: {{ $serviceAccountName }}-{{ $releaseName }}-e2sim-access
134 - kind: ServiceAccount
135 name: {{ $serviceAccountName }}
136 namespace: {{ .Release.Namespace }}
142 name: {{ $jobName }}-ric-robot-run
143 namespace: {{ .Release.Namespace }}
145 backoffLimit: {{ default 0 .Values.ric.robot.job.backoffLimit }}
148 serviceAccountName: {{ $serviceAccountName }}
149 restartPolicy: {{ default "Never" .Values.ric.robot.job.restartPolicy }}
151 - name: {{ $jobName }}-generate-robot-kubeconfig
152 {{ with .Values.images.ric.robot.job.init }}
153 image: {{ if .repository }}{{- .repository -}} / {{- end -}}{{- .name -}}{{- if .tag -}} : {{- .tag -}} {{- end }}
154 imagePullPolicy: {{ default "IfNotPresent" .pullPolicy }}
158 value: {{ $serviceAccountName }}
160 value: {{ default "kubernetes" .Values.ric.cluster.name }}
162 value: /robot/etc/ric-robot-kubeconfig.conf
164 value: "kubernetes.default.svc.{{ default "cluster.local" .Values.ric.cluster.domain }}"
165 command: ["/robot/bin/svcacct-to-kubeconfig.sh"]
168 mountPath: /robot/etc
170 {{- if .Values.ric.robot.log }}
172 mountPath: /robot/log
176 mountPath: /robot/bin
178 {{- $secrets := dict }}
179 {{- range $index, $container := .Values.images.ric.robot.job }}
180 {{- if index $container "repositoryCred" }}
181 {{- $_ := set $secrets $container.repositoryCred (dict "name" $container.repositoryCred) }}
184 {{- if keys $secrets }}
186 {{- values $secrets | toYaml |nindent 8 }}
189 - name: {{ $jobName }}-ric-robot
190 {{ with .Values.images.ric.robot.job.run -}}
191 image: {{ if .repository }}{{- .repository -}} / {{- end -}}{{- .name -}}{{- if .tag -}} : {{- .tag -}} {{- end }}
192 imagePullPolicy: {{ default "IfNotPresent" .pullPolicy }}
195 - name: DBAAS_SERVICE_HOST
196 value: "service-ricplt-dbaas-tcp.ricplt.svc.cluster.local"
197 - name: DBAAS_SERVICE_PORT
199 - name: RICPLT_NAMESPACE
200 value: {{ $platformNamespace }}
201 - name: RICPLT_RELEASE_NAME
202 value: {{ $releaseName }}
203 - name: RICPLT_COMPONENTS
204 value: {{ keys .Values.ric.platform.components | join " " }}
205 - name: RICXAPP_NAMESPACE
206 value: {{ $xappNamespace }}
207 - name: E2SIM_NAMESPACE
208 value: {{ $e2simNamespace }}
210 value: /robot/etc/ric-robot-kubeconfig.conf
214 {{- if not .Values.ric.robot.job.failOnTestFail }}
217 {{- if .Values.ric.robot.log }}
234 {{- if .Values.ric.robot.tags.enabled }}
235 {{- range .Values.ric.robot.tags.enabled }}
240 {{- if .Values.ric.robot.tags.disabled }}
241 {{- range .Values.ric.robot.tags.disabled }}
246 {{- if .Values.ric.robot.testsuites }}
247 {{- range .Values.ric.robot.testsuites }}
248 - "/robot/testsuites/{{.}}.robot"
251 - "/robot/testsuites"
254 - name: robot-testsuites
255 mountPath: /robot/testsuites
258 mountPath: /robot/etc
260 {{- if .Values.ric.robot.log }}
262 mountPath: /robot/log
265 # for compatability with the ric robot, we mount
266 # both properties files and interface libraries
268 {{- range $map, $ignore := $.Files.Glob "configmap-src/*/properties/*.robot" }}
269 - name: robot-properties
270 mountPath: /robot/resources/{{ base $map }}
271 subPath: {{ base $map }}
274 {{- range $map, $ignore := $.Files.Glob "configmap-src/*/resources/*" }}
275 - name: robot-resources
276 mountPath: /robot/resources/{{ base $map }}
277 subPath: {{ base $map }}
284 {{- if .Values.ric.robot.log }}
286 path: {{ default "/opt/ric/robot/log" .Values.ric.robot.log }}
287 type: DirectoryOrCreate
293 - name: robot-testsuites
295 name: robot-testsuites
297 - name: robot-properties
299 name: robot-properties
301 - name: robot-resources
303 name: robot-resources