84f30b31396a1a0a655a94c1e01423d1a25f3ca7
[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: full-delete-cluster-wft
22   namespace: osm-workflows
23
24 spec:
25   arguments:
26     parameters:
27
28     # Fleet repo
29     - name: git_fleet_url
30     - name: fleet_destination_folder
31     - name: git_fleet_cred_secret
32
33     # Specific parameters
34     - name: cluster_kustomization_name
35     - name: project_name
36       value: "osm_admin"
37     - name: mgmt_cluster_name
38       value: ""
39
40     # Debugging
41     - name: dry_run
42       value: false
43
44
45   # # Cleanup policy
46   # ttlStrategy:
47   #   secondsAfterCompletion: 100 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
48   #   secondsAfterSuccess: 50     # Time to live after workflow is successful
49   #   secondsAfterFailure: 50     # Time to live after workflow fails
50
51   entrypoint: delete-cluster
52
53   templates:
54
55   # Main template
56   - name: delete-cluster
57     inputs:
58       parameters:
59       # Git repos
60       - name: git_fleet_url
61       - name: fleet_destination_folder
62       - name: git_fleet_cred_secret
63
64       # Specific parameters
65       - name: cluster_kustomization_name
66       - name: project_name
67       - name: mgmt_cluster_name
68
69       # Debugging
70       - name: dry_run
71
72     steps:
73
74     # ------ Preparations for transaction
75     - - name: generate-fleet-volume-repo
76         templateRef:
77           name: k8s-resources-wft
78           template: generate-volume
79         arguments:
80           parameters:
81             - name: pvc-size
82               value: '100Mi'
83     - - name: clone-fleet
84         templateRef:
85           name: git-wft
86           template: git-clone
87         arguments:
88           parameters:
89           - name: mount_path
90             value: "/fleet"
91           - name: repo_url
92             value: "{{inputs.parameters.git_fleet_url}}"
93           - name: destination_folder
94             value: "{{inputs.parameters.fleet_destination_folder}}"
95           - name: git_cred_secret
96             value: "{{inputs.parameters.git_fleet_cred_secret}}"
97           - name: git_volume_name
98             value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
99     # ------ end of preparations for transaction
100
101     # ------ Transformations
102     - - name: delete-cluster
103         templateRef:
104           name: cluster-management-wft
105           template: delete-cluster
106         arguments:
107           parameters:
108           # Volumes with cloned repos
109           - name: fleet_volume_name
110             value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
111           - name: fleet_mount_path
112             value: "/fleet"
113           # Specific parameters
114           - name: cluster_kustomization_name
115             value: "{{inputs.parameters.cluster_kustomization_name}}"
116           - name: project_name
117             value: "{{inputs.parameters.project_name}}"
118           - name: mgmt_cluster_name
119             value: "{{inputs.parameters.mgmt_cluster_name}}"
120     # ------ end of transformations
121
122     # ------ Commit transaction
123     - - name: push-to-fleet
124         templateRef:
125           name: git-wft
126           template: git-commit-merge-push
127         arguments:
128           parameters:
129           - name: mount_path
130             value: "/fleet"
131           - name: repo_folder
132             value: "{{inputs.parameters.fleet_destination_folder}}"
133           - name: git_cred_secret
134             value: "{{inputs.parameters.git_fleet_cred_secret}}"
135           - name: git_volume_name
136             value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
137           - name: commit_message
138             value: "Delete cluster {{inputs.parameters.cluster_kustomization_name}}"
139           - name: main_branch
140             value: main
141           - name: contrib_branch
142             value: osm_contrib
143           - name: dry_run
144             value: "{{inputs.parameters.dry_run}}"
145 # ------ end of commit transaction