--- /dev/null
+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}