83d8ecb565b7e4f20c79c479cd521a9f6d41bf51
[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: cluster-management-wft
22   namespace: osm-workflows
23 spec:
24   templates:
25
26   # Create a PaaS cluster using CrossPlane (any cloud)
27   - name: create-crossplane-cluster
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: cluster_kustomization_name
40       - name: cluster_name
41       ## As of today, one among `aks`, `eks` or `gke`:
42       - name: cluster_type
43       - name: providerconfig_name
44       - name: vm_size
45       - name: node_count
46       - name: cluster_location
47       - name: k8s_version
48       - name: public_key_mgmt
49       - name: public_key_new_cluster
50       - name: secret_name_private_age_key_for_new_cluster
51       - name: key_name_in_secret
52         value: "agekey"
53       - name: fleet_repo_url
54       - name: sw_catalogs_repo_url
55       - name: mgmt_project_name
56         value: "osm_admin"
57       ## Do we want to skip OSM's bootstrap?
58       - name: skip_bootstrap
59         value: "false"
60       ## AKS only (otherwise, empty)
61       - name: rg_name
62         values: ""
63       ## GKE only (otherwise, empty)
64       - name: preemptible_nodes
65         values: "false"
66       # Other parameters - Recommended to keep defaults
67       - name: mgmt_cluster_name
68         value: "_management"
69       - name: base_templates_path
70         value: "cloud-resources"
71       - name: cloned_fleet_folder_name
72         value: "fleet-osm"
73       - name: cloned_sw_catalogs_folder_name
74         value: "sw-catalogs-osm"
75       ## EKS only (otherwise, empty)
76       - name: cluster_iam_role
77       - name: cluster_private_subnets_id
78       - name: cluster_public_subnets_id
79       - name: cluster_subnets_configmap_name
80       # Debug?
81       - name: debug
82         value: "false"
83
84     container:
85       image: opensourcemano/osm-krm-functions:testing-daily
86       # imagePullPolicy: Always
87       env:
88       - name: PRIVATE_KEY_NEW_CLUSTER
89         valueFrom:
90           secretKeyRef:
91             name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
92             key: "{{inputs.parameters.key_name_in_secret}}"
93       - name: DEBUG
94         value: "{{inputs.parameters.debug}}"
95       command: ["/app/scripts/entrypoint.sh"]
96       args:
97       - create_crossplane_cluster
98       - "{{inputs.parameters.cluster_kustomization_name}}"
99       - "{{inputs.parameters.cluster_name}}"
100       - "{{inputs.parameters.cluster_type}}"
101       - "{{inputs.parameters.providerconfig_name}}"
102       - "{{inputs.parameters.vm_size}}"
103       - "{{inputs.parameters.node_count}}"
104       - "{{inputs.parameters.cluster_location}}"
105       - "{{inputs.parameters.k8s_version}}"
106       - "{{inputs.parameters.public_key_mgmt}}"
107       - "{{inputs.parameters.public_key_new_cluster}}"
108       - ''
109       - "{{inputs.parameters.rg_name}}"
110       - "{{inputs.parameters.preemptible_nodes}}"
111       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
112       - "{{inputs.parameters.fleet_repo_url}}"
113       - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
114       - "{{inputs.parameters.sw_catalogs_repo_url}}"
115       - "{{inputs.parameters.skip_bootstrap}}"
116       - "{{inputs.parameters.mgmt_project_name}}"
117       - "{{inputs.parameters.mgmt_cluster_name}}"
118       - "{{inputs.parameters.base_templates_path}}"
119       - "{{inputs.parameters.cluster_iam_role}}"
120       - "{{inputs.parameters.cluster_private_subnets_id}}"
121       - "{{inputs.parameters.cluster_public_subnets_id}}"
122       - "{{inputs.parameters.cluster_subnets_configmap_name}}"
123
124       volumeMounts:
125       - name: fleet-repo-volume
126         mountPath: '{{inputs.parameters.fleet_mount_path}}'
127       - name: sw-catalogs-repo-volume
128         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
129     volumes:
130       - name: fleet-repo-volume
131         persistentVolumeClaim:
132           claimName: '{{inputs.parameters.fleet_volume_name}}'
133       - name: sw-catalogs-repo-volume
134         persistentVolumeClaim:
135           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
136     securityContext:
137       runAsUser: 10000
138     #   runAsGroup: 10000
139     #   fsGroup: 10000
140
141
142   # Update a PaaS cluster created using CrossPlane (any cloud)
143   - name: update-crossplane-cluster
144     inputs:
145       parameters:
146       # Volumes with cloned repos
147       - name: fleet_volume_name
148       - name: fleet_mount_path
149         value: "/fleet"
150       - name: sw_catalogs_volume_name
151       - name: sw_catalogs_mount_path
152         value: "/sw-catalogs"
153
154       # Specific parameters
155       - name: cluster_kustomization_name
156       - name: cluster_name
157       ## As of today, one among `aks`, `eks` or `gke`:
158       - name: cluster_type
159       - name: providerconfig_name
160       - name: vm_size
161       - name: node_count
162       - name: cluster_location
163       - name: k8s_version
164       - name: public_key_mgmt
165       - name: public_key_new_cluster
166       - name: secret_name_private_age_key_for_new_cluster
167       - name: key_name_in_secret
168         value: "agekey"
169       - name: fleet_repo_url
170       - name: sw_catalogs_repo_url
171       - name: mgmt_project_name
172         value: "osm_admin"
173       ## AKS only (otherwise, empty)
174       - name: rg_name
175         values: ""
176       ## GKE only (otherwise, empty)
177       - name: preemptible_nodes
178         values: "false"
179       # Other parameters - Recommended to keep defaults
180       - name: mgmt_cluster_name
181         value: "_management"
182       - name: base_templates_path
183         value: "cloud-resources"
184       - name: cloned_fleet_folder_name
185         value: "fleet-osm"
186       - name: cloned_sw_catalogs_folder_name
187         value: "sw-catalogs-osm"
188       # Debug?
189       - name: debug
190         value: "false"
191
192     container:
193       image: opensourcemano/osm-krm-functions:testing-daily
194       # imagePullPolicy: Always
195       env:
196       - name: PRIVATE_KEY_NEW_CLUSTER
197         valueFrom:
198           secretKeyRef:
199             name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
200             key: "{{inputs.parameters.key_name_in_secret}}"
201       - name: DEBUG
202         value: "{{inputs.parameters.debug}}"
203       command: ["/app/scripts/entrypoint.sh"]
204       args:
205       - update_crossplane_cluster
206       - "{{inputs.parameters.cluster_kustomization_name}}"
207       - "{{inputs.parameters.cluster_name}}"
208       - "{{inputs.parameters.cluster_type}}"
209       - "{{inputs.parameters.providerconfig_name}}"
210       - "{{inputs.parameters.vm_size}}"
211       - "{{inputs.parameters.node_count}}"
212       - "{{inputs.parameters.cluster_location}}"
213       - "{{inputs.parameters.k8s_version}}"
214       - "{{inputs.parameters.public_key_mgmt}}"
215       - "{{inputs.parameters.public_key_new_cluster}}"
216       - ''
217       - "{{inputs.parameters.rg_name}}"
218       - "{{inputs.parameters.preemptible_nodes}}"
219       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
220       - "{{inputs.parameters.fleet_repo_url}}"
221       - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
222       - "{{inputs.parameters.sw_catalogs_repo_url}}"
223       ## Note that during upgrades, OSM's bootstrap is avoided:
224       - "true"
225       - "{{inputs.parameters.mgmt_project_name}}"
226       - "{{inputs.parameters.mgmt_cluster_name}}"
227       - "{{inputs.parameters.base_templates_path}}"
228
229       volumeMounts:
230       - name: fleet-repo-volume
231         mountPath: '{{inputs.parameters.fleet_mount_path}}'
232       - name: sw-catalogs-repo-volume
233         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
234     volumes:
235       - name: fleet-repo-volume
236         persistentVolumeClaim:
237           claimName: '{{inputs.parameters.fleet_volume_name}}'
238       - name: sw-catalogs-repo-volume
239         persistentVolumeClaim:
240           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
241     securityContext:
242       runAsUser: 10000
243     #   runAsGroup: 10000
244     #   fsGroup: 10000
245
246
247   # Create a PaaS cluster using CAPI (Openstack)
248   - name: create-capi-openstack-cluster
249     inputs:
250       parameters:
251       # Volumes with cloned repos
252       - name: fleet_volume_name
253       - name: fleet_mount_path
254         value: "/fleet"
255       - name: sw_catalogs_volume_name
256       - name: sw_catalogs_mount_path
257         value: "/sw-catalogs"
258       # Specific parameters
259       - name: cluster_kustomization_name
260       - name: cluster_name
261       - name: vm_size
262       - name: node_count
263       - name: k8s_version
264       - name: providerconfig_name
265       - name: public_key_mgmt
266       - name: public_key_new_cluster
267       - name: secret_name_private_age_key_for_new_cluster
268       - name: key_name_in_secret
269         value: "agekey"
270       - name: fleet_repo_url
271       - name: sw_catalogs_repo_url
272       - name: mgmt_project_name
273         value: "osm_admin"
274       ## CAPI and CAPI Openstack specific parameters
275       - name: control_plane_vm_size
276         value: ""
277       - name: control_plane_node_count
278         value: ""
279       - name: openstack_dns_nameservers
280         value: ""
281       - name: openstack_external_network_id
282         value: ""
283       - name: openstack_failure_domain
284         value: ""
285       - name: openstack_ssh_key_name
286         value: ""
287       - name: cluster_cni
288         value: ""
289       - name: openstack_worker_image_name
290         value: ""
291       - name: openstack_control_plane_image_name
292         value: ""
293       - name: capo_resources_namespace
294         value: "managed-resources"
295       ## Do we want to skip OSM's bootstrap?
296       - name: skip_bootstrap
297         value: "false"
298       # Other parameters - Recommended to keep defaults
299       - name: mgmt_cluster_name
300         value: "_management"
301       - name: base_templates_path
302         value: "cloud-resources/capi"
303       - name: cloned_fleet_folder_name
304         value: "fleet-osm"
305       - name: cloned_sw_catalogs_folder_name
306         value: "sw-catalogs-osm"
307       # Debug?
308       - name: debug
309         value: "false"
310
311     container:
312       image: opensourcemano/osm-krm-functions:testing-daily
313       # imagePullPolicy: Always
314       env:
315       - name: PRIVATE_KEY_NEW_CLUSTER
316         valueFrom:
317           secretKeyRef:
318             name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
319             key: "{{inputs.parameters.key_name_in_secret}}"
320       - name: DEBUG
321         value: "{{inputs.parameters.debug}}"
322       command: ["/app/scripts/entrypoint.sh"]
323       args:
324       - create_capi_openstack_cluster
325       - "{{inputs.parameters.cluster_kustomization_name}}"
326       - "{{inputs.parameters.cluster_name}}"
327       - "{{inputs.parameters.vm_size}}"
328       - "{{inputs.parameters.control_plane_vm_size}}"
329       - "{{inputs.parameters.node_count}}"
330       - "{{inputs.parameters.control_plane_node_count}}"
331       - "{{inputs.parameters.k8s_version}}"
332       - "{{inputs.parameters.providerconfig_name}}"
333       - "{{inputs.parameters.openstack_dns_nameservers}}"
334       - "{{inputs.parameters.openstack_external_network_id}}"
335       - "{{inputs.parameters.openstack_failure_domain}}"
336       - "{{inputs.parameters.openstack_ssh_key_name}}"
337       - "{{inputs.parameters.cluster_cni}}"
338       - "{{inputs.parameters.openstack_worker_image_name}}"
339       - "{{inputs.parameters.openstack_control_plane_image_name}}"
340       - "{{inputs.parameters.public_key_mgmt}}"
341       - "{{inputs.parameters.public_key_new_cluster}}"
342       - ''
343       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
344       - "{{inputs.parameters.fleet_repo_url}}"
345       - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
346       - "{{inputs.parameters.sw_catalogs_repo_url}}"
347       - "{{inputs.parameters.skip_bootstrap}}"
348       - "{{inputs.parameters.mgmt_project_name}}"
349       - "{{inputs.parameters.mgmt_cluster_name}}"
350       - "{{inputs.parameters.base_templates_path}}"
351       - '{{inputs.parameters.capo_resources_namespace}}'
352
353       volumeMounts:
354       - name: fleet-repo-volume
355         mountPath: '{{inputs.parameters.fleet_mount_path}}'
356       - name: sw-catalogs-repo-volume
357         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
358     volumes:
359       - name: fleet-repo-volume
360         persistentVolumeClaim:
361           claimName: '{{inputs.parameters.fleet_volume_name}}'
362       - name: sw-catalogs-repo-volume
363         persistentVolumeClaim:
364           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
365     securityContext:
366       runAsUser: 10000
367     #   runAsGroup: 10000
368     #   fsGroup: 10000
369
370
371   # Update a PaaS cluster created using CAPI (Openstack)
372   - name: update-capi-openstack-cluster
373     inputs:
374       parameters:
375       # Volumes with cloned repos
376       - name: fleet_volume_name
377       - name: fleet_mount_path
378         value: "/fleet"
379       - name: sw_catalogs_volume_name
380       - name: sw_catalogs_mount_path
381         value: "/sw-catalogs"
382       # Specific parameters
383       - name: cluster_kustomization_name
384       - name: cluster_name
385       - name: vm_size
386       - name: node_count
387       - name: k8s_version
388       - name: providerconfig_name
389       - name: public_key_mgmt
390       - name: public_key_new_cluster
391       - name: secret_name_private_age_key_for_new_cluster
392       - name: key_name_in_secret
393         value: "agekey"
394       - name: fleet_repo_url
395       - name: sw_catalogs_repo_url
396       - name: mgmt_project_name
397         value: "osm_admin"
398       ## CAPI and CAPI Openstack specific parameters
399       - name: control_plane_vm_size
400         value: ""
401       - name: control_plane_node_count
402         value: ""
403       - name: openstack_dns_nameservers
404         value: ""
405       - name: openstack_external_network_id
406         value: ""
407       - name: openstack_failure_domain
408         value: ""
409       - name: openstack_ssh_key_name
410         value: ""
411       - name: cluster_cni
412         value: ""
413       - name: openstack_worker_image_name
414         value: ""
415       - name: openstack_control_plane_image_name
416         value: ""
417       - name: capo_resources_namespace
418         value: "managed-resources"
419       ## Do we want to skip OSM's bootstrap?
420       - name: skip_bootstrap
421         value: "false"
422       # Other parameters - Recommended to keep defaults
423       - name: mgmt_cluster_name
424         value: "_management"
425       - name: base_templates_path
426         value: "cloud-resources/capi"
427       - name: cloned_fleet_folder_name
428         value: "fleet-osm"
429       - name: cloned_sw_catalogs_folder_name
430         value: "sw-catalogs-osm"
431       # Debug?
432       - name: debug
433         value: "false"
434
435     container:
436       image: opensourcemano/osm-krm-functions:testing-daily
437       # imagePullPolicy: Always
438       env:
439       - name: PRIVATE_KEY_NEW_CLUSTER
440         valueFrom:
441           secretKeyRef:
442             name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
443             key: "{{inputs.parameters.key_name_in_secret}}"
444       - name: DEBUG
445         value: "{{inputs.parameters.debug}}"
446       command: ["/app/scripts/entrypoint.sh"]
447       args:
448       - update_capi_openstack_cluster
449       - "{{inputs.parameters.cluster_kustomization_name}}"
450       - "{{inputs.parameters.cluster_name}}"
451       - "{{inputs.parameters.vm_size}}"
452       - "{{inputs.parameters.control_plane_vm_size}}"
453       - "{{inputs.parameters.node_count}}"
454       - "{{inputs.parameters.control_plane_node_count}}"
455       - "{{inputs.parameters.k8s_version}}"
456       - "{{inputs.parameters.providerconfig_name}}"
457       - "{{inputs.parameters.openstack_dns_nameservers}}"
458       - "{{inputs.parameters.openstack_external_network_id}}"
459       - "{{inputs.parameters.openstack_failure_domain}}"
460       - "{{inputs.parameters.openstack_ssh_key_name}}"
461       - "{{inputs.parameters.cluster_cni}}"
462       - "{{inputs.parameters.openstack_worker_image_name}}"
463       - "{{inputs.parameters.openstack_control_plane_image_name}}"
464       - "{{inputs.parameters.public_key_mgmt}}"
465       - "{{inputs.parameters.public_key_new_cluster}}"
466       - ''
467       - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
468       - "{{inputs.parameters.fleet_repo_url}}"
469       - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
470       - "{{inputs.parameters.sw_catalogs_repo_url}}"
471       ## Note that during upgrades, OSM's bootstrap is avoided:
472       - "true"
473       - "{{inputs.parameters.mgmt_project_name}}"
474       - "{{inputs.parameters.mgmt_cluster_name}}"
475       - "{{inputs.parameters.base_templates_path}}"
476       - '{{inputs.parameters.capo_resources_namespace}}'
477
478       volumeMounts:
479       - name: fleet-repo-volume
480         mountPath: '{{inputs.parameters.fleet_mount_path}}'
481       - name: sw-catalogs-repo-volume
482         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
483     volumes:
484       - name: fleet-repo-volume
485         persistentVolumeClaim:
486           claimName: '{{inputs.parameters.fleet_volume_name}}'
487       - name: sw-catalogs-repo-volume
488         persistentVolumeClaim:
489           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
490     securityContext:
491       runAsUser: 10000
492     #   runAsGroup: 10000
493     #   fsGroup: 10000
494
495
496   # Bootstrap remote cluster running in **ANY cloud**
497   - name: bootstrap-remote-cluster
498     inputs:
499       parameters:
500       # Volumes with cloned repos
501       - name: fleet_volume_name
502       - name: fleet_mount_path
503         value: "/fleet"
504       - name: sw_catalogs_volume_name
505       - name: sw_catalogs_mount_path
506         value: "/sw-catalogs"
507
508       # Specific parameters
509       - name: cluster_name
510       - name: cluster_kustomization_name
511       - name: public_key_mgmt
512       - name: public_key_new_cluster
513       - name: secret_name_private_age_key_for_new_cluster
514       - name: key_name_in_secret
515         value: "agekey"
516       - name: fleet_repo_url
517       - name: sw_catalogs_repo_url
518
519       # Other parameters - Recommended to keep defaults
520       - name: mgmt_project_name
521         value: "osm_admin"
522       - name: imported_cluster
523         value: "false"
524       - name: fleet_repo_dir
525         value: "/fleet/fleet-osm/"
526       - name: sw_catalogs_repo_dir
527         value: "/sw-catalogs/sw-catalogs-osm/"
528
529       # Debug/dry run?
530       - name: debug
531         value: "false"
532
533     container:
534       image: opensourcemano/osm-krm-functions:testing-daily
535       # imagePullPolicy: Always
536       env:
537       - name: PRIVATE_KEY_NEW_CLUSTER
538         valueFrom:
539           secretKeyRef:
540             name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
541             key: "{{inputs.parameters.key_name_in_secret}}"
542       - name: DEBUG
543         value: "{{inputs.parameters.debug}}"
544       command: ["/app/scripts/entrypoint.sh"]
545       args:
546       - create_bootstrap_for_remote_cluster
547       - "{{inputs.parameters.cluster_name}}"
548       - "{{inputs.parameters.cluster_kustomization_name}}"
549       - "{{inputs.parameters.fleet_repo_dir}}"
550       - "{{inputs.parameters.sw_catalogs_repo_dir}}"
551       - "{{inputs.parameters.fleet_repo_url}}"
552       - "{{inputs.parameters.sw_catalogs_repo_url}}"
553       - "{{inputs.parameters.mgmt_project_name}}"
554       - "{{inputs.parameters.public_key_mgmt}}"
555       - "{{inputs.parameters.public_key_new_cluster}}"
556       - ''
557       - "{{inputs.parameters.imported_cluster}}"
558       volumeMounts:
559       - name: fleet-repo-volume
560         mountPath: '{{inputs.parameters.fleet_mount_path}}'
561       - name: sw-catalogs-repo-volume
562         mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
563     volumes:
564       - name: fleet-repo-volume
565         persistentVolumeClaim:
566           claimName: '{{inputs.parameters.fleet_volume_name}}'
567       - name: sw-catalogs-repo-volume
568         persistentVolumeClaim:
569           claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
570     securityContext:
571       runAsUser: 10000
572     #   runAsGroup: 10000
573     #   fsGroup: 10000
574
575
576   # Disconnect Flux in remote cluster running in **ANY cloud**
577   - name: disconnect-flux-remote-cluster
578     inputs:
579       parameters:
580       # Volumes with cloned repos
581       - name: fleet_volume_name
582       - name: fleet_mount_path
583         value: "/fleet"
584
585       # Specific parameters
586       - name: cluster_kustomization_name
587       - name: mgmt_project_name
588         value: "osm_admin"
589
590       # Other parameters - Recommended to keep defaults
591       - name: fleet_repo_dir
592         value: "/fleet/fleet-osm/"
593
594       # Debug/dry run?
595       - name: debug
596         value: "false"
597
598     container:
599       image: opensourcemano/osm-krm-functions:testing-daily
600       # imagePullPolicy: Always
601       env:
602       - name: DEBUG
603         value: "{{inputs.parameters.debug}}"
604       command: ["/app/scripts/entrypoint.sh"]
605       args:
606       - disconnect_flux_remote_cluster
607       - "{{inputs.parameters.cluster_kustomization_name}}"
608       - "{{inputs.parameters.fleet_repo_dir}}"
609       - "{{inputs.parameters.mgmt_project_name}}"
610       volumeMounts:
611       - name: fleet-repo-volume
612         mountPath: '{{inputs.parameters.fleet_mount_path}}'
613     volumes:
614       - name: fleet-repo-volume
615         persistentVolumeClaim:
616           claimName: '{{inputs.parameters.fleet_volume_name}}'
617     securityContext:
618       runAsUser: 10000
619     #   runAsGroup: 10000
620     #   fsGroup: 10000
621
622
623   # Delete cluster from **ANY** cloud
624   - name: delete-cluster
625     inputs:
626       parameters:
627       # Volumes with cloned repos
628       - name: fleet_volume_name
629       - name: fleet_mount_path
630         value: "/fleet"
631
632       # Specific parameters
633       - name: cluster_kustomization_name
634       - name: project_name
635         value: "osm_admin"
636
637       # Other parameters - Recommended to keep defaults
638       - name: fleet_repo_dir
639         value: "/fleet/fleet-osm/"
640       - name: mgmt_resources_dir
641         value: "{{inputs.parameters.fleet_repo_dir}}/{{inputs.parameters.project_name}}/managed-resources/_management"
642
643     container:
644       image: opensourcemano/osm-krm-functions:testing-daily
645       # imagePullPolicy: Always
646       command: ["/app/scripts/entrypoint.sh"]
647       args:
648       - delete_remote_cluster
649       - "{{inputs.parameters.cluster_kustomization_name}}"
650       - "{{inputs.parameters.project_name}}"
651       - "{{inputs.parameters.fleet_repo_dir}}"
652       - "{{inputs.parameters.mgmt_resources_dir}}"
653
654       volumeMounts:
655       - name: fleet-repo-volume
656         mountPath: '{{inputs.parameters.fleet_mount_path}}'
657     volumes:
658       - name: fleet-repo-volume
659         persistentVolumeClaim:
660           claimName: '{{inputs.parameters.fleet_volume_name}}'
661     securityContext:
662       runAsUser: 10000
663     #   runAsGroup: 10000
664     #   fsGroup: 10000
665
666
667   # Purge and delete cluster from **ANY** cloud
668   - name: purge-delete-cluster
669     inputs:
670       parameters:
671       # Volumes with cloned repos
672       - name: fleet_volume_name
673       - name: fleet_mount_path
674         value: "/fleet"
675
676       # Specific parameters
677       - name: cluster_kustomization_name
678       - name: project_name
679         value: "osm_admin"
680
681       # Is a purge needed before deleting?
682       - name: purge
683         value: "true"
684       ## Secret where the kubeconfig is stored (may not exist)
685       - name: temp_kubeconfig_secret_name
686         valueFrom:
687           expression: "kubeconfig-{{inputs.parameters.cluster_kustomization_name}}"
688
689       # Other parameters - Recommended to keep defaults
690       - name: temp_kubeconfig_secret_key
691         value: "kubeconfig"
692       - name: fleet_repo_dir
693         value: "/fleet/fleet-osm/"
694       - name: mgmt_resources_dir
695         value: "{{inputs.parameters.fleet_repo_dir}}/{{inputs.parameters.project_name}}/managed-resources/_management"
696
697     container:
698       image: opensourcemano/osm-krm-functions:testing-daily
699       # imagePullPolicy: Always
700       command: ["/app/scripts/entrypoint.sh"]
701       args:
702       - delete_remote_cluster
703       - "{{inputs.parameters.cluster_kustomization_name}}"
704       - "{{inputs.parameters.project_name}}"
705       - "{{inputs.parameters.fleet_repo_dir}}"
706       - "{{inputs.parameters.mgmt_resources_dir}}"
707       - ''
708       - ''
709       - ''
710       - ''
711       - ''
712       - "{{inputs.parameters.purge}}"
713
714       volumeMounts:
715       - name: fleet-repo-volume
716         mountPath: '{{inputs.parameters.fleet_mount_path}}'
717       - name: kubeconfig-volume
718         mountPath: '/app/.kube'
719     volumes:
720       - name: fleet-repo-volume
721         persistentVolumeClaim:
722           claimName: '{{inputs.parameters.fleet_volume_name}}'
723       - name: kubeconfig-volume
724         secret:
725           secretName: '{{inputs.parameters.temp_kubeconfig_secret_name}}'
726           optional: true
727           items:
728             - key: '{{inputs.parameters.temp_kubeconfig_secret_key}}'
729               path: 'config'
730     securityContext:
731       fsGroup: 10000
732       # runAsUser: 10000
733       # runAsGroup: 10000