Rolling Upgrade Support in Sahara
This blueprint is to introduce rolling upgrade to Sahara. Rolling upgrade means allowing sahara services (sahara-api, sahara-engine, and maybe more if other services like sahara-conductor is splited out in the future) to be updated one at a time and yet still be operational (only one service is taken down for upgrade instead of all).
Currently rolling upgrade was already implemented in nova, and are in implementing in Cinder, Heat, and many other services.
Rolling upgrade will be implemented by backwards compatible RPC and versionedobject pinning. The basic idea is to allow services in Sahara to register their RPC and versionedobject versions (current/pin and available/max) in sahara database. There will be logic added into the rpcapi layer that will allow the content/object and RPC API to be backwards compatible. Once all services are upgraded, a "sahara-manage version upgrade" command can be used to switch over the object and RPC versions to the latest available.
Below are some links for your reference.
https:/
https:/
The former registered bp https:/
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add Rolling Upgrade Support in Sahara