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: cluster-management-wft
22 namespace: osm-workflows
26 # Create a PaaS cluster using CrossPlane (any cloud)
27 - name: create-crossplane-cluster
30 # Volumes with cloned repos
31 - name: fleet_volume_name
32 - name: fleet_mount_path
34 - name: sw_catalogs_volume_name
35 - name: sw_catalogs_mount_path
39 - name: cluster_kustomization_name
41 ## As of today, one among `aks`, `eks` or `gke`:
43 - name: providerconfig_name
46 - name: cluster_location
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
53 - name: fleet_repo_url
54 - name: sw_catalogs_repo_url
55 - name: mgmt_project_name
57 ## Do we want to skip OSM's bootstrap?
58 - name: skip_bootstrap
60 ## AKS only (otherwise, empty)
63 ## GKE only (otherwise, empty)
64 - name: preemptible_nodes
66 # Other parameters - Recommended to keep defaults
67 - name: mgmt_cluster_name
69 - name: base_templates_path
70 value: "cloud-resources"
71 - name: cloned_fleet_folder_name
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
85 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
86 # imagePullPolicy: Always
88 - name: PRIVATE_KEY_NEW_CLUSTER
91 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
92 key: "{{inputs.parameters.key_name_in_secret}}"
94 value: "{{inputs.parameters.debug}}"
95 command: ["/app/scripts/entrypoint.sh"]
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}}"
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}}"
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}}'
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}}'
142 # Update a PaaS cluster created using CrossPlane (any cloud)
143 - name: update-crossplane-cluster
146 # Volumes with cloned repos
147 - name: fleet_volume_name
148 - name: fleet_mount_path
150 - name: sw_catalogs_volume_name
151 - name: sw_catalogs_mount_path
152 value: "/sw-catalogs"
154 # Specific parameters
155 - name: cluster_kustomization_name
157 ## As of today, one among `aks`, `eks` or `gke`:
159 - name: providerconfig_name
162 - name: cluster_location
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
169 - name: fleet_repo_url
170 - name: sw_catalogs_repo_url
171 - name: mgmt_project_name
173 ## AKS only (otherwise, empty)
176 ## GKE only (otherwise, empty)
177 - name: preemptible_nodes
179 # Other parameters - Recommended to keep defaults
180 - name: mgmt_cluster_name
182 - name: base_templates_path
183 value: "cloud-resources"
184 - name: cloned_fleet_folder_name
186 - name: cloned_sw_catalogs_folder_name
187 value: "sw-catalogs-osm"
193 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
194 # imagePullPolicy: Always
196 - name: PRIVATE_KEY_NEW_CLUSTER
199 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
200 key: "{{inputs.parameters.key_name_in_secret}}"
202 value: "{{inputs.parameters.debug}}"
203 command: ["/app/scripts/entrypoint.sh"]
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}}"
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:
225 - "{{inputs.parameters.mgmt_project_name}}"
226 - "{{inputs.parameters.mgmt_cluster_name}}"
227 - "{{inputs.parameters.base_templates_path}}"
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}}'
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}}'
247 # Create a PaaS cluster using CAPI (Openstack)
248 - name: create-capi-openstack-cluster
251 # Volumes with cloned repos
252 - name: fleet_volume_name
253 - name: fleet_mount_path
255 - name: sw_catalogs_volume_name
256 - name: sw_catalogs_mount_path
257 value: "/sw-catalogs"
258 # Specific parameters
259 - name: cluster_kustomization_name
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
270 - name: fleet_repo_url
271 - name: sw_catalogs_repo_url
272 - name: mgmt_project_name
274 ## CAPI and CAPI Openstack specific parameters
275 - name: control_plane_vm_size
277 - name: control_plane_node_count
279 - name: openstack_dns_nameservers
281 - name: openstack_external_network_id
283 - name: openstack_failure_domain
285 - name: openstack_ssh_key_name
289 - name: openstack_worker_image_name
291 - name: openstack_control_plane_image_name
293 - name: capo_resources_namespace
294 value: "managed-resources"
295 ## Do we want to skip OSM's bootstrap?
296 - name: skip_bootstrap
298 # Other parameters - Recommended to keep defaults
299 - name: mgmt_cluster_name
301 - name: base_templates_path
302 value: "cloud-resources/capi"
303 - name: cloned_fleet_folder_name
305 - name: cloned_sw_catalogs_folder_name
306 value: "sw-catalogs-osm"
312 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
313 # imagePullPolicy: Always
315 - name: PRIVATE_KEY_NEW_CLUSTER
318 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
319 key: "{{inputs.parameters.key_name_in_secret}}"
321 value: "{{inputs.parameters.debug}}"
322 command: ["/app/scripts/entrypoint.sh"]
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}}"
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}}'
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}}'
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}}'
371 # Update a PaaS cluster created using CAPI (Openstack)
372 - name: update-capi-openstack-cluster
375 # Volumes with cloned repos
376 - name: fleet_volume_name
377 - name: fleet_mount_path
379 - name: sw_catalogs_volume_name
380 - name: sw_catalogs_mount_path
381 value: "/sw-catalogs"
382 # Specific parameters
383 - name: cluster_kustomization_name
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
394 - name: fleet_repo_url
395 - name: sw_catalogs_repo_url
396 - name: mgmt_project_name
398 ## CAPI and CAPI Openstack specific parameters
399 - name: control_plane_vm_size
401 - name: control_plane_node_count
403 - name: openstack_dns_nameservers
405 - name: openstack_external_network_id
407 - name: openstack_failure_domain
409 - name: openstack_ssh_key_name
413 - name: openstack_worker_image_name
415 - name: openstack_control_plane_image_name
417 - name: capo_resources_namespace
418 value: "managed-resources"
419 # Other parameters - Recommended to keep defaults
420 - name: mgmt_cluster_name
422 - name: base_templates_path
423 value: "cloud-resources/capi"
424 - name: cloned_fleet_folder_name
426 - name: cloned_sw_catalogs_folder_name
427 value: "sw-catalogs-osm"
433 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
434 # imagePullPolicy: Always
436 - name: PRIVATE_KEY_NEW_CLUSTER
439 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
440 key: "{{inputs.parameters.key_name_in_secret}}"
442 value: "{{inputs.parameters.debug}}"
443 command: ["/app/scripts/entrypoint.sh"]
445 - update_capi_openstack_cluster
446 - "{{inputs.parameters.cluster_kustomization_name}}"
447 - "{{inputs.parameters.cluster_name}}"
448 - "{{inputs.parameters.vm_size}}"
449 - "{{inputs.parameters.control_plane_vm_size}}"
450 - "{{inputs.parameters.node_count}}"
451 - "{{inputs.parameters.control_plane_node_count}}"
452 - "{{inputs.parameters.k8s_version}}"
453 - "{{inputs.parameters.providerconfig_name}}"
454 - "{{inputs.parameters.openstack_dns_nameservers}}"
455 - "{{inputs.parameters.openstack_external_network_id}}"
456 - "{{inputs.parameters.openstack_failure_domain}}"
457 - "{{inputs.parameters.openstack_ssh_key_name}}"
458 - "{{inputs.parameters.cluster_cni}}"
459 - "{{inputs.parameters.openstack_worker_image_name}}"
460 - "{{inputs.parameters.openstack_control_plane_image_name}}"
461 - "{{inputs.parameters.public_key_mgmt}}"
462 - "{{inputs.parameters.public_key_new_cluster}}"
464 - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
465 - "{{inputs.parameters.fleet_repo_url}}"
466 - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
467 - "{{inputs.parameters.sw_catalogs_repo_url}}"
468 ## Note that during upgrades, OSM's bootstrap is avoided:
470 - "{{inputs.parameters.mgmt_project_name}}"
471 - "{{inputs.parameters.mgmt_cluster_name}}"
472 - "{{inputs.parameters.base_templates_path}}"
473 - '{{inputs.parameters.capo_resources_namespace}}'
476 - name: fleet-repo-volume
477 mountPath: '{{inputs.parameters.fleet_mount_path}}'
478 - name: sw-catalogs-repo-volume
479 mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
481 - name: fleet-repo-volume
482 persistentVolumeClaim:
483 claimName: '{{inputs.parameters.fleet_volume_name}}'
484 - name: sw-catalogs-repo-volume
485 persistentVolumeClaim:
486 claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
493 # Create a PaaS Openshift cluster using ACM
494 - name: create-openshift-cluster
497 # Volumes with cloned repos
498 - name: fleet_volume_name
499 - name: fleet_mount_path
501 - name: sw_catalogs_volume_name
502 - name: sw_catalogs_mount_path
503 value: "/sw-catalogs"
504 # Specific parameters
505 - name: cluster_kustomization_name
510 - name: providerconfig_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
516 - name: fleet_repo_url
517 - name: sw_catalogs_repo_url
518 - name: mgmt_project_name
520 ## Openshift specific parameters
521 - name: openshift_release
522 - name: infra_public_ssh_key
523 - name: control_plane_availability
525 - name: worker_memory
526 - name: worker_volume_size
527 - name: worker_storage_class
529 - name: mgmt_cluster_name
530 - name: hosted_clusters_project
531 - name: etcd_volume_size
532 ## Do we want to skip OSM's bootstrap?
533 - name: skip_bootstrap
535 # Other parameters - Recommended to keep defaults
536 - name: base_templates_path
537 value: "cloud-resources/capi"
538 - name: cloned_fleet_folder_name
540 - name: cloned_sw_catalogs_folder_name
541 value: "sw-catalogs-osm"
547 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
548 # imagePullPolicy: Always
550 - name: PRIVATE_KEY_NEW_CLUSTER
553 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
554 key: "{{inputs.parameters.key_name_in_secret}}"
556 value: "{{inputs.parameters.debug}}"
557 command: ["/app/scripts/entrypoint.sh"]
559 - create_openshift_cluster
560 - "{{inputs.parameters.cluster_kustomization_name}}"
561 - "{{inputs.parameters.cluster_name}}"
562 - "{{inputs.parameters.k8s_version}}"
563 - "{{inputs.parameters.public_key_mgmt}}"
564 - "{{inputs.parameters.public_key_new_cluster}}"
566 - "{{inputs.parameters.openshift_release}}"
567 - "{{inputs.parameters.infra_public_ssh_key}}"
568 - "{{inputs.parameters.control_plane_availability}}"
569 - "{{inputs.parameters.node_count}}"
570 - "{{inputs.parameters.worker_cpu}}"
571 - "{{inputs.parameters.worker_memory}}"
572 - "{{inputs.parameters.worker_volume_size}}"
573 - "{{inputs.parameters.worker_storage_class}}"
574 - "{{inputs.parameters.base_domain}}"
575 - "{{inputs.parameters.mgmt_cluster_name}}"
576 - "{{inputs.parameters.hosted_clusters_project}}"
577 - "{{inputs.parameters.etcd_volume_size}}"
578 - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
579 - "{{inputs.parameters.fleet_repo_url}}"
580 - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
581 - "{{inputs.parameters.sw_catalogs_repo_url}}"
582 - "{{inputs.parameters.skip_bootstrap}}"
583 - "{{inputs.parameters.mgmt_project_name}}"
584 - "{{inputs.parameters.base_templates_path}}"
589 - name: fleet-repo-volume
590 mountPath: '{{inputs.parameters.fleet_mount_path}}'
591 - name: sw-catalogs-repo-volume
592 mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
594 - name: fleet-repo-volume
595 persistentVolumeClaim:
596 claimName: '{{inputs.parameters.fleet_volume_name}}'
597 - name: sw-catalogs-repo-volume
598 persistentVolumeClaim:
599 claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
606 # Update a PaaS cluster created using CAPI (Openstack)
607 - name: update-openshift-cluster
610 # Volumes with cloned repos
611 - name: fleet_volume_name
612 - name: fleet_mount_path
614 - name: sw_catalogs_volume_name
615 - name: sw_catalogs_mount_path
616 value: "/sw-catalogs"
617 # Specific parameters
618 - name: cluster_kustomization_name
623 - name: providerconfig_name
624 - name: public_key_mgmt
625 - name: public_key_new_cluster
626 - name: secret_name_private_age_key_for_new_cluster
627 - name: key_name_in_secret
629 - name: fleet_repo_url
630 - name: sw_catalogs_repo_url
631 - name: mgmt_project_name
633 ## Openshift specific parameters
634 - name: openshift_release
635 - name: infra_public_ssh_key
636 - name: control_plane_availability
638 - name: worker_memory
639 - name: worker_volume_size
640 - name: worker_storage_class
642 - name: mgmt_cluster_name
643 - name: hosted_clusters_project
644 - name: etcd_volume_size
645 # Other parameters - Recommended to keep defaults
646 - name: base_templates_path
647 value: "cloud-resources/capi"
648 - name: cloned_fleet_folder_name
650 - name: cloned_sw_catalogs_folder_name
651 value: "sw-catalogs-osm"
657 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
658 # imagePullPolicy: Always
660 - name: PRIVATE_KEY_NEW_CLUSTER
663 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
664 key: "{{inputs.parameters.key_name_in_secret}}"
666 value: "{{inputs.parameters.debug}}"
667 command: ["/app/scripts/entrypoint.sh"]
669 - update_openshift_cluster
670 - "{{inputs.parameters.cluster_kustomization_name}}"
671 - "{{inputs.parameters.cluster_name}}"
672 - "{{inputs.parameters.k8s_version}}"
673 - "{{inputs.parameters.public_key_mgmt}}"
674 - "{{inputs.parameters.public_key_new_cluster}}"
676 - "{{inputs.parameters.openshift_release}}"
677 - "{{inputs.parameters.infra_public_ssh_key}}"
678 - "{{inputs.parameters.control_plane_availability}}"
679 - "{{inputs.parameters.node_count}}"
680 - "{{inputs.parameters.worker_cpu}}"
681 - "{{inputs.parameters.worker_memory}}"
682 - "{{inputs.parameters.worker_volume_size}}"
683 - "{{inputs.parameters.worker_storage_class}}"
684 - "{{inputs.parameters.base_domain}}"
685 - "{{inputs.parameters.mgmt_cluster_name}}"
686 - "{{inputs.parameters.hosted_clusters_project}}"
687 - "{{inputs.parameters.etcd_volume_size}}"
688 - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
689 - "{{inputs.parameters.fleet_repo_url}}"
690 - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
691 - "{{inputs.parameters.sw_catalogs_repo_url}}"
692 ## Note that during upgrades, OSM's bootstrap is avoided:
694 - "{{inputs.parameters.mgmt_project_name}}"
695 - "{{inputs.parameters.base_templates_path}}"
699 - name: fleet-repo-volume
700 mountPath: '{{inputs.parameters.fleet_mount_path}}'
701 - name: sw-catalogs-repo-volume
702 mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
704 - name: fleet-repo-volume
705 persistentVolumeClaim:
706 claimName: '{{inputs.parameters.fleet_volume_name}}'
707 - name: sw-catalogs-repo-volume
708 persistentVolumeClaim:
709 claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
716 # Bootstrap remote cluster running in **ANY cloud**
717 - name: bootstrap-remote-cluster
720 # Volumes with cloned repos
721 - name: fleet_volume_name
722 - name: fleet_mount_path
724 - name: sw_catalogs_volume_name
725 - name: sw_catalogs_mount_path
726 value: "/sw-catalogs"
728 # Specific parameters
730 - name: cluster_kustomization_name
731 - name: public_key_mgmt
732 - name: public_key_new_cluster
733 - name: secret_name_private_age_key_for_new_cluster
734 - name: key_name_in_secret
736 - name: fleet_repo_url
737 - name: sw_catalogs_repo_url
739 # Other parameters - Recommended to keep defaults
740 - name: mgmt_project_name
742 - name: imported_cluster
744 - name: fleet_repo_dir
745 value: "/fleet/fleet-osm/"
746 - name: sw_catalogs_repo_dir
747 value: "/sw-catalogs/sw-catalogs-osm/"
754 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
755 # imagePullPolicy: Always
757 - name: PRIVATE_KEY_NEW_CLUSTER
760 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
761 key: "{{inputs.parameters.key_name_in_secret}}"
763 value: "{{inputs.parameters.debug}}"
764 command: ["/app/scripts/entrypoint.sh"]
766 - create_bootstrap_for_remote_cluster
767 - "{{inputs.parameters.cluster_name}}"
768 - "{{inputs.parameters.cluster_kustomization_name}}"
769 - "{{inputs.parameters.fleet_repo_dir}}"
770 - "{{inputs.parameters.sw_catalogs_repo_dir}}"
771 - "{{inputs.parameters.fleet_repo_url}}"
772 - "{{inputs.parameters.sw_catalogs_repo_url}}"
773 - "{{inputs.parameters.mgmt_project_name}}"
774 - "{{inputs.parameters.public_key_mgmt}}"
775 - "{{inputs.parameters.public_key_new_cluster}}"
777 - "{{inputs.parameters.imported_cluster}}"
779 - name: fleet-repo-volume
780 mountPath: '{{inputs.parameters.fleet_mount_path}}'
781 - name: sw-catalogs-repo-volume
782 mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
784 - name: fleet-repo-volume
785 persistentVolumeClaim:
786 claimName: '{{inputs.parameters.fleet_volume_name}}'
787 - name: sw-catalogs-repo-volume
788 persistentVolumeClaim:
789 claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
796 # Disconnect Flux in remote cluster running in **ANY cloud**
797 - name: disconnect-flux-remote-cluster
800 # Volumes with cloned repos
801 - name: fleet_volume_name
802 - name: fleet_mount_path
805 # Specific parameters
806 - name: cluster_kustomization_name
807 - name: mgmt_project_name
810 # Other parameters - Recommended to keep defaults
811 - name: fleet_repo_dir
812 value: "/fleet/fleet-osm/"
819 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
820 # imagePullPolicy: Always
823 value: "{{inputs.parameters.debug}}"
824 command: ["/app/scripts/entrypoint.sh"]
826 - disconnect_flux_remote_cluster
827 - "{{inputs.parameters.cluster_kustomization_name}}"
828 - "{{inputs.parameters.fleet_repo_dir}}"
829 - "{{inputs.parameters.mgmt_project_name}}"
831 - name: fleet-repo-volume
832 mountPath: '{{inputs.parameters.fleet_mount_path}}'
834 - name: fleet-repo-volume
835 persistentVolumeClaim:
836 claimName: '{{inputs.parameters.fleet_volume_name}}'
843 # Delete cluster from **ANY** cloud
844 - name: delete-cluster
847 # Volumes with cloned repos
848 - name: fleet_volume_name
849 - name: fleet_mount_path
852 # Specific parameters
853 - name: cluster_kustomization_name
857 # Other parameters - Recommended to keep defaults
858 - name: fleet_repo_dir
859 value: "/fleet/fleet-osm/"
860 - name: mgmt_resources_dir
861 value: "{{inputs.parameters.fleet_repo_dir}}/{{inputs.parameters.project_name}}/managed-resources/_management"
862 - name: mgmt_cluster_name
863 value: "{{inputs.parameters.mgmt_cluster_name}}"
866 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
867 # imagePullPolicy: Always
868 command: ["/app/scripts/entrypoint.sh"]
870 - delete_remote_cluster
871 - "{{inputs.parameters.cluster_kustomization_name}}"
872 - "{{inputs.parameters.project_name}}"
873 - "{{inputs.parameters.fleet_repo_dir}}"
874 - "{{inputs.parameters.mgmt_resources_dir}}"
875 - "{{inputs.parameters.mgmt_cluster_name}}"
878 - name: fleet-repo-volume
879 mountPath: '{{inputs.parameters.fleet_mount_path}}'
881 - name: fleet-repo-volume
882 persistentVolumeClaim:
883 claimName: '{{inputs.parameters.fleet_volume_name}}'
890 # Purge and delete cluster from **ANY** cloud
891 - name: purge-delete-cluster
894 # Volumes with cloned repos
895 - name: fleet_volume_name
896 - name: fleet_mount_path
899 # Specific parameters
900 - name: cluster_kustomization_name
903 - name: mgmt_cluster_name
904 value: "{{inputs.parameters.mgmt_cluster_name}}"
906 # Is a purge needed before deleting?
909 ## Secret where the kubeconfig is stored (may not exist)
910 - name: temp_kubeconfig_secret_name
912 expression: "kubeconfig-{{inputs.parameters.cluster_kustomization_name}}"
914 # Other parameters - Recommended to keep defaults
915 - name: temp_kubeconfig_secret_key
917 - name: fleet_repo_dir
918 value: "/fleet/fleet-osm/"
919 - name: mgmt_resources_dir
920 value: "{{inputs.parameters.fleet_repo_dir}}/{{inputs.parameters.project_name}}/managed-resources/_management"
923 image: opensourcemano/osm-krm-functions:releaseeighteen-daily
924 # imagePullPolicy: Always
925 command: ["/app/scripts/entrypoint.sh"]
927 - delete_remote_cluster
928 - "{{inputs.parameters.cluster_kustomization_name}}"
929 - "{{inputs.parameters.project_name}}"
930 - "{{inputs.parameters.fleet_repo_dir}}"
931 - "{{inputs.parameters.mgmt_resources_dir}}"
932 - "{{inputs.parameters.mgmt_cluster_name}}"
938 - "{{inputs.parameters.purge}}"
941 - name: fleet-repo-volume
942 mountPath: '{{inputs.parameters.fleet_mount_path}}'
943 - name: kubeconfig-volume
944 mountPath: '/app/.kube'
946 - name: fleet-repo-volume
947 persistentVolumeClaim:
948 claimName: '{{inputs.parameters.fleet_volume_name}}'
949 - name: kubeconfig-volume
951 secretName: '{{inputs.parameters.temp_kubeconfig_secret_name}}'
954 - key: '{{inputs.parameters.temp_kubeconfig_secret_key}}'