[kolla-ansible][tooz][devstack] Upgrade path to etcd v3.4

Jan Gutter openstack at jangutter.com
Tue Aug 15 10:57:10 UTC 2023


On Thu, Aug 10, 2023 at 11:13 PM Clark Boylan <cboylan at sapwetik.org> wrote:
>
> On Thu, Aug 10, 2023, at 6:38 AM, Jan Gutter wrote:
> > Options:
> > * upgrade to 3.4 and use `v3` endpoint everywhere - fix forward?
>
> If I understand correctly you can update from 3.3 to 3.4 in a safe rolling fashion.
> Then you can update the use of the endpoint name/version. Then you could upgrade
> from 3.4 to 3.5 in a rolling fashion? Seems like this is a reasonable path forward,
> but will take some effort.

The sequence is a bit more complicated, it seems. Cinder is using etcd
as a coordinator,
other services may too (but isn't covered by core devstack, it seems).
If downtime is not tolerated, then the move from 3.3 to 3.4 is:
0. current status: etcd 3.3 + coordination URL uses v3alpha
1. update coordination URL to use v3beta (3.3 does not support v3, 3.4
removes v3alpha)
2. update etcd to 3.4
3. update coordination URL to use v3 (3.5 removes v3beta)

If you update to etcd 3.4 before changing the coordination URL, the
dependent services
will break until the coordination URL is updated.

It's rather more painful for skip-level updates, of course.
If downtime can be tolerated, then the coordination URL can jump
directly from v3alpha to v3.

At the moment, only grenade fails if the coordination URL is updated to `v3`:
891353: Update etcd version to 3.4.27 |
https://review.opendev.org/c/openstack/devstack/+/891353
Just on the off chance it's flakey, I sent up a recheck, but if it
fails, I'll try with `v3beta`.

> For Devstack you don't typically need to worry about upgrading the etcd DB. That said,
> I wonder if Grenade complicates things. Do we upgrade services that might only be
> compatible with etcd 3.4 (or 3.5) that will break if the control plane continues to run etcd 3.3?

Yeah, it turns out cinder is affected... I have not dug into if etcd
is or could be updated alongside cinder.

> Seems like we should also update tooz to default to modern endpoints and force overrides
> if talking to old systems rather than override for current etcd.

Yeah, unfortunately the test harness (pifpaf) for etcd is broken for
etcd3.4 and requires a new release.
891355: Update the default etcd3gw endpoint to v3 |
https://review.opendev.org/c/openstack/tooz/+/891355



More information about the openstack-discuss mailing list