Queens Series Release Notes

16.0.1-11

Known Issues

  • The show_multiple_locations configuration option remains deprecated in this release, but it has not been removed. (It had been scheduled for removal in the Pike release.) Please keep a watch on the Glance release notes and the glance-specs repository to stay informed about developments on this issue.

    The plan is to eliminate the option and use only policies to control image locations access. This, however, requires some major refactoring. See the draft Policy Refactor spec for more information.

    There is no projected timeline for this change, as no one has been able to commit time to it. The Glance team would be happy to discuss this more with anyone interested in working on it.

    The workaround is to continue to use the show_multiple_locations option in a dedicated “internal” Glance node that is not accessible to end users. We continue to recommend that image locations not be exposed to end users. See OSSN-0065 for more information.

16.0.1

Known Issues

  • ‘enabled_import_methods’ is ListOpt type config option. If only one method is enabled, the format needs to be [‘method’] this is not obvious as even the example does not have the ‘[’ and ‘]’ boundaries around the default value.

  • If signature verification fails upon creation, the image data will stay in the backend even though the image goes to ‘killed’ state. The data remains even if a user deletes the killed image record.

Critical Issues

  • Image Import API failure with PY35 has been fixed.

  • Image Import method ‘web-download’ failure when ‘node_staging_uri’ ends with ‘/’ has been fixed.

  • Image Import call accepting all implemented methods instead of configured ones has been rectified. It only accepts import calls for the methods listed in the config option ‘enabled_import_methods’

Bug Fixes

  • Some documentation and test issues have been addressed in this release on top of the following bugfixes:

    • Bug 1753964: web-download fails with default node_staging_uri

    • Bug 1759510: Image Import fails with Python 3.5

    • Bug 1754634: Image Import call does not honour enabled methods

16.0.0

Prelude

  • The CURRENT version of the Images API v2 is bumped to 2.6. The 2.6 API was available in the previous (Pike) release as an experimental API to introduce the calls necessary for the interoperable image import functionality.

  • A new interoperable image import method, web-download is introduced.

  • A plugin framework for customizing the processing of imported images before they become active is introduced in this release, along with a new plugin that injects image metadata properties into imported images.

New Features

  • A new interoperable image import method, web-download is introduced. This method allows an end user to import an image from a remote URL. The image data is retrieved from the URL and stored in the Glance backend. (In other words, this is a copy-from operation.)

    This feature is enabled by default, but it is optional. Whether it is offered at your installation depends on the value of the enabled_import_methods configuration option in the glance-api.conf file (assuming, of course, that you have not disabled image import at your site).

  • Added a plugin to inject image metadata properties to non-admin images created via the interoperable image import process.

  • Added a new command glance-manage db check, the command will allow a user to check the status of upgrades in the database.

Known Issues

  • The Pike release notes pointed out that although support had been added to run Glance as a WSGI application hosted by a web server, the Glance team recommended that Glance be run in its normal standalone configuration, particularly in production environments.

    We renew that recommendation for the Queens release. In particular, Glance tasks (which are required for the interoperable image import functionality) do not execute when Glance is run under uWSGI (which is the OpenStack recommended way to run WSGI applications hosted by a web server).

    This is in addition to the chunked transfer encoding problems addressed by Bug 1703856 and will be more difficult to fix. (Additionally, as far as we are aware, the fix for Bug 1703856 has never been tested at scale.) Briefly, Glance tasks are run by the API service and would have to be split out into a different service so that API alone would run under uWSGI. The Glance project team did not have sufficient testing and development resources during the Queens cycle to attempt this (or even to discuss whether this is in fact a good idea).

    The Glance project team is committed to the stability of Glance. As part of OpenStack, we are committed to The Four Opens. If the ability to run Glance under uWSGI is important to you, feel free to participate in the Glance community to help coordinate and drive such an effort. (We gently remind you that “participation” includes providing testing and development resources.)

