
Keystone v3 based check and gate jobs Change-Id: I450edf46cbbbf16382e28607259c620db3dee1b0
3.0 KiB
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
Keystone v3 based check and gate jobs
https://blueprints.launchpad.net/tempest/+spec/keystone-v3-jobs
Check and gate jobs using keystone V3
Problem description
All check and gate jobs at the moment rely on keystone v2 as identity service. Blueprint multi-keystone-api-version-tests introduces in tempest the ability to run tests relying on keystone V3 API only. The version of the keystone API to be used is controlled via a configuration flag. Dedicated jobs are requied to exercise the V3 option, in preparation for keystone V2 deprecation planned for Juno.
Proposed change
Setup keystone v3 jobs to be run initially as experimental only. They will be promoted then to check and eventually gate.
Running fully v3 jobs is beyond the scope of tempest and infrastructure alone, as it requires changes in other OpenStack projects:
- python bindings to either support keystone v3 API or consume Keystone Client Session Objects (see http://www.jamielennox.net/blog/2014/02/24/client-session-objects/)
- core services to be integrated with keystone v3 model and API Such changes are defined in details in dedicated blueprints.
As dependencies will be implemented in Juno, it won't be possible to run full v3 jobs against Icehouse. The keystone v3 jobs can still be used against icehouse, with the limitation that only the authentication of tempest clients and creation of isolated user and projects will be based on the v3 API.
Alternatives
It would be possible to run all tests via v2 and v3 in parallel. However this would significantly increase the gate duration.
Implementation
Assignee(s)
Andrea Frittoli <andrea.frittoli@hp.com>
Milestones
- Target Milestone for completion:
-
Juno-final
Work Items
- Define a localrc variable in devstack for auth_version=v3
- Define an option in devstack-gate to setup the localrc variable
- Define two jobs in the experimental pipeline for tempest: dsvm-keystonev3-full and dsvm-neutron-keystonev3-full
- Track the progress of dependencies, and enhance jobs accordingly
- Run the jobs on demand until all issues are fixed and results are stable
- Promote the jobs to check for tempest
- Promote the jobs to check for all projects
- Promote the jobs to gate
Dependencies
A fully v3 check job depends on having v3 support in a number of places
- tempest framework and its tests https://blueprints.launchpad.net/tempest/+spec/multi-keystone-api-version-tests
- official python bindings and CLI tools
- openstack services
The current jobs will only be partially v3 until all dependencies are met. The migration strategy from identity API v2 to v3 will be documented as part of https://blueprints.launchpad.net/keystone/+spec/document-v2-to-v3-transition