1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
18 apiVersion: argoproj.io/v1alpha1
19 kind: WorkflowTemplate
21 name: full-create-ksu-generated-hr-wtf
22 namespace: osm-workflows
28 - name: fleet_destination_folder
29 - name: git_fleet_cred_secret
30 # HelmRelease generation
31 - name: helmrelease_name
36 # Repo source generation
37 - name: is_preexisting_repo
43 expression: "{{inputs.parameters.target_ns}}"
44 - name: helmrepo_secret_ref
45 # HelmRelease inline values (if any)
48 # Secret reference and generation (if required)
49 - name: is_preexisting_secret
51 - name: values_secret_name
54 - name: age_public_key
55 ################################################################
56 ## A temporary secret should exist already in the `osm-workflows`
57 ## namespace containing the desired secret key-values
58 ## in a well-known key (in the example, `creds`).
64 ## jenkinsPassword: myJ3nk1n2P2ssw0rd
66 ## Secret values will be obtained from the
67 ## secret named after the input parameter `reference_secret_for_values`,
68 ## and from the key named after the input parameter `reference_key_for_values`
69 - name: reference_secret_for_values
70 - name: reference_key_for_values
71 # ConfigMap reference and generation (if required)
72 - name: is_preexisting_cm
73 - name: values_cm_name
84 # By default, it will not syncronize, so that we can easily accumulate more than
85 # one Helm chart into the same KSU if desired
88 ## Root folder of the cloned Fleet repo - Do not touch
89 ### `FLEET_REPO_DIR` is the result of:
90 ### "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
91 - name: cloned_fleet_folder_name
101 secondsAfterCompletion: 6000 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
102 secondsAfterSuccess: 6000 # Time to live after workflow is successful
103 secondsAfterFailure: 9000 # Time to live after workflow fails
105 entrypoint: create-ksu-hr
109 - name: create-ksu-hr
113 - name: git_fleet_url
114 - name: fleet_destination_folder
115 - name: git_fleet_cred_secret
116 # HelmRelease generation
117 - name: helmrelease_name
119 - name: chart_version
122 # Repo source generation
123 - name: is_preexisting_repo
124 - name: helmrepo_name
127 - name: helmrepo_secret_ref
128 # HelmRelease inline values (if any)
129 - name: inline_values
130 # Secret reference and generation (if required)
131 - name: is_preexisting_secret
132 - name: values_secret_name
134 - name: age_public_key
135 - name: reference_secret_for_values
136 - name: reference_key_for_values
137 # ConfigMap reference and generation (if required)
138 - name: is_preexisting_cm
139 - name: values_cm_name
148 - name: cloned_fleet_folder_name
156 # ------ Preparations for transaction
157 - - name: generate-fleet-volume-repo
159 name: k8s-resources-wft
160 template: generate-volume
165 - - name: clone-fleet
174 value: "{{inputs.parameters.git_fleet_url}}"
175 - name: destination_folder
176 value: "{{inputs.parameters.fleet_destination_folder}}"
177 - name: git_cred_secret
178 value: "{{inputs.parameters.git_fleet_cred_secret}}"
179 - name: git_volume_name
180 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
181 # ------ end of preparations for transaction
183 # ------ Transformations
184 - - name: create-ksu-generated-hr
186 name: ksu-management-wft
187 template: create-ksu-generated-hr
190 # References to required external resources
191 - name: fleet_volume_name
192 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
193 - name: fleet_mount_path
195 # HelmRelease generation
196 - name: helmrelease_name
197 value: "{{inputs.parameters.helmrelease_name}}"
199 value: "{{inputs.parameters.chart_name}}"
200 - name: chart_version
201 value: "{{inputs.parameters.chart_version}}"
203 value: "{{inputs.parameters.target_ns}}"
205 value: "{{inputs.parameters.create_ns}}"
206 # Repo source generation
207 - name: is_preexisting_repo
208 value: "{{inputs.parameters.is_preexisting_repo}}"
209 - name: helmrepo_name
210 value: "{{inputs.parameters.helmrepo_name}}"
212 value: "{{inputs.parameters.helmrepo_url}}"
214 value: "{{inputs.parameters.helmrepo_ns}}"
215 - name: helmrepo_secret_ref
216 value: "{{inputs.parameters.helmrepo_secret_ref}}"
217 # HelmRelease inline values (if any)
218 - name: inline_values
219 value: "{{inputs.parameters.inline_values}}"
220 # Secret reference and generation (if required)
221 - name: is_preexisting_secret
222 value: "{{inputs.parameters.is_preexisting_secret}}"
223 - name: values_secret_name
224 value: "{{inputs.parameters.values_secret_name}}"
226 value: "{{inputs.parameters.secret_key}}"
227 - name: age_public_key
228 value: "{{inputs.parameters.age_public_key}}"
229 ## Secret values will be obtained from this key in this secret
230 - name: reference_secret_for_values
231 value: "{{inputs.parameters.reference_secret_for_values}}"
232 - name: reference_key_for_values
233 value: "{{inputs.parameters.reference_key_for_values}}"
234 # ConfigMap reference and generation (if required)
235 - name: is_preexisting_cm
236 value: "{{inputs.parameters.is_preexisting_cm}}"
237 - name: values_cm_name
238 value: "{{inputs.parameters.values_cm_name}}"
240 value: "{{inputs.parameters.cm_key}}"
242 value: "{{inputs.parameters.cm_values}}"
245 value: "{{inputs.parameters.ksu_name}}"
247 value: "{{inputs.parameters.profile_name}}"
249 value: "{{inputs.parameters.profile_type}}"
251 value: "{{inputs.parameters.project_name}}"
253 value: "{{inputs.parameters.sync}}"
254 ## Root folder of the cloned Fleet repo - Do not touch
255 - name: cloned_fleet_folder_name
256 value: "{{inputs.parameters.cloned_fleet_folder_name}}"
259 value: "{{inputs.parameters.debug}}"
260 # ------ end of transformations
262 # ------ Commit transaction
263 - - name: push-to-fleet
266 template: git-commit-merge-push
272 value: "{{inputs.parameters.fleet_destination_folder}}"
273 - name: git_cred_secret
274 value: "{{inputs.parameters.git_fleet_cred_secret}}"
275 - name: git_volume_name
276 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
277 - name: commit_message
278 value: "Create KSU {{inputs.parameters.ksu_name}} into {{inputs.parameters.profile_name}} profile of {{inputs.parameters.profile_type}} type @ {{inputs.parameters.project_name}} project"
281 - name: contrib_branch
284 value: "{{inputs.parameters.dry_run}}"
285 # ------ end of commit transaction