[openstack-dev] [Heat][Oslo] Versioned objects compatibility mode

Jastrzebski, Michal michal.jastrzebski at intel.com
Mon Jun 22 09:40:47 UTC 2015


I wanted to start discussion about versioned objects backporting for conductor-less projects.
In Vancouver we discussed compatibility mode, which works like that:

1. We define one version for every object we use, this means adding base object, for example:

Class HeatObject:

All objects inherit from this one, each time we change it, we bump up this variable.

2. We introduce new config option in heat.conf 

Combatibility_mode = 1.4

3. Implement mechanism which will automatically backport each outgoing message to 1.4 as long as we have this var.

Upgrade flow looks like that:
1. We have all nodes using 1.4 version
2. We incrementally run new version with 1.4 compatibility mode
3. When all nodes are already up-to-date, we incrementally turn off compatibility mode

This solution has one rather big disadvantage: 2 restarts.
This can be mitigated by adding another call to reread config without restart. Oslo.config has this capability, but we need to add call to run it.


Michał Jastrzębski

More information about the OpenStack-dev mailing list