heat_template_version: pike description: 'Upgrade for via ansible by applying a step related tag' parameters: UpgradeStepConfig: type: json description: Config (ansible yaml) that will be used to step through the deployment. default: '' step: type: string description: Step number of the upgrade SkipUpgradeConfigTags: type: comma_delimited_list description: Ansible tags to skip during upgrade, e.g validation skips pre-upgrade validations default: [] resources: AnsibleConfig: type: OS::Heat::Value properties: value: str_replace: template: CONFIG params: CONFIG: - hosts: localhost connection: local tasks: {get_param: UpgradeStepConfig} AnsibleUpgradeConfigImpl: type: OS::Heat::SoftwareConfig properties: group: ansible options: skip_tags: list_join: - "," - {get_param: SkipUpgradeConfigTags} tags: str_replace: template: "common,stepSTEP" params: STEP: {get_param: step} modulepath: /usr/share/ansible-modules inputs: - name: role config: {get_attr: [AnsibleConfig, value]} outputs: OS::stack_id: description: The software config which runs ansible with tags value: {get_resource: AnsibleUpgradeConfigImpl} upgrade_config: description: The configuration file used for upgrade value: {get_attr: [AnsibleConfig, value]}