heat_template_version: 2015-04-30

description: >
  A software config which runs puppet on the {{role}} role

parameters:
  ConfigDebug:
    default: false
    description: Whether to run config management (e.g. Puppet) in debug mode.
    type: boolean
  StepConfig:
     type: string
     description: Config manifests that will be used to step through the deployment.
     default: ''

resources:

  {{role}}PuppetConfigImpl:
    type: OS::Heat::SoftwareConfig
    properties:
      group: puppet
      options:
        enable_debug: {get_param: ConfigDebug}
        enable_hiera: True
        enable_facter: False
        modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
      outputs:
      - name: result
      inputs:
      - name: step
        type: Number
      config:
        list_join:
        - ''
        - - str_replace:
              template: {get_file: manifests/overcloud_role.pp}
              params:
                __ROLE__: {{role.lower()}}
          - {get_param: StepConfig}

outputs:
  OS::stack_id:
    description: The software config which runs puppet on the {{role}} role
    value: {get_resource: {{role}}PuppetConfigImpl}