Upgrade Notes

  • The CURRENT version of the Images API supplied by Glance is introduced as 2.6. It includes the new API calls introduced on an experimental basis in the Pike release.

    While the 2.6 API is CURRENT, whether the interoperable image import functionality it makes available is exposed to end users is controlled by a configuration option, enable_image_import. Although this option existed in the previous release, its effect is slightly different in Queens.

    • enable_image_import is True by default (in Pike it was False)

    • When enable_image_import is True, a new import-method, web-download is available. (In Pike, only glance-direct was offered.) Which import-methods you offer can be configured using the enabled_import_methods option in the glance-api.conf file.

    • If enable_image_import is set False, requests to the v2 endpoint for URIs defined only in v2.6 will return 404 (Not Found) with a message in the response body stating “Image import is not supported at this site.” Additionally, the image-create response will not contain the “OpenStack-image-import-methods” header.

    The enable_image_import configuration option was introduced as DEPRECATED in Pike and will be removed in Rocky.

    The discovery calls defined in the refactored image import spec remain in an abbreviated form in this release.

    Finally, there are no changes to the version 2.5 API in this release. All version 2.5 calls will work whether the new import functionality is enabled or not.

  • Added a plugin to inject image metadata properties to non-admin images created via the interoperable image import process. This plugin implements the spec Inject metadata properties automatically to non-admin images. See the spec for a discussion of the use case addressed by this plugin.

    Use of the plugin requires configuration as described in the The Image Property Injection Plugin section of the Glance Admin Guide.

    Note that the plugin applies only to images imported via the interoperable image import process. Thus images whose data is set using the image data upload call will not be processed by the plugin and hence will not have properties injected. You can force end users to use the interoperable image import process by restricting the data upload call, which is governed by the upload_image policy in the Glance policy.json file. See the documentation for more information.

  • Using db check

    In order to check the current state of your database upgrades, you may run the command glance-manage db check. This will inform you of any outstanding actions you have left to take.

    Here is a list of possible return codes:

    • A return code of 0 means you are currently up to date with the latest migration script version and all db upgrades are complete.

    • A return code of 3 means that an upgrade from your current database version is available and your first step is to run glance-manage db expand.

    • A return code of 4 means that the expansion stage is complete, and the next step is to run glance-manage db migrate.

    • A return code of 5 means that the expansion and data migration stages are complete, and the next step is to run glance-manage db contract.

  • The following metadata definitions have been modified in the Queens release:

    • The property img_linked_clone has been added to the namespace OS::Compute::VMware.

    • An enumeration of values was added for the vmware:hw_version property in the OS::Compute::VMwareFlavor namespace.

    • Additional values were added to the enumeration for the hw_disk_bus property in the OS::Compute::LibvirtImage namespace.

    You may upgrade these definitions using:

    glance-manage db load_metadefs [--path <path>] [--merge] [--prefer_new]

  • The default value for the API configuration option workers was previously the number of CPUs available. It has been changed to be the min of {number of CPUs, 8}. Any value set for that option, of course, is honored. See Bug 1748916 for details.

  • Some configuration is required in order to make the Interoperable Image Import functionality work correctly. In particular, the node_staging_uri value in the glance-api.conf file must be set. See the section on Interoperable Image Import in the Glance Administration Guide for more information.

Deprecation Notes

  • With the introduction of the web-download import method, we consider the Image Service v2 API to have reached feature parity with the DEPRECATED v1 API in all important respects. Support for the Image Service API v1 ends with the Queens release. The v1 API was deprecated in Newton and will be removed from the codebase at the beginning of the Rocky development cycle. Please plan appropriately.

Security Issues

  • The web-download import-method, intended to be a replacement for the popular Image Service API v1 “copy-from” functionality, is configurable so that you can avoid the vulnerabilty described in OSSN-0078. See the Interoperable Image Import section of the Glance Administration Guide for details.

Bug Fixes

  • The following are some highlights of the bug fixes included in this release.

    • Bug 1714240: Avoid restarting a child when terminating

    • Bug 1719252: Metadefs: Fix 500 for name with more than 80 chars

    • Bug 1720354: Correctly send auth request to oslo.policy

    • Bug 1733813: Fix 500 from image-import on queued images

    • Bug 1688189: Fix member create to handle unicode characters

    • Bug 1737952: Fix 500 if custom property name is greater than 255

    • Bug 1744824: Fix py27 eventlet issue <0.22.0

    • Bug 1748916: Glance default workers total overkill for modern servers

    • Bug 1749297: Fix 500 from list-tasks call with postgresql

Other Notes

  • The metadefs schemas for ‘property’, ‘properties’, ‘tag’, ‘tags’, ‘object’, and ‘objects’ previously specified a ‘name’ element of maximum 255 characters. Any attempt to add a name of greater than 80 characters in length, however, resulted in a 500 response. The schemas have been corrected to specify a maximum length of 80 characters for the ‘name’ field.

  • The section on Interoperable Image Import in the Glance Administration Guide has been updated. Please see that section of the Guide for information about the configuration required to make the import functionality work correctly.

  • The Database Management sections of the Glance Administration Guide have been revised and updated. This includes information about the current experimental status of rolling upgrades and zero-downtime database upgrades.