--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+
+apiVersion: argoproj.io/v1alpha1
+kind: WorkflowTemplate
+metadata:
+ name: capi-cloud-configs-wft
+ namespace: osm-workflows
+spec:
+ templates:
+
+ # Create a CloudConfig for CAPI OpenStack provider
+ - name: create-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Volumes with cloned repos
+ - name: fleet_volume_name
+ - name: fleet_mount_path
+ value: "/fleet"
+ - name: sw_catalogs_volume_name
+ - name: sw_catalogs_mount_path
+ value: "/sw-catalogs"
+
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ - name: openstack_clouds_yaml_secret_key
+ - name: openstack_cacert_secret_name
+ - name: openstack_cacert_secret_key
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ - name: openstack_credentials_secret_key
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ # Debug?
+ - name: debug
+ value: "false"
+
+ # Other parameters - Do not touch
+ - name: mgmt_cluster_name
+ value: "_management"
+ - name: base_templates_path
+ value: "cloud-resources"
+ - name: cloned_fleet_folder_name
+ value: "fleet-osm"
+ - name: cloned_sw_catalogs_folder_name
+ value: "sw-catalogs-osm"
+
+ container:
+ image: opensourcemano/osm-krm-functions:testing-daily
+ # imagePullPolicy: Always
+ env:
+ - name: OPENSTACK_CLOUDS_YAML
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
+ key: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
+ default: ""
+ - name: OPENSTACK_CACERT
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_cacert_secret_name}}"
+ key: "{{inputs.parameters.openstack_cacert_secret_key}}"
+ default: ""
+ - name: OS_AUTH_URL
+ value: "{{inputs.parameters.os_auth_url}}"
+ - name: OS_REGION_NAME
+ value: "{{inputs.parameters.os_region_name}}"
+ - name: OS_USERNAME
+ value: "{{inputs.parameters.os_username}}"
+ - name: OS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_credentials_secret_name}}"
+ key: "{{inputs.parameters.openstack_credentials_secret_key}}"
+ default: ""
+ - name: OS_PROJECT_ID
+ value: "{{inputs.parameters.os_project_id}}"
+ - name: OS_PROJECT_DOMAIN_ID
+ value: "{{inputs.parameters.os_project_domain_id}}"
+ - name: DEBUG
+ value: "{{inputs.parameters.debug}}"
+ command: ["/app/scripts/entrypoint.sh"]
+ args:
+ - create_capi_openstack_cloudconf
+ - "{{inputs.parameters.openstack_cloud_name}}"
+ - "{{inputs.parameters.age_public_key_mgmt}}"
+ - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
+ volumeMounts:
+ - name: fleet-repo-volume
+ mountPath: '{{inputs.parameters.fleet_mount_path}}'
+ - name: sw-catalogs-repo-volume
+ mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
+ volumes:
+ - name: fleet-repo-volume
+ persistentVolumeClaim:
+ claimName: '{{inputs.parameters.fleet_volume_name}}'
+ - name: sw-catalogs-repo-volume
+ persistentVolumeClaim:
+ claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
+ securityContext:
+ fsGroup: 10000
+
+
+ # Update a CloudConfig for CAPI OpenStack provider
+ - name: update-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Volumes with cloned repos
+ - name: fleet_volume_name
+ - name: fleet_mount_path
+ value: "/fleet"
+ - name: sw_catalogs_volume_name
+ - name: sw_catalogs_mount_path
+ value: "/sw-catalogs"
+
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ - name: openstack_clouds_yaml_secret_key
+ - name: openstack_cacert_secret_name
+ - name: openstack_cacert_secret_key
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ - name: openstack_credentials_secret_key
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ # Debug?
+ - name: debug
+ value: "false"
+
+ # Other parameters - Do not touch
+ - name: mgmt_cluster_name
+ value: "_management"
+ - name: base_templates_path
+ value: "cloud-resources"
+ - name: cloned_fleet_folder_name
+ value: "fleet-osm"
+ - name: cloned_sw_catalogs_folder_name
+ value: "sw-catalogs-osm"
+
+ container:
+ image: opensourcemano/osm-krm-functions:testing-daily
+ # imagePullPolicy: Always
+ env:
+ - name: OPENSTACK_CLOUDS_YAML
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
+ key: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
+ default: ""
+ - name: OPENSTACK_CACERT
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_cacert_secret_name}}"
+ key: "{{inputs.parameters.openstack_cacert_secret_key}}"
+ default: ""
+ - name: OS_AUTH_URL
+ value: "{{inputs.parameters.os_auth_url}}"
+ - name: OS_REGION_NAME
+ value: "{{inputs.parameters.os_region_name}}"
+ - name: OS_USERNAME
+ value: "{{inputs.parameters.os_username}}"
+ - name: OS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: "{{inputs.parameters.openstack_credentials_secret_name}}"
+ key: "{{inputs.parameters.openstack_credentials_secret_key}}"
+ default: ""
+ - name: OS_PROJECT_ID
+ value: "{{inputs.parameters.os_project_id}}"
+ - name: OS_PROJECT_DOMAIN_ID
+ value: "{{inputs.parameters.os_project_domain_id}}"
+ - name: DEBUG
+ value: "{{inputs.parameters.debug}}"
+ command: ["/app/scripts/entrypoint.sh"]
+ args:
+ - update_capi_openstack_cloudconf
+ - "{{inputs.parameters.openstack_cloud_name}}"
+ - "{{inputs.parameters.age_public_key_mgmt}}"
+ - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
+ volumeMounts:
+ - name: fleet-repo-volume
+ mountPath: '{{inputs.parameters.fleet_mount_path}}'
+ - name: sw-catalogs-repo-volume
+ mountPath: '{{inputs.parameters.sw_catalogs_mount_path}}'
+ volumes:
+ - name: fleet-repo-volume
+ persistentVolumeClaim:
+ claimName: '{{inputs.parameters.fleet_volume_name}}'
+ - name: sw-catalogs-repo-volume
+ persistentVolumeClaim:
+ claimName: '{{inputs.parameters.sw_catalogs_volume_name}}'
+ securityContext:
+ fsGroup: 10000
+
+
+ # Delete a CloudConfig for CAPI OpenStack provider
+ - name: delete-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Volumes with cloned repos
+ - name: fleet_volume_name
+ - name: fleet_mount_path
+ value: "/fleet"
+ - name: sw_catalogs_volume_name
+ - name: sw_catalogs_mount_path
+ value: "/sw-catalogs"
+
+ # Specific parameters
+ - name: openstack_cloud_name
+ - name: mgmt_project_name
+ # Debug?
+ - name: debug
+ value: "false"
+
+ # Other parameters - Do not touch
+ - name: mgmt_cluster_name
+ value: "_management"
+ - name: base_templates_path
+ value: "cloud-resources"
+ - name: cloned_fleet_folder_name
+ value: "fleet-osm"
+
+ container:
+ image: opensourcemano/osm-krm-functions:testing-daily
+ # imagePullPolicy: Always
+ env:
+ - name: DEBUG
+ value: "{{inputs.parameters.debug}}"
+ command: ["/app/scripts/entrypoint.sh"]
+ args:
+ - delete_capi_openstack_cloudconf
+ - "{{inputs.parameters.openstack_cloud_name}}"
+ - "{{inputs.parameters.fleet_mount_path}}/{{inputs.parameters.cloned_fleet_folder_name}}/{{inputs.parameters.mgmt_project_name}}/infra-config-profiles/{{inputs.parameters.mgmt_cluster_name}}"
+ volumeMounts:
+ - name: fleet-repo-volume
+ mountPath: '{{inputs.parameters.fleet_mount_path}}'
+ volumes:
+ - name: fleet-repo-volume
+ persistentVolumeClaim:
+ claimName: '{{inputs.parameters.fleet_volume_name}}'
+ securityContext:
+ fsGroup: 10000
\ No newline at end of file
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+
+apiVersion: argoproj.io/v1alpha1
+kind: WorkflowTemplate
+metadata:
+ name: full-create-capi-openstack-cloudconfig
+ namespace: osm-workflows
+
+spec:
+ arguments:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ value: "openstack-clouds-yaml"
+ - name: openstack_clouds_yaml_secret_key
+ value: "clouds.yaml"
+ - name: openstack_cacert_secret_name
+ value: "openstack-cacert"
+ - name: openstack_cacert_secret_key
+ value: "cacert"
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ value: "openstack-credentials"
+ - name: openstack_credentials_secret_key
+ value: "password"
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ value: "osm_admin"
+ - name: mgmt_cluster_name
+ value: "_management"
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ # Cleanup policy
+ ttlStrategy:
+ secondsAfterCompletion: 6000 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
+ secondsAfterSuccess: 6000 # Time to live after workflow is successful
+ secondsAfterFailure: 9000 # Time to live after workflow fails
+
+ entrypoint: create-capi-openstack-cloudconfig
+
+ templates:
+
+ # Main template
+ - name: create-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ - name: openstack_clouds_yaml_secret_key
+ - name: openstack_cacert_secret_name
+ - name: openstack_cacert_secret_key
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ - name: openstack_credentials_secret_key
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ - name: mgmt_cluster_name
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ steps:
+
+ # ------ Preparations for transaction
+ - - name: generate-fleet-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - name: generate-sw-catalogs-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - - name: clone-fleet
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_url
+ value: "{{inputs.parameters.git_fleet_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: clone-sw-catalogs
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/sw-catalogs"
+ - name: repo_url
+ value: "{{inputs.parameters.git_sw_catalogs_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.sw_catalogs_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_sw_catalogs_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # ------ end of preparations for transaction
+
+ # ------ Transformations
+ - - name: create-capi-openstack-cloudconfig
+ templateRef:
+ name: capi-cloud-configs-wft
+ template: create-capi-openstack-cloudconfig
+ arguments:
+ parameters:
+ # References to required external resources
+ - name: fleet_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: sw_catalogs_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ value: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
+ - name: openstack_clouds_yaml_secret_key
+ value: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
+ - name: openstack_cacert_secret_name
+ value: "{{inputs.parameters.openstack_cacert_secret_name}}"
+ - name: openstack_cacert_secret_key
+ value: "{{inputs.parameters.openstack_cacert_secret_key}}"
+ - name: os_auth_url
+ value: "{{inputs.parameters.os_auth_url}}"
+ - name: os_region_name
+ value: "{{inputs.parameters.os_region_name}}"
+ - name: os_username
+ value: "{{inputs.parameters.os_username}}"
+ - name: openstack_credentials_secret_name
+ value: "{{inputs.parameters.openstack_credentials_secret_name}}"
+ - name: openstack_credentials_secret_key
+ value: "{{inputs.parameters.openstack_credentials_secret_key}}"
+ - name: os_project_id
+ value: "{{inputs.parameters.os_project_id}}"
+ - name: os_project_domain_id
+ value: "{{inputs.parameters.os_project_domain_id}}"
+ - name: openstack_cloud_name
+ value: "{{inputs.parameters.openstack_cloud_name}}"
+ - name: age_public_key_mgmt
+ value: "{{inputs.parameters.age_public_key_mgmt}}"
+ - name: mgmt_project_name
+ value: "{{inputs.parameters.mgmt_project_name}}"
+ - name: mgmt_cluster_name
+ value: "{{inputs.parameters.mgmt_cluster_name}}"
+ # Debug?
+ - name: debug
+ value: "{{inputs.parameters.debug}}"
+ # ------ end of transformations
+
+ # ------ Commit transaction
+ - - name: push-to-fleet
+ templateRef:
+ name: git-wft
+ template: git-commit-merge-push
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: commit_message
+ value: "Create CAPI OpenStack CloudConfig {{inputs.parameters.openstack_cloud_name}}"
+ - name: main_branch
+ value: main
+ - name: contrib_branch
+ value: osm_contrib
+ - name: dry_run
+ value: "{{inputs.parameters.dry_run}}"
+# ------ end of commit transaction
\ No newline at end of file
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+
+apiVersion: argoproj.io/v1alpha1
+kind: WorkflowTemplate
+metadata:
+ name: full-delete-capi-openstack-cloudconfig
+ namespace: osm-workflows
+
+spec:
+ arguments:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+
+ # Specific parameters
+ - name: openstack_cloud_name
+ - name: mgmt_project_name
+ value: "osm_admin"
+ - name: mgmt_cluster_name
+ value: "_management"
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ # Cleanup policy
+ ttlStrategy:
+ secondsAfterCompletion: 6000 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
+ secondsAfterSuccess: 6000 # Time to live after workflow is successful
+ secondsAfterFailure: 9000 # Time to live after workflow fails
+
+ entrypoint: delete-capi-openstack-cloudconfig
+
+ templates:
+
+ # Main template
+ - name: delete-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+ # Specific parameters
+ - name: openstack_cloud_name
+ - name: mgmt_project_name
+ - name: mgmt_cluster_name
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ steps:
+
+ # ------ Preparations for transaction
+ - - name: generate-fleet-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - name: generate-sw-catalogs-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - - name: clone-fleet
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_url
+ value: "{{inputs.parameters.git_fleet_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: clone-sw-catalogs
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/sw-catalogs"
+ - name: repo_url
+ value: "{{inputs.parameters.git_sw_catalogs_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.sw_catalogs_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_sw_catalogs_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # ------ end of preparations for transaction
+
+ # ------ Transformations
+ - - name: delete-capi-openstack-cloudconfig
+ templateRef:
+ name: capi-cloud-configs-wft
+ template: delete-capi-openstack-cloudconfig
+ arguments:
+ parameters:
+ # References to required external resources
+ - name: fleet_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: sw_catalogs_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # Specific parameters
+ - name: openstack_cloud_name
+ value: "{{inputs.parameters.openstack_cloud_name}}"
+ - name: mgmt_project_name
+ value: "{{inputs.parameters.mgmt_project_name}}"
+ - name: mgmt_cluster_name
+ value: "{{inputs.parameters.mgmt_cluster_name}}"
+ # Debug?
+ - name: debug
+ value: "{{inputs.parameters.debug}}"
+ # ------ end of transformations
+
+ # ------ Commit transaction
+ - - name: push-to-fleet
+ templateRef:
+ name: git-wft
+ template: git-commit-merge-push
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: commit_message
+ value: "Delete CAPI OpenStack CloudConfig {{inputs.parameters.openstack_cloud_name}}"
+ - name: main_branch
+ value: main
+ - name: contrib_branch
+ value: osm_contrib
+ - name: dry_run
+ value: "{{inputs.parameters.dry_run}}"
+# ------ end of commit transaction
\ No newline at end of file
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+
+apiVersion: argoproj.io/v1alpha1
+kind: WorkflowTemplate
+metadata:
+ name: full-update-capi-openstack-cloudconfig
+ namespace: osm-workflows
+
+spec:
+ arguments:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ value: "openstack-clouds-yaml"
+ - name: openstack_clouds_yaml_secret_key
+ value: "clouds.yaml"
+ - name: openstack_cacert_secret_name
+ value: "openstack-cacert"
+ - name: openstack_cacert_secret_key
+ value: "cacert"
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ value: "openstack-credentials"
+ - name: openstack_credentials_secret_key
+ value: "password"
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ value: "osm_admin"
+ - name: mgmt_cluster_name
+ value: "_management"
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ # Cleanup policy
+ ttlStrategy:
+ secondsAfterCompletion: 6000 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished
+ secondsAfterSuccess: 6000 # Time to live after workflow is successful
+ secondsAfterFailure: 9000 # Time to live after workflow fails
+
+ entrypoint: update-capi-openstack-cloudconfig
+
+ templates:
+
+ # Main template
+ - name: update-capi-openstack-cloudconfig
+ inputs:
+ parameters:
+ # Fleet repo
+ - name: git_fleet_url
+ - name: fleet_destination_folder
+ - name: git_fleet_cred_secret
+ # SW-Catalogs repo
+ - name: git_sw_catalogs_url
+ - name: sw_catalogs_destination_folder
+ - name: git_sw_catalogs_cred_secret
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ - name: openstack_clouds_yaml_secret_key
+ - name: openstack_cacert_secret_name
+ - name: openstack_cacert_secret_key
+ - name: os_auth_url
+ - name: os_region_name
+ - name: os_username
+ - name: openstack_credentials_secret_name
+ - name: openstack_credentials_secret_key
+ - name: os_project_id
+ - name: os_project_domain_id
+ - name: openstack_cloud_name
+ - name: age_public_key_mgmt
+ - name: mgmt_project_name
+ - name: mgmt_cluster_name
+ # Debug/dry run?
+ - name: debug
+ value: "false"
+ - name: dry_run
+ value: "false"
+
+ steps:
+
+ # ------ Preparations for transaction
+ - - name: generate-fleet-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - name: generate-sw-catalogs-volume-repo
+ templateRef:
+ name: k8s-resources-wft
+ template: generate-volume
+ arguments:
+ parameters:
+ - name: pvc-size
+ value: '100Mi'
+ - - name: clone-fleet
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_url
+ value: "{{inputs.parameters.git_fleet_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: clone-sw-catalogs
+ templateRef:
+ name: git-wft
+ template: git-clone
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/sw-catalogs"
+ - name: repo_url
+ value: "{{inputs.parameters.git_sw_catalogs_url}}"
+ - name: destination_folder
+ value: "{{inputs.parameters.sw_catalogs_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_sw_catalogs_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # ------ end of preparations for transaction
+
+ # ------ Transformations
+ - - name: update-capi-openstack-cloudconfig
+ templateRef:
+ name: capi-cloud-configs-wft
+ template: update-capi-openstack-cloudconfig
+ arguments:
+ parameters:
+ # References to required external resources
+ - name: fleet_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: sw_catalogs_volume_name
+ value: '{{steps.generate-sw-catalogs-volume-repo.outputs.parameters.pvc-name}}'
+ # Specific parameters
+ - name: openstack_clouds_yaml_secret_name
+ value: "{{inputs.parameters.openstack_clouds_yaml_secret_name}}"
+ - name: openstack_clouds_yaml_secret_key
+ value: "{{inputs.parameters.openstack_clouds_yaml_secret_key}}"
+ - name: openstack_cacert_secret_name
+ value: "{{inputs.parameters.openstack_cacert_secret_name}}"
+ - name: openstack_cacert_secret_key
+ value: "{{inputs.parameters.openstack_cacert_secret_key}}"
+ - name: os_auth_url
+ value: "{{inputs.parameters.os_auth_url}}"
+ - name: os_region_name
+ value: "{{inputs.parameters.os_region_name}}"
+ - name: os_username
+ value: "{{inputs.parameters.os_username}}"
+ - name: openstack_credentials_secret_name
+ value: "{{inputs.parameters.openstack_credentials_secret_name}}"
+ - name: openstack_credentials_secret_key
+ value: "{{inputs.parameters.openstack_credentials_secret_key}}"
+ - name: os_project_id
+ value: "{{inputs.parameters.os_project_id}}"
+ - name: os_project_domain_id
+ value: "{{inputs.parameters.os_project_domain_id}}"
+ - name: openstack_cloud_name
+ value: "{{inputs.parameters.openstack_cloud_name}}"
+ - name: age_public_key_mgmt
+ value: "{{inputs.parameters.age_public_key_mgmt}}"
+ - name: mgmt_project_name
+ value: "{{inputs.parameters.mgmt_project_name}}"
+ - name: mgmt_cluster_name
+ value: "{{inputs.parameters.mgmt_cluster_name}}"
+ # Debug?
+ - name: debug
+ value: "{{inputs.parameters.debug}}"
+ # ------ end of transformations
+
+ # ------ Commit transaction
+ - - name: push-to-fleet
+ templateRef:
+ name: git-wft
+ template: git-commit-merge-push
+ arguments:
+ parameters:
+ - name: mount_path
+ value: "/fleet"
+ - name: repo_folder
+ value: "{{inputs.parameters.fleet_destination_folder}}"
+ - name: git_cred_secret
+ value: "{{inputs.parameters.git_fleet_cred_secret}}"
+ - name: git_volume_name
+ value: '{{steps.generate-fleet-volume-repo.outputs.parameters.pvc-name}}'
+ - name: commit_message
+ value: "Update CAPI OpenStack CloudConfig {{inputs.parameters.openstack_cloud_name}}"
+ - name: main_branch
+ value: main
+ - name: contrib_branch
+ value: osm_contrib
+ - name: dry_run
+ value: "{{inputs.parameters.dry_run}}"
+# ------ end of commit transaction
\ No newline at end of file