RPC and VersionedObject Compatibility
The following blueprint enables rolling upgrades in cinder, through backwards compatible RPC and versionedobject pinning. The basic idea is to allow services to register their RPC and versionedobject versions (current/pin and available/max) in the cinder database. There will be logic added into the rpcapi layer that will massage the content/object and RPC API to be backwards compatible. Once all services are upgraded, a "cinder-manage version upgrade" command can be used to switch over the object and RPC versions to the latest available.
Blueprint information
- Status:
- Complete
- Approver:
- Sean McGinnis
- Priority:
- High
- Drafter:
- Thang Pham
- Direction:
- Approved
- Assignee:
- Thang Pham
- Definition:
- Approved
- Series goal:
- Accepted for mitaka
- Implementation:
- Implemented
- Milestone target:
- mitaka-3
- Started by
- Mike Perez
- Completed by
- Sean McGinnis
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
RPC and versionobject compatibility
Addressed by: https:/
Conversion to volume object
Addressed by: https:/
Create service_versions table
Addressed by: https:/
Register RPC and object versions
Addressed by: https:/
WIP: Make RPC and objects backwards compatible
<jdg> Based on the number of WIP items in the topic and the items in need of work still, it appears this is going to push out to M
Addressed by: https:/
Add missing RPC calls version to rpcapi's
Addressed by: https:/
WIP: Report RPC and objects versions
Addressed by: https:/
WIP: Pin RPC and object version to lowest running
Addressed by: https:/
Add SIGHUP handlers to reset RPC version pins
Addressed by: https:/
Remove unused columns from Service ORM model
Addressed by: https:/
WIP: Add scheduler RPC API v2.0
Addressed by: https:/
WIP: Add volume RPC API v2.0
Addressed by: https:/
Add devref on rolling upgrades
Addressed by: https:/
Add backup RPC API v2.0
Addressed by: https:/
Adding general notes about rolling upgrades