heat_template_version: pike parameters: ContrailRepo: type: string default: '' resources: userdata: type: OS::Heat::MultipartMime properties: parts: - config: {get_resource: EnableContrailRepoConfig} EnableContrailRepoConfig: type: OS::Heat::SoftwareConfig properties: config: str_replace: template: | #!/bin/bash contrail_repo=$contrail_repo if [[ ${contrail_repo} ]]; then cat < /etc/yum.repos.d/contrail.repo [Contrail] name=Contrail Repo baseurl=${contrail_repo} enabled=1 gpgcheck=0 protect=1 metadata_expire=30 EOF fi params: $contrail_repo: {get_param: ContrailRepo} outputs: # This means get_resource from the parent template will get the userdata, see: # http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent # Note this is new-for-kilo, an alternative is returning a value then using # get_attr in the parent template instead. OS::stack_id: value: {get_resource: userdata}