Deprecate Glance v3 API¶
On Mitaka summit it was decided  to make v3 (artifact) API a standalone service with its own endpoint. To do that we have to deprecate Glance v3 API and related things, and create new service with all required utilities.
Initially it was planned to make artifacts a new API with incremented version, i.e. “v3”. But since Glance is a core project, it falls under the DefCore specifications, which require (among other things) uniqueness of public APIs. Unfortunately v3 api is pluggable and it can’t be unique by design.
Also there are issues with understanding what Glance API is, because v1 and v2 are Image APIs, and they work with images only. But v3 was considered to be unified (Artifact) API, which may work with objects of any nature. The general feeling in the broader OpenStack community is that rather than being a new version of the Images API, the Artifacts API should be considered an entirely different thing.
Because v3 API has experimental status, it’s proposed to deprecate v3 API and move all its code to the whole new standalone service with new endpoint. It will release the Artifacts project from being subject to DefCore requirements and will allow the project to move forward faster.
Having the independent service also removes misunderstanding, because there will be stable, DefCore-approved Glance Image API and pluggable independent Artifact API, which may include Glance API in the future.
It’s possible to leave everything as-is, but it doesn’t remove all of the above issues.
Data model impact¶
None. All created for artifacts tables with prefix ‘artifacts-’ will stay in DB, but will be used by another service.
REST API impact¶
All of experimental APIs, that start with ‘/v3’, are deprecated and will be removed.
Other end user impact¶
Experimental ‘feature/artifacts’ branch will be removed from ‘python-glanceclient’ repo.
Other deployer impact¶
‘apiv3app’ application has to be removed from ‘glance-api-paste.ini’
‘enable_v3_api’ parameter has to be removed from glance-api config
glance-api-paste.ini: remove ‘apiv3app’ application;
glance/common/config.py: remove ‘enable_v3_api’ parameter;
glance/api/middleware/version_negotiation.py: remove major version discoverability, if version is 3, raise ValueError instead;
move glance/api/v3/* code into glance/artifacts/api;
make related changes in the tests;
 Mitaka glance artifacts review: https://etherpad.openstack.org/p/mitaka-glance-artifacts-review