blob: a46400b9115865967c43c426b5d7a90a810a82f4 [file] [log] [blame]
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +02001{{/*
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -04002# Copyright © 2020 Bell Canada, Samsung Electronics
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +02003#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15*/}}
16
17
18
19{{- define "common.certInitializer._aafConfigVolumeName" -}}
20 {{ include "common.fullname" . }}-aaf-config
21{{- end -}}
22
23{{- define "common.certInitializer._aafAddConfigVolumeName" -}}
24 {{ print "aaf-add-config" }}
25{{- end -}}
26
27{{/*
28 common templates to enable cert initialization for applictaions
29
30 In deployments/jobs/stateful include:
31 initContainers:
32 {{ include "common.certInitializer.initContainer" . | nindent XX }}
33
34 containers:
35 volumeMounts:
36 {{- include "common.certInitializer.volumeMount" . | nindent XX }}
37 volumes:
38 {{- include "common.certInitializer.volume" . | nindent XX}}
39*/}}
40{{- define "common.certInitializer._initContainer" -}}
41{{- $dot := default . .dot -}}
42{{- $initRoot := default $dot.Values.certInitializer .initRoot -}}
43{{- $initName := default "certInitializer" -}}
Sylvain Desbureaux41cf72f2020-05-15 17:25:52 +020044{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }}
Krzysztof Opasiake9754a02020-07-16 21:06:39 +020045{{ include "common.readinessCheck.waitFor" $subchartDot }}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +020046- name: {{ include "common.name" $dot }}-aaf-config
Sylvain Desbureaux145140b2020-11-19 16:48:39 +010047 image: {{ include "repositoryGenerator.repository" $subchartDot }}/{{ $subchartDot.Values.global.aafAgentImage }}
Krzysztof Opasiak3e5fa9a2020-05-19 00:44:12 +020048 imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +020049 volumeMounts:
50 - mountPath: {{ $initRoot.mountPath }}
51 name: {{ include "common.certInitializer._aafConfigVolumeName" $dot }}
Krzysztof Opasiak95a5f842020-05-06 23:27:18 +020052 - mountPath: /opt/app/aaf_config/cert/truststoreONAPall.jks.b64
53 name: aaf-agent-certs
54 subPath: truststoreONAPall.jks.b64
55 - mountPath: /opt/app/aaf_config/cert/truststoreONAP.p12.b64
56 name: aaf-agent-certs
57 subPath: truststoreONAP.p12.b64
Sylvain Desbureauxb8341592021-02-23 15:54:00 +010058 - name: {{ include "common.certInitializer._aafAddConfigVolumeName" $dot }}
59 mountPath: /opt/app/aaf_config/bin/retrieval_check.sh
60 subPath: retrieval_check.sh
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +020061{{- if $initRoot.aaf_add_config }}
62 - name: {{ include "common.certInitializer._aafAddConfigVolumeName" $dot }}
63 mountPath: /opt/app/aaf_config/bin/aaf-add-config.sh
64 subPath: aaf-add-config.sh
65{{- end }}
66 command:
67 - sh
68 - -c
69 - |
70 #!/usr/bin/env bash
71 /opt/app/aaf_config/bin/agent.sh
Sylvain Desbureauxb8341592021-02-23 15:54:00 +010072 source /opt/app/aaf_config/bin/retrieval_check.sh
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +020073{{- if $initRoot.aaf_add_config }}
74 /opt/app/aaf_config/bin/aaf-add-config.sh
75{{- end }}
76 env:
77 - name: APP_FQI
78 value: "{{ $initRoot.fqi }}"
79 - name: aaf_locate_url
80 value: "https://aaf-locate.{{ $dot.Release.Namespace}}:8095"
81 - name: aaf_locator_container
82 value: "oom"
83 - name: aaf_locator_container_ns
84 value: "{{ $dot.Release.Namespace }}"
85 - name: aaf_locator_fqdn
86 value: "{{ $initRoot.fqdn }}"
87 - name: aaf_locator_app_ns
88 value: "{{ $initRoot.app_ns }}"
89 - name: DEPLOY_FQI
90 {{- include "common.secret.envFromSecretFast" (dict "global" $subchartDot "uid" "deployer-creds" "key" "login") | indent 6 }}
91 - name: DEPLOY_PASSWORD
92 {{- include "common.secret.envFromSecretFast" (dict "global" $subchartDot "uid" "deployer-creds" "key" "password") | indent 6 }}
93 #Note: want to put this on Nodes, eventually
94 - name: cadi_longitude
95 value: "{{ default "52.3" $initRoot.cadi_longitude }}"
96 - name: cadi_latitude
97 value: "{{ default "13.2" $initRoot.cadi_latitude }}"
98 #Hello specific. Clients don't don't need this, unless Registering with AAF Locator
99 - name: aaf_locator_public_fqdn
100 value: "{{ $initRoot.public_fqdn | default "" }}"
101{{- end -}}
102
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400103{{/*
104 This init container will import custom .pem certificates to truststoreONAPall.jks
105 Custom certificates must be placed in common/certInitializer/resources directory.
106
107 The feature is enabled by setting Values.global.importCustomCertsEnabled = true
108 It can be used independently of aafEnabled, however it requires the same includes
109 as describe above for _initContainer.
110
111 When AAF is enabled the truststoreONAPAll.jks (which contains AAF CA) will be used
112 to import custom certificates, otherwise the default java keystore will be used.
113
114 The updated truststore file will be placed in /updatedTruststore and can be mounted per component
115 to a specific path by defining Values.certInitializer.truststoreMountpath (see _trustStoreVolumeMount)
116 The truststore file will be available to mount even if no custom certificates were imported.
117*/}}
118{{- define "common.certInitializer._initImportCustomCertsContainer" -}}
119{{- $dot := default . .dot -}}
120{{- $initRoot := default $dot.Values.certInitializer .initRoot -}}
121{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }}
122- name: {{ include "common.name" $dot }}-import-custom-certs
Sylvain Desbureaux145140b2020-11-19 16:48:39 +0100123 image: {{ include "repositoryGenerator.image.jre" $subchartDot }}
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400124 imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
125 securityContext:
126 runAsUser: 0
127 command:
Sylvain Desbureaux36389672021-01-19 14:51:24 +0100128 - /bin/sh
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400129 - -c
130 - /root/import-custom-certs.sh
131 env:
132 - name: AAF_ENABLED
133 value: "{{ $subchartDot.Values.global.aafEnabled }}"
134 - name: TRUSTSTORE_OUTPUT_FILENAME
135 value: "{{ $initRoot.truststoreOutputFileName }}"
136 - name: TRUSTSTORE_PASSWORD
137 {{- include "common.secret.envFromSecretFast" (dict "global" $subchartDot "uid" "truststore-creds" "key" "password") | indent 6 }}
138 volumeMounts:
139 - mountPath: /certs
140 name: aaf-agent-certs
141 - mountPath: /root/import-custom-certs.sh
142 name: aaf-agent-certs
143 subPath: import-custom-certs.sh
144 - mountPath: /updatedTruststore
145 name: updated-truststore
146{{- end -}}
147
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200148{{- define "common.certInitializer._volumeMount" -}}
149{{- $dot := default . .dot -}}
150{{- $initRoot := default $dot.Values.certInitializer .initRoot -}}
krishnaa96edf6f372020-09-09 09:30:58 +0530151- mountPath: {{ $initRoot.appMountPath }}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200152 name: {{ include "common.certInitializer._aafConfigVolumeName" $dot }}
153{{- end -}}
154
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400155{{/*
156 This is used together with _initImportCustomCertsContainer
157 It mounts the updated truststore (with imported custom certificates) to the
158 truststoreMountpath defined in the values file for the component.
159*/}}
160{{- define "common.certInitializer._trustStoreVolumeMount" -}}
161{{- $dot := default . .dot -}}
162{{- $initRoot := default $dot.Values.certInitializer .initRoot -}}
163{{- if gt (len $initRoot.truststoreMountpath) 0 }}
164- mountPath: {{ $initRoot.truststoreMountpath }}/{{ $initRoot.truststoreOutputFileName }}
165 name: updated-truststore
166 subPath: {{ $initRoot.truststoreOutputFileName }}
167{{- end -}}
168{{- end -}}
169
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200170{{- define "common.certInitializer._volumes" -}}
171{{- $dot := default . .dot -}}
172{{- $initRoot := default $dot.Values.certInitializer .initRoot -}}
Krzysztof Opasiak3e5fa9a2020-05-19 00:44:12 +0200173{{- $subchartDot := mergeOverwrite (deepCopy (omit $dot "Values")) (dict "Chart" (set (fromJson (toJson $dot.Chart)) "Name" $initRoot.nameOverride) "Values" (mergeOverwrite (deepCopy $initRoot) (dict "global" $dot.Values.global))) }}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200174- name: {{ include "common.certInitializer._aafConfigVolumeName" $dot }}
175 emptyDir:
176 medium: Memory
Krzysztof Opasiak95a5f842020-05-06 23:27:18 +0200177- name: aaf-agent-certs
178 configMap:
Krzysztof Opasiak75f18752020-09-09 20:32:56 +0200179 name: {{ tpl $subchartDot.Values.certsCMName $subchartDot }}
Krzysztof Opasiak95a5f842020-05-06 23:27:18 +0200180 defaultMode: 0700
Krzysztof Opasiak108483c2020-05-14 01:44:30 +0200181- name: {{ include "common.certInitializer._aafAddConfigVolumeName" $dot }}
182 configMap:
183 name: {{ include "common.fullname" $subchartDot }}-add-config
184 defaultMode: 0700
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400185{{- if $dot.Values.global.importCustomCertsEnabled }}
186- name: updated-truststore
187 emptyDir: {}
188{{- end -}}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200189{{- end -}}
190
191{{- define "common.certInitializer.initContainer" -}}
192{{- $dot := default . .dot -}}
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400193 {{- if $dot.Values.global.importCustomCertsEnabled }}
194 {{ include "common.certInitializer._initImportCustomCertsContainer" . }}
195 {{- end -}}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200196 {{- if $dot.Values.global.aafEnabled }}
197 {{ include "common.certInitializer._initContainer" . }}
198 {{- end -}}
199{{- end -}}
200
201{{- define "common.certInitializer.volumeMount" -}}
202{{- $dot := default . .dot -}}
203 {{- if $dot.Values.global.aafEnabled }}
204 {{- include "common.certInitializer._volumeMount" . }}
205 {{- end -}}
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400206 {{- if $dot.Values.global.importCustomCertsEnabled }}
207 {{- include "common.certInitializer._trustStoreVolumeMount" . }}
208 {{- end -}}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200209{{- end -}}
210
211{{- define "common.certInitializer.volumes" -}}
212{{- $dot := default . .dot -}}
Jozsef Csongvai9d4d5af2020-07-13 11:10:25 -0400213 {{- if or ($dot.Values.global.aafEnabled ) ($dot.Values.global.importCustomCertsEnabled) }}
Krzysztof Opasiak020cdb92020-05-01 01:46:37 +0200214 {{- include "common.certInitializer._volumes" . }}
215 {{- end -}}
216{{- end -}}