Chapter 3. Release Information

These release notes highlight technology preview items, recommended practices, known issues, and deprecated functionality to be taken into consideration when deploying this release of Red Hat OpenStack Platform.
Notes for updates released during the support lifecycle of this Red Hat OpenStack Platform release will appear in the advisory text associated with each update or the Red Hat OpenStack Platform Technical Notes. This document is available from the following page:

3.1. Enhancements

This release of Red Hat OpenStack Platform features the following enhancements:
Previously, the "nova list" command displayed instances as running when a compute node failed. Now, the instance state is updated when the hosting compute node is down. As a result, users can trust the "nova list" output for uptime monitoring.
RBD snapshots and cloning are now used for Ceph-based ephemeral disk snapshots. With this update, data is manipulated within the Ceph server, rather than transferred across nodes, resulting in better snapshotting performance for Ceph.
This enhancement adds the ability to tell the container or account server to reverse the object listings. This capability allows you to break out versioned objects in middleware. 
As a result, the internal architecture is reorganized for safety reasons; in addition, reverse listings are available to client applications, if needed.
This enhancement adds improved replica placement, and protection from duplicated assignments.
This was added because, in the traditional Swift layout, the act of accidentally assigning two replicas of a partition to the same device resulted in a silent reduction of durability.
As a result, duplicate assignments are prevented, thereby adhering to calculated guarantees. However, since this requires the number of devices to be no less than the number of replicas, it is possible for certain incorrect old rings to be considered invalid. Consequently, it is still possible to have the number of zones be smaller than the number of replicas.
With this update, a new enhancement adds a new boolean property 'router_external' to the 'OS::Neutron::ProviderNet' resource. This option allows the template author to specify whether the network contains an external router.
With this update, the eventlet system for keystone has been deprecated upstream.
Red Hat OpenStack Platform director now configures keystone to run under apache using WSGI. This change was due to the Keystone project's recommendation that keystone deployment occurs within WSGI.
As a result, the keystone service now runs under the apache httpd service.
This update adds Role-based Access Control (RBAC) for QoS policies. As a result, you can now apply QoS policies to certain projects. For example, you can now create a QoS policy that allows for lower-priority network traffic, and have it only apply to certain projects.
With this update, a new enhancement allows finding a suitable disk device for the Bare Metal Provisioning service to deploy the image onto by using its name or path. Some devices have persistent names (for example, RAID) and this new feature allows operators to use these names instead of having to use the disk WWN, serial, model names and so on.
This enhancement adds support for in-band cleaning of the iSCSI drivers. Cleaning steps, such as disk erase, and in-band RAID configuration, among others, can now be performed on the nodes using the drivers. 
The running of cleaning steps allows for improved security when recycling the nodes in ironic, allowing you  to erase all the data from previous tenants and/or run checks to see if the machine wasn't compromised.
As a result, drivers, such as pxe_ipmitool, pxe_drac, pxe_iboot, pxe_ilo, pxe_amt, pxe_wol, among others, can now run in-band cleaning steps.
This update provides a client for the Aodh API. The client consists of a Python API, which is available in the "aodhclient" module, and a command-line script, which is installed as the "aodh" command. Both the Python API and the command-line script implement the entire Aodh API.
With this enhancement, the act of evacuating instances with pinned CPUs can result in these instances being hosted on a hypervisor which already handles instances with the same pinning configuration.
This was added because the resource tracker does not track CPU pinning for instances on hosts.
As a result, a condition has been added to the NUMATopologyFilter filter, which passes on hosts which already manage an instance with same CPU pinning configuration as the instance being evacuated.
The python-wsgi_intercept package has been added to Red Hat OpenStack Platform 9.
This package is an install dependency for python-gabbi, which in turn is required by openstack-gnocchi. 
As a result, openstack-gnocchi and python-gabbi install without dependency errors.
CDH version 5.5 is now available in the packaged version of the CDH plugin, and is enabled by default.
This release now supports the 'map_merge' function in heat. This function allows users to merge maps together and makes values in latter maps override those in earlies ones. This can be useful when composing maps containing configuration data into a single, consolidated map.

For more information, see
The OpenDaylight OpenStack neutron driver has been split from the neutron project and moved to a new package, python-networking-odl. The latest version of the driver is still available for use as part of your Red Hat OpenStack Platform installations.
This enhancement allows agent drivers (drivers prefixed with "agent_") to deploy partition images.
This capability was added because all drivers in OpenStack bare metal provisioning (ironic) should be able to deploy full disk images (these are images that contain a partition table with a bootloader, among other properties). This also includes partition images, which are images with a root filesystem.
As a result, agent drivers are now able to deploy partition images, as well as full disk images.
The OpenStack data processing service (sahara) is now deployable via OSP-d. The current release will deploy Sahara to all controller nodes and make it available for use. As this is the first release to include Sahara integration with OSP director, the service is minimally configurable, but also places no additional burden on the installer; Sahara will be enabled on overcloud controller nodes by default.
With this update, an availability zone groups network nodes that run services such as DHCP and routers. It is defined as an agent's attribute on the network node, and is used to make network resources highly available. The operators group the nodes that are attached to different power sources under separate availability zones and configure scheduling for resources with high availability so that they are scheduled to different availability zones. This allows users to associate an availability zone with their routers and networks to ensure that the risk is spread across different zones.
The python-colorama package has been added to Red Hat OpenStack Platform 9.
This package is an install dependency for python-gabbi, which in turn is required by openstack-gnocchi.
As a result, openstack-gnocchi and python-gabbi install without dependency errors.
This enhancement adds manual cleaning, which allows operators to move a node directly into a cleaning state, from a manageable state.
This was added because operators may run cleaning steps for various reasons, including: Building RAID, erasing devices, among others.
As a result, operators are now able to use the OpenStack Bare Metal (ironic) API to manually start the cleaning process for the ironic nodes, choosing exactly which steps should be run.
With this enhancement, you can mark a resource as unhealthy using an API call in Orchestration (heat), so that it will be replaced on a subsequent stack update.
For example, if a server in a `ResourceGroup` fails, rather than blacklisting (which would mean non-contiguous indices and any replacement getting a new name) the server can be marked unhealthy so that Heat will replace it with a new one with the same name and index in the group.
The new `mark-unhealthy` command allows a resource to be put in the CHECK_FAILED state. Any stack updates subsequently performed will replace the unhealthy resource (as they do with all resources in an *_FAILED state).
Using the resource registry in the environment, a user can set a hook which will pause delete actions on these resources. This allows users to take specific actions when a resource is deleted, and perform extra validation when critical elements are removed. As a result, when a resource with a pre-delete hook is about to be deleted, Heat will pause until the resource is signaled with {'unset_hook': 'pre-delete'} as data.
When multiple environment files are specified, they are combined in the engine instead of the client. This provides heat enough information to correctly orchestrate a stack.