Rocky Series Release Notes


Bug Fixes

  • Erroneously, availability_zone for host aggregate resource types was considered mandatory in heat templates.

    Behaviour has been adjusted to bring this in line with the CLI and GUI, in which it is optional.


Upgrade Notes

  • The distribution name has been changed from “heat” to “openstack-heat” so that we can publish packages to This may have an effect on downstream package builds if they rely on asking setuptools to determine the package name.



Heat current bug/blueprint reports have migrated from Launchpad to storyboard. If you would like to create a new story (a bug or a blueprint), please file it under the Heat project. This change applies to all heat projects/repos.

New Features

  • Add a new property networks to resource OS::Zun::Container. This property is an ordered list of nics to be added to this container, with information about connected networks, fixed ips, and port. This property can be updated without replacement.

  • A new OS::Heat::Delay resource type allows users to work around thundering herd issues in large templates by adding a random delay (with configurable jitter) into the workflow.

  • Adds a new attribute segments to the OS::Neutron::Net resource. The attribute resolves the network segments on the network. The attribute is useful when migrating from a non routed provider network to a routed provider network. The example below show how to migrate an existing subnet to one that is associated with the segment:

      type: OS::Neutron::Subnet
      name: the_subnet
        segment: {get_attr: [the_network, segments, 0, id]}
  • Added network attribute to OS::Neutron::Port resource. The new attribute returns the neutron network that owns the port. The following examples demonstrate some (not all) possible expressions. (Obtains the network, the MTU (Maximum transmission unit), the network tags and finally the l2_adjacency property):

    {get_attr: [<port>, network]}
    {get_attr: [<port>, network, mtu]}
    {get_attr: [<port>, network, tags]}
    {get_attr: [<port>, network, l2_adjacency]}
  • Adds network to the addresses attribute of OS::Nova::Server resource. This enables resolving the network properties for the server resource.

  • Adds subnets to the addresses attribute of OS::Nova::Server resource. This enables resolving the subnet properties for the server resource which brings parity with OS::Neutron::Port’s subnets attribute.

  • Adds support to update the segment_id of OS::Neutron::Subnet resource. This enables migration from non routed network to a routed network.

  • Added stack API support to provide a swift container that contains the child templates and environment files. All files would be fetched and used (if required), unless they are superceded by files in files map.

Upgrade Notes

  • The ceilometer client plugin is no longer provided, due to the Ceilometer API no longer being available from Queens and the python-ceilometerclient library being unmaintained.

  • The database upgrade for Heat Queens release drops ‘watch_rule’ and ‘watch_data’ tables from the heat database.

  • Resource type OS::Magnum::Bay is now hidden, please use OS::Magnum::Cluster instead.

  • Resource type OS::Magnum::BayModele is now hidden, please use OS::Magnum::ClusterTemplate instead.

  • Resource type OS::Nova::FloatingIP is now hidden, please use OS::Neutron::FloatingIP instead.

  • Resource type OS::Nova::FloatingIPAssociation is now hidden, please use OS::Neutron::FloatingIPAssociation instead.

Security Issues

  • Passwords generated by the OS::Heat::RandomString resource may have had less entropy than expected, depending on what is specified in the character_class and character_sequence properties. This has been corrected so that each character present in any of the specified classes or sequences now has an equal probability of appearing at each point in the generated random string.

Bug Fixes

  • Previously, when deleting a convergence stack, the API call would return immediately, so that it was possible for a client immediately querying the status of the stack to see the state of the previous operation in progress or having failed, and confuse that with a current status. (This included Heat itself when acting as a client for a nested stack.) Convergence stacks are now guaranteed to have moved to the DELETE_IN_PROGRESS state before the delete API call returns, so any subsequent polling will reflect up-to-date information.

  • Previously, the suspend, resume, and check API calls for all stacks, and the update, restore, and delete API calls for non-convergence stacks, returned immediately after starting the stack operation. This meant that for a client reading the state immediately when performing the same operation twice in a row, it could have misinterpreted a previous state as the latest unless careful reference were made to the updated_at timestamp. Stacks are now guaranteed to have moved to the IN_PROGRESS state before any of these APIs return (except in the case of deleting a non-convergence stack where another operation was already in progress).

Other Notes

  • Introduce a Blazar client plugin module that will be used by Blazar resources.