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-bootstrap-cluster-wft
22 namespace: osm-workflows
30 - name: fleet_destination_folder
31 - name: git_fleet_cred_secret
34 - name: git_sw_catalogs_url
35 - name: sw_catalogs_destination_folder
36 - name: git_sw_catalogs_cred_secret
38 # Specific parameters - Bootstrap
40 - name: cluster_kustomization_name
41 - name: public_key_mgmt
42 - name: public_key_new_cluster
43 - name: secret_name_private_age_key_for_new_cluster
44 - name: key_name_in_secret
47 # Recommended to keep this default
48 - name: imported_cluster
60 # secondsAfterCompletion: 100 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
61 # secondsAfterSuccess: 50 # Time to live after workflow is successful
62 # secondsAfterFailure: 50 # Time to live after workflow fails
64 entrypoint: bootstrap-cluster
69 - name: bootstrap-cluster
74 - name: fleet_destination_folder
75 - name: git_fleet_cred_secret
76 - name: git_sw_catalogs_url
77 - name: sw_catalogs_destination_folder
78 - name: git_sw_catalogs_cred_secret
80 # Specific parameters - Bootstrap
82 - name: cluster_kustomization_name
83 - name: public_key_mgmt
84 - name: public_key_new_cluster
85 - name: secret_name_private_age_key_for_new_cluster
86 - name: key_name_in_secret
87 - name: imported_cluster
94 # ------ Preparations for transaction
95 - - name: generate-fleet-volume-repo
97 name: k8s-resources-wft
98 template: generate-volume
103 - name: generate-sw-catalogs-volume-repo
105 name: k8s-resources-wft
106 template: generate-volume
111 - - name: clone-fleet
120 value: "{{inputs.parameters.git_fleet_url}}"
121 - name: destination_folder
122 value: "{{inputs.parameters.fleet_destination_folder}}"
123 - name: git_cred_secret
124 value: "{{inputs.parameters.git_fleet_cred_secret}}"
125 - name: git_volume_name
126 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
127 - name: clone-sw-catalogs
134 value: "/sw-catalogs"
136 value: "{{inputs.parameters.git_sw_catalogs_url}}"
137 - name: destination_folder
138 value: "{{inputs.parameters.sw_catalogs_destination_folder}}"
139 - name: git_cred_secret
140 value: "{{inputs.parameters.git_sw_catalogs_cred_secret}}"
141 - name: git_volume_name
142 value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
143 # ------ end of preparations for transaction
145 # ------ Transformations
146 # Bootstrap the remote cluster
147 - - name: bootstrap-cluster
149 name: cluster-management-wft
150 template: bootstrap-remote-cluster
153 # Volumes with cloned repos
154 - name: fleet_volume_name
155 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
156 - name: fleet_mount_path
158 - name: sw_catalogs_volume_name
159 value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
160 - name: sw_catalogs_mount_path
161 value: "/sw-catalogs"
163 # Specific parameters
165 value: "{{inputs.parameters.cluster_name}}"
166 - name: cluster_kustomization_name
167 value: "{{inputs.parameters.cluster_kustomization_name}}"
168 - name: public_key_mgmt
169 value: "{{inputs.parameters.public_key_mgmt}}"
170 - name: public_key_new_cluster
171 value: "{{inputs.parameters.public_key_new_cluster}}"
172 - name: secret_name_private_age_key_for_new_cluster
173 value: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
174 - name: key_name_in_secret
175 value: "{{inputs.parameters.key_name_in_secret}}"
176 - name: fleet_repo_url
177 value: "{{inputs.parameters.git_fleet_url}}"
178 - name: sw_catalogs_repo_url
179 value: "{{inputs.parameters.git_sw_catalogs_url}}"
180 - name: imported_cluster
181 value: "{{inputs.parameters.imported_cluster}}"
182 # ------ end of transformations
184 # ------ Commit transaction
185 - - name: push-to-fleet
188 template: git-commit-merge-push
194 value: "{{inputs.parameters.fleet_destination_folder}}"
195 - name: git_cred_secret
196 value: "{{inputs.parameters.git_fleet_cred_secret}}"
197 - name: git_volume_name
198 value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
199 - name: commit_message
200 value: "Bootstrap imported cluster {{inputs.parameters.cluster_kustomization_name}}"
203 - name: contrib_branch
206 value: "{{inputs.parameters.dry_run}}"
207 # ------ end of commit transaction