Feature Request: Rolling Upgrades #5766

Closed
cholcombe973 opened this Issue Jul 5, 2016 · 2 comments

Comments

Projects
None yet
3 participants

In my ceph charms and now also in the node charm there's a feature needed where a cluster of charms needs to be upgraded one by one until everyone is on the same version. I hacked together a version of this for ceph here: https://github.com/openstack/charm-ceph-mon/blob/master/hooks/ceph_hooks.py#L135.

What that code does is use the ceph monitor cluster as a distributed consistent key/value store and sets a key/value to say "i'm upgrading at timestamp: x". It also orders the cluster of charms into a known ordering. If you are the first charm in the sorted ordering you start your upgrade. All the other charms in the cluster poll the ceph monitor cluster asking for updates. After a timeout of several minutes the next charm in the line will start its upgrade process.

What I'd love to see is juju core supporting the ability to rolling upgrade a service cluster. Once core has that support it would relieve the charmers from all having to reinvent the wheel. Not all charmers have access to a distributed key/value store like I did so many of them are stuck trying to create hacky workarounds.

petevg commented Jul 5, 2016

The coordinator layer should be able to handle this (I believe that is uses the leadership stuff as a key/value store): https://launchpad.net/layer-coordinator. It was written to handle rolling restarts, but I believe that it will handle upgrade actions as well. I don't know whether there are plans to move leadership and related things into core ...

Member

anastasiamac commented Aug 11, 2016

Thank you for suggestion.
We track juju issues in launchpad: https://bugs.launchpad.net/juju-core
Related bug report is here: https://bugs.launchpad.net/juju-core/+bug/1243768

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment