• Resource Template Service

  1. Help Center
  2. Resource Template Service
  3. User Guide
  4. Resource Template Types
  5. OS::Heat::SoftwareDeployment


This resource associates a server with some configuration.

The configuration is to be deployed to that server.

A deployment allows input values to be specified which map to the inputs schema defined in the config resource. These input values are interpreted by the configuration tool in a tool-specific manner.

Whenever this resource goes to an IN_PROGRESS state, it creates an ephemeral config that includes the inputs values plus a number of extra inputs which have names prefixed with deploy_. The extra inputs relate to the current state of the stack, along with the information and credentials required to signal back the deployment results.

Unless signal_transport=NO_SIGNAL, this resource will remain in an IN_PROGRESS state until the server signals it with the output values for that deployment. Those output values are then available as resource attributes, along with the default attributes deploy_stdout, deploy_stderr and deploy_status_code.

Specifying actions other than the default CREATE and UPDATE will result in the deployment being triggered in those actions. For example this would allow cleanup configuration to be performed during action DELETE. A config could be designed to only work with some specific actions, or a config can read the value of the deploy_action input to allow conditional logic to perform different configuration for different actions.


If the software deployment function is used, the cloud-init, heat-config, os-collect-config, os-refresh-config, os-apply-config, and heat-config-script tools must be installed on images.

Optional Properties




Which lifecycle actions of the deployment resource will result in this deployment being triggered.

List value expected.

Can be updated without replacement.

Defaults to "[CREATE, UPDATE]".

Allowed values: CREATE, UPDATE, DELETE


ID of software configuration resource to execute when applying to the server.

String value expected.

Can be updated without replacement.


Input values to apply to the software configuration on this server.

Map value expected.

Can be updated without replacement.


ID of resource to apply configuration to. Normally this should be a Nova server ID.

String value expected.

Updates cause replacement.


Name of the derived config associated with this deployment. This is used to apply a sort order to the list of configurations currently deployed to a server.

String value expected.

Can be updated without replacement.


How the server should signal to heat with the deployment output values.

  • TEMP_URL_SIGNAL will create a Swift TempURL to be signaled via HTTP PUT.
  • NO_SIGNAL will result in the resource going to the COMPLETE state without waiting for any signal.

String value expected.

Updates cause replacement.

Defaults to "TEMP_URL_SIGNAL".






Returned status code from the configuration execution.


Captured stderr from the configuration execution.


Captured stdout from the configuration execution.

HOT Syntax

heat_template_version: 2014-10-16
    type: OS::Heat::SoftwareDeployment
      actions: [Value, Value, ...]
      config: String
      input_values: {...}
      name: String
      server: String
      signal_transport: String