Hello, After discussions, we've spotted possible gap in versioned objects: backporting of too-new versions in RPC. Nova does that by conductor, but not every service has something like that. I want to propose another approach:
1. Milestone pinning - we need to make single reference to versions of various objects - for example heat in version 15.1 will mean stack in version 1.1 and resource in version 1.5. 2. Compatibility mode - this will add flag to service --compatibility=15.1, that will mean that every outgoing RPC communication will be backported before sending to object versions bound to this milestone. With this 2 things landed we'll achieve rolling upgrade like that: 1. We have N nodes in version V 2. We take down 1 node and upgrade code to version V+1 3. Run code in ver V+1 with --compatibility=V 4. Repeat 2 and 3 until every node will have version V+1 5. Restart each service without compatibility flag This approach has one big disadvantage - 2 restarts required, but should solve problem of backporting of too-new versions. Any ideas? Alternatives? Regards, MichaĆ __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev