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: nodegroup-management-wft
22 namespace: osm-workflows
26 # Create a nodegroup in AWS
27 - name: create-nodegroup
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: nodegroup_name
40 - name: nodegroup_kustomization_name
43 - name: providerconfig_name
46 - name: cluster_location
47 - name: configmap_name
49 - name: public_key_mgmt
50 - name: public_key_new_cluster
51 - name: secret_name_private_age_key_for_new_cluster
52 - name: key_name_in_secret
54 - name: fleet_repo_url
55 - name: sw_catalogs_repo_url
56 - name: mgmt_project_name
58 ## Do we want to skip OSM's bootstrap?
59 - name: skip_bootstrap
61 ## AKS only (otherwise, empty)
64 ## GKE only (otherwise, empty)
65 - name: preemptible_nodes
67 # Other parameters - Recommended to keep defaults
68 - name: mgmt_cluster_name
70 - name: base_templates_path
71 value: "cloud-resources"
72 - name: cloned_fleet_folder_name
74 - name: cloned_sw_catalogs_folder_name
75 value: "sw-catalogs-osm"
81 image: opensourcemano/osm-krm-functions:testing-daily
82 # imagePullPolicy: Always
84 - name: PRIVATE_KEY_NEW_CLUSTER
87 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
88 key: "{{inputs.parameters.key_name_in_secret}}"
90 value: "{{inputs.parameters.debug}}"
91 command: ["/app/scripts/entrypoint.sh"]
94 - "{{inputs.parameters.nodegroup_name}}"
95 - "{{inputs.parameters.nodegroup_kustomization_name}}"
96 - "{{inputs.parameters.cluster_name}}"
97 - "{{inputs.parameters.cluster_type}}"
98 - "{{inputs.parameters.providerconfig_name}}"
99 - "{{inputs.parameters.vm_size}}"
100 - "{{inputs.parameters.node_count}}"
101 - "{{inputs.parameters.cluster_location}}"
102 - "{{inputs.parameters.configmap_name}}"
103 - "{{inputs.parameters.role}}"
104 - "{{inputs.parameters.public_key_mgmt}}"
105 - "{{inputs.parameters.public_key_new_cluster}}"
107 - "{{inputs.parameters.rg_name}}"
108 - "{{inputs.parameters.preemptible_nodes}}"
109 - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
110 - "{{inputs.parameters.fleet_repo_url}}"
111 - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
112 - "{{inputs.parameters.sw_catalogs_repo_url}}"
113 - "{{inputs.parameters.skip_bootstrap}}"
114 - "{{inputs.parameters.mgmt_project_name}}"
115 - "{{inputs.parameters.mgmt_cluster_name}}"
116 - "{{inputs.parameters.base_templates_path}}"
119 - name: fleet-repo-volume
120 mountPath: '{{inputs.parameters.fleet_mount_path}}'
121 - name: sw-catalogs-repo-volume
122 mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
124 - name: fleet-repo-volume
125 persistentVolumeClaim:
126 claimName: '{{inputs.parameters.fleet_volume_name}}'
127 - name: sw-catalogs-repo-volume
128 persistentVolumeClaim:
129 claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
135 - name: scale-nodegroup
138 # Volumes with cloned repos
139 - name: fleet_volume_name
140 - name: fleet_mount_path
142 - name: sw_catalogs_volume_name
143 - name: sw_catalogs_mount_path
144 value: "/sw-catalogs"
146 # Specific parameters
147 - name: nodegroup_name
148 - name: nodegroup_kustomization_name
152 - name: public_key_mgmt
153 - name: public_key_new_cluster
154 - name: secret_name_private_age_key_for_new_cluster
155 - name: key_name_in_secret
157 - name: fleet_repo_url
158 - name: sw_catalogs_repo_url
159 - name: mgmt_project_name
161 # Other parameters - Recommended to keep defaults
162 - name: mgmt_cluster_name
164 - name: base_templates_path
165 value: "cloud-resources"
166 - name: cloned_fleet_folder_name
168 - name: cloned_sw_catalogs_folder_name
169 value: "sw-catalogs-osm"
175 image: opensourcemano/osm-krm-functions:testing-daily
176 # imagePullPolicy: Always
178 - name: PRIVATE_KEY_NEW_CLUSTER
181 name: "{{inputs.parameters.secret_name_private_age_key_for_new_cluster}}"
182 key: "{{inputs.parameters.key_name_in_secret}}"
184 value: "{{inputs.parameters.debug}}"
185 command: ["/app/scripts/entrypoint.sh"]
188 - "{{inputs.parameters.nodegroup_name}}"
189 - "{{inputs.parameters.nodegroup_kustomization_name}}"
190 - "{{inputs.parameters.cluster_name}}"
191 - "{{inputs.parameters.cluster_type}}"
192 - "{{inputs.parameters.node_count}}"
193 - "{{inputs.parameters.public_key_mgmt}}"
194 - "{{inputs.parameters.public_key_new_cluster}}"
196 - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}"
197 - "{{inputs.parameters.fleet_repo_url}}"
198 - "{{inputs.parameters.sw_catalogs_mount_path}}/{{inputs.parameters.cloned_sw_catalogs_folder_name}}"
199 - "{{inputs.parameters.sw_catalogs_repo_url}}"
200 - "{{inputs.parameters.mgmt_project_name}}"
201 - "{{inputs.parameters.mgmt_cluster_name}}"
202 - "{{inputs.parameters.base_templates_path}}"
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}}'
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}}'
221 # Delete nodegroup from **ANY** cluster
222 - name: delete-nodegroup
225 # Volumes with cloned repos
226 - name: fleet_volume_name
227 - name: fleet_mount_path
230 # Specific parameters
231 - name: nodegroup_kustomization_name
236 # Other parameters - Recommended to keep defaults
237 - name: fleet_repo_dir
238 value: "/fleet/fleet-osm/"
239 - name: mgmt_resources_dir
240 value: "{{inputs.parameters.fleet_repo_dir}}/{{inputs.parameters.project_name}}/managed-resources/_management"
243 image: opensourcemano/osm-krm-functions:testing-daily
244 # imagePullPolicy: Always
245 command: ["/app/scripts/entrypoint.sh"]
248 - "{{inputs.parameters.nodegroup_kustomization_name}}"
249 - "{{inputs.parameters.cluster_name}}"
250 - "{{inputs.parameters.project_name}}"
251 - "{{inputs.parameters.fleet_repo_dir}}"
252 - "{{inputs.parameters.mgmt_resources_dir}}"
255 - name: fleet-repo-volume
256 mountPath: '{{inputs.parameters.fleet_mount_path}}'
258 - name: fleet-repo-volume
259 persistentVolumeClaim:
260 claimName: '{{inputs.parameters.fleet_volume_name}}'