Use oslo-versioned-objects to help with dealing with upgrades

Registered by Kamil Rykowski

This blueprint has been superseded. See the newer blueprint "Online schema migration" for updated plans.

https://etherpad.openstack.org/p/kilo-crossproject-upgrades-and-versioning

This blueprint improves the way Keystone deals with versioning of objects (of all sorts db/rpc/rest/templates/plugins).

Nova has come up with the idea of versioned objects, that Ironic has also now used. This has been proposed as an oslo library https://review.openstack.org/#/c/127532/ which has been already implemented and available at https://github.com/openstack/oslo.versionedobjects

There is a work being done in Heat and Cinder which may be a good starting point for Keystone (ideas, reliability):
https://blueprints.launchpad.net/heat/+spec/versioned-objects
https://blueprints.launchpad.net/cinder/+spec/cinder-objects

The main idea of versioned objects is to create a wrapper objects that would be an abstraction layer above the currently used DB objects. Versioned-objects will help us deal with DB schema being at a different version than the code expects. This will allow Keystone to be operated safely during upgrades.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Kamil Rykowski
Direction:
Needs approval
Assignee:
Kamil Rykowski
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Steve Martinelli

Related branches

Sprints

Whiteboard

The idea of versioned-objects is available at https://review.openstack.org/167195

Gerrit topic: https://review.openstack.org/#q,topic:bp/versioned-objects,n,z

(stevemar 16-02-02): marking this as superseded by online-schema-migration. they are trying to achieve the same goal (sane upgrades), and that one has been getting more traction lately.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.