heat_template_version: pike description: > Example extra config for cluster config this example deploys a random string to all controller and compute nodes, showing how data may be shared amongst nodes, vs the other ExtraConfig interfaces which act only on individual nodes. # Parameters passed from the parent template - note if you maintain # out-of-tree templates they may require additional parameters if the # in-tree templates add a new role. parameters: servers: type: json # Note extra parameters can be defined, then passed data via the # environment parameter_defaults, without modifying the parent template resources: Random: type: OS::Heat::RandomString RandomConfig: type: OS::Heat::SoftwareConfig properties: group: script inputs: - name: random_value config: | #!/bin/sh echo $random_value > /root/random_value RandomDeploymentsController: type: OS::Heat::SoftwareDeployments properties: name: RandomDeploymentsController servers: {get_param: [servers, Controller]} config: {get_resource: RandomConfig} actions: ['CREATE'] # Only do this on CREATE input_values: random_value: {get_attr: [Random, value]} RandomDeploymentsCompute: type: OS::Heat::SoftwareDeployments properties: name: RandomDeploymentsCompute servers: {get_param: [servers, Compute]} config: {get_resource: RandomConfig} actions: ['CREATE'] # Only do this on CREATE input_values: random_value: {get_attr: [Random, value]}