df6aed635db73c43ebc1840691d28435ca3b08b1
[osm/devops.git] /
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
3 #
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
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17
18 apiVersion: argoproj.io/v1alpha1
19 kind: WorkflowTemplate
20 metadata:
21   name: capi-cloud-configs-wft
22   namespace: osm-workflows
23 spec:
24   templates:
25
26   # Create a CloudConfig for CAPI OpenStack provider
27   - name: create-capi-openstack-cloudconfig
28     inputs:
29       parameters:
30       # Volumes with cloned repos
31       - name: fleet_volume_name
32       - name: fleet_mount_path
33         value: "/fleet"
34       - name: sw_catalogs_volume_name
35       - name: sw_catalogs_mount_path
36         value: "/sw-catalogs"
37
38       # Specific parameters
39       - name: openstack_clouds_yaml_secret_name
40       - name: openstack_clouds_yaml_secret_key
41       - name: openstack_cacert_secret_name
42       - name: openstack_cacert_secret_key
43       - name: os_auth_url
44       - name: os_region_name
45       - name: os_username
46       - name: openstack_credentials_secret_name
47       - name: openstack_credentials_secret_key
48       - name: os_project_id
49       - name: os_project_domain_id
50       - name: openstack_cloud_name
51       - name: age_public_key_mgmt
52       - name: mgmt_project_name
53       # Debug?
54       - name: debug
55         value: "false"
56
57       # Other parameters - Do not touch
58       - name: mgmt_cluster_name
59         value: "_management"
60       - name: base_templates_path
61         value: "cloud-resources"
62       - name: cloned_fleet_folder_name
63         value: "fleet-osm"
64       - name: cloned_sw_catalogs_folder_name
65         value: "sw-catalogs-osm"
66
67     container:
68       image: opensourcemano/osm-krm-functions:testing-daily
69       # imagePullPolicy: Always
70       env:
71       - name: OPENSTACK_CLOUDS_YAML
72         valueFrom:
73           secretKeyRef:
74             name: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
75             key: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
76           default: ""
77       - name: OPENSTACK_CACERT
78         valueFrom:
79           secretKeyRef:
80             name: "{{inputs.parameters.openstack_cacert_secret_name}}"
81             key: "{{inputs.parameters.openstack_cacert_secret_key}}"
82           default: ""
83       - name: OS_AUTH_URL
84         value: "{{inputs.parameters.os_auth_url}}"
85       - name: OS_REGION_NAME
86         value: "{{inputs.parameters.os_region_name}}"
87       - name: OS_USERNAME
88         value: "{{inputs.parameters.os_username}}"
89       - name: OS_PASSWORD
90         valueFrom:
91           secretKeyRef:
92             name: "{{inputs.parameters.openstack_credentials_secret_name}}"
93             key: "{{inputs.parameters.openstack_credentials_secret_key}}"
94           default: ""
95       - name: OS_PROJECT_ID
96         value: "{{inputs.parameters.os_project_id}}"
97       - name: OS_PROJECT_DOMAIN_ID
98         value: "{{inputs.parameters.os_project_domain_id}}"
99       - name: DEBUG
100         value: "{{inputs.parameters.debug}}"
101       command: ["/app/scripts/entrypoint.sh"]
102       args:
103       - create_capi_openstack_cloudconf
104       - "{{inputs.parameters.openstack_cloud_name}}"
105       - "{{inputs.parameters.age_public_key_mgmt}}"
106       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
107       volumeMounts:
108       - name: fleet-repo-volume
109         mountPath: '{{inputs.parameters.fleet_mount_path}}'
110       - name: sw-catalogs-repo-volume
111         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
112     volumes:
113       - name: fleet-repo-volume
114         persistentVolumeClaim:
115           claimName: '{{inputs.parameters.fleet_volume_name}}'
116       - name: sw-catalogs-repo-volume
117         persistentVolumeClaim:
118           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
119     securityContext:
120       fsGroup: 10000
121
122
123   # Update a CloudConfig for CAPI OpenStack provider
124   - name: update-capi-openstack-cloudconfig
125     inputs:
126       parameters:
127       # Volumes with cloned repos
128       - name: fleet_volume_name
129       - name: fleet_mount_path
130         value: "/fleet"
131       - name: sw_catalogs_volume_name
132       - name: sw_catalogs_mount_path
133         value: "/sw-catalogs"
134
135       # Specific parameters
136       - name: openstack_clouds_yaml_secret_name
137       - name: openstack_clouds_yaml_secret_key
138       - name: openstack_cacert_secret_name
139       - name: openstack_cacert_secret_key
140       - name: os_auth_url
141       - name: os_region_name
142       - name: os_username
143       - name: openstack_credentials_secret_name
144       - name: openstack_credentials_secret_key
145       - name: os_project_id
146       - name: os_project_domain_id
147       - name: openstack_cloud_name
148       - name: age_public_key_mgmt
149       - name: mgmt_project_name
150       # Debug?
151       - name: debug
152         value: "false"
153
154       # Other parameters - Do not touch
155       - name: mgmt_cluster_name
156         value: "_management"
157       - name: base_templates_path
158         value: "cloud-resources"
159       - name: cloned_fleet_folder_name
160         value: "fleet-osm"
161       - name: cloned_sw_catalogs_folder_name
162         value: "sw-catalogs-osm"
163
164     container:
165       image: opensourcemano/osm-krm-functions:testing-daily
166       # imagePullPolicy: Always
167       env:
168       - name: OPENSTACK_CLOUDS_YAML
169         valueFrom:
170           secretKeyRef:
171             name: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
172             key: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
173           default: ""
174       - name: OPENSTACK_CACERT
175         valueFrom:
176           secretKeyRef:
177             name: "{{inputs.parameters.openstack_cacert_secret_name}}"
178             key: "{{inputs.parameters.openstack_cacert_secret_key}}"
179           default: ""
180       - name: OS_AUTH_URL
181         value: "{{inputs.parameters.os_auth_url}}"
182       - name: OS_REGION_NAME
183         value: "{{inputs.parameters.os_region_name}}"
184       - name: OS_USERNAME
185         value: "{{inputs.parameters.os_username}}"
186       - name: OS_PASSWORD
187         valueFrom:
188           secretKeyRef:
189             name: "{{inputs.parameters.openstack_credentials_secret_name}}"
190             key: "{{inputs.parameters.openstack_credentials_secret_key}}"
191           default: ""
192       - name: OS_PROJECT_ID
193         value: "{{inputs.parameters.os_project_id}}"
194       - name: OS_PROJECT_DOMAIN_ID
195         value: "{{inputs.parameters.os_project_domain_id}}"
196       - name: DEBUG
197         value: "{{inputs.parameters.debug}}"
198       command: ["/app/scripts/entrypoint.sh"]
199       args:
200       - update_capi_openstack_cloudconf
201       - "{{inputs.parameters.openstack_cloud_name}}"
202       - "{{inputs.parameters.age_public_key_mgmt}}"
203       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
204       volumeMounts:
205       - name: fleet-repo-volume
206         mountPath: '{{inputs.parameters.fleet_mount_path}}'
207       - name: sw-catalogs-repo-volume
208         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
209     volumes:
210       - name: fleet-repo-volume
211         persistentVolumeClaim:
212           claimName: '{{inputs.parameters.fleet_volume_name}}'
213       - name: sw-catalogs-repo-volume
214         persistentVolumeClaim:
215           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
216     securityContext:
217       fsGroup: 10000
218
219
220   # Delete a CloudConfig for CAPI OpenStack provider
221   - name: delete-capi-openstack-cloudconfig
222     inputs:
223       parameters:
224       # Volumes with cloned repos
225       - name: fleet_volume_name
226       - name: fleet_mount_path
227         value: "/fleet"
228       - name: sw_catalogs_volume_name
229       - name: sw_catalogs_mount_path
230         value: "/sw-catalogs"
231
232       # Specific parameters
233       - name: openstack_cloud_name
234       - name: mgmt_project_name
235       # Debug?
236       - name: debug
237         value: "false"
238
239       # Other parameters - Do not touch
240       - name: mgmt_cluster_name
241         value: "_management"
242       - name: base_templates_path
243         value: "cloud-resources"
244       - name: cloned_fleet_folder_name
245         value: "fleet-osm"
246
247     container:
248       image: opensourcemano/osm-krm-functions:testing-daily
249       # imagePullPolicy: Always
250       env:
251       - name: DEBUG
252         value: "{{inputs.parameters.debug}}"
253       command: ["/app/scripts/entrypoint.sh"]
254       args:
255       - delete_capi_openstack_cloudconf
256       - "{{inputs.parameters.openstack_cloud_name}}"
257       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
258       volumeMounts:
259       - name: fleet-repo-volume
260         mountPath: '{{inputs.parameters.fleet_mount_path}}'
261     volumes:
262       - name: fleet-repo-volume
263         persistentVolumeClaim:
264           claimName: '{{inputs.parameters.fleet_volume_name}}'
265     securityContext:
266       fsGroup: 10000