heat_template_version: 2014-10-16

description: >
  Example extra config for post-deployment, this re-runs every update

# Note extra parameters can be defined, then passed data via the
# environment parameter_defaults, without modifying the parent template
parameters:
  servers:
    type: json
  # This is provided via parameter_defaults from tripleoclient
  # it changes to a new timestamp every update, so we can use it to
  # trigger the deployment to run even though it and the config are
  # otherwise unchanged
  DeployIdentifier:
    type: string

resources:

  ExtraConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      inputs:
        - name: deploy_identifier
      config: |
        #!/bin/sh
        echo "extra_update $deploy_identifier" >> /root/extra_update

  ExtraDeployments:
    type: OS::Heat::SoftwareDeployments
    properties:
      name: ExtraDeployments
      servers:  {get_param: servers}
      config: {get_resource: ExtraConfig}
      # Do this on CREATE/UPDATE (which is actually the default)
      actions: ['CREATE', 'UPDATE']
      input_values:
        deploy_identifier: {get_param: DeployIdentifier}

Add ExtraConfig example that always runs on update
Add ExtraConfig example that always runs on update

Some user feedback indicates we need better examples showing how
we can run an extraconfig template, e.g on post-deploy so that it
runs every update, regardless of if a change to the config has
occurred.  We can leverage DeployIdentifier for this, just like with
the puppet deployments.

This can be tested with an example like this:

resource_registry:
  OS::TripleO::NodeExtraConfigPost: tripleo-heat-templates/extraconfig/post_deploy/example_run_on_update.yaml

Change-Id: I45d8f8093ab45c03238ec56651c437128661cb95
