Add ExtraConfig example that always runs on update
authorSteven Hardy <shardy@redhat.com>
Wed, 23 Mar 2016 14:29:50 +0000 (14:29 +0000)
committerSteven Hardy <shardy@redhat.com>
Wed, 23 Mar 2016 14:29:50 +0000 (14:29 +0000)
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

extraconfig/post_deploy/example_run_on_update.yaml [new file with mode: 0644]

diff --git a/extraconfig/post_deploy/example_run_on_update.yaml b/extraconfig/post_deploy/example_run_on_update.yaml
new file mode 100644 (file)
index 0000000..234488a
--- /dev/null
@@ -0,0 +1,39 @@
+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}