Install hook failing when Octavia Charm is built originally built on Bionic/Focal/Impish

Bug #1951592 reported by DUFOUR Olivier
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Octavia Charm
Triaged
Medium
Unassigned

Bug Description

As it is right now, it is impossible to build properly the charm Octavia on a environment more recent than Ubuntu Xenial.
When building on Bionic or Focal or Impish, the charm's wheelhouse will be filled with packages for Pip incompatible with the version of setuptools pinned previously.

The steps to reproduce this are the following :
* build the charm on Bionic/Focal/Impish
* deploy the built charm on a model
* the units will all fail on the install hook (see error logs from attachment)

This has been reproduced easily on a Focal - Ussuri deployment from Openstack base bundle.

A first guess would be that wheelhouse pull different versions of pip packages but still get nonetheless packages incompatible with setuptools 41.6.0.
It still works on Ubuntu Xenial because of the requirements with Python 3.5 would lead automatically to older releases of packages when building the charm.

From testing, multiple packages from the wheelhouse are concerned by this issue.

Revision history for this message
DUFOUR Olivier (odufourc) wrote :
Revision history for this message
DUFOUR Olivier (odufourc) wrote :

List of wheelhouse packages obtained from Xenial build (working)

Revision history for this message
DUFOUR Olivier (odufourc) wrote :

List of wheelhouse packages obtained from Bionic build (failing)

Revision history for this message
DUFOUR Olivier (odufourc) wrote :

List of wheelhouse packages obtained from Focal build (failing)

Revision history for this message
Alex Kavanagh (ajkavanagh) wrote :

> As it is right now, it is impossible to build properly the charm Octavia on a environment more recent than Ubuntu Xenial.

Yes, this was intentional up to the last cycle. All the charms up to now were built on xenial as they all needed to support xenial (py35) and forward. However, the stable/21.10 charms are the last set that formally support xenial. The new "oldest" target is bionic/py36, as the next set of charms at least have to support bionic going forward.

One of the biggest issues is that almost none of the requirements.txt / test-requirements.txt / wheelhouse.txt work with the pip 21.x resolver. Everything is currently pinned to work with pip 20.3.2 which worked on py35 (xenial) as pip21 dropped support for py35.

We have a tranche of work coming up to switch to pip 21.x and move support to py36+ for all the charms, and for them to be built in charmhub/launchpad.

Please also note, that the tox.ini, requirements.txt, test-requirements.txt and src/test-requirements.txt are controlled centrally via the openstack-charmers/release-tools repo on github.com in order to keeps things aligned between the charms.

So that's just to provide a little bit of context as to "why we are where we are"!

For the moment, a workaround might be to launch a xenial LXD container/VM, install tox into it and build the charm there.

Changed in charm-octavia:
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Felipe Reyes (freyes) wrote :

for the record, this is the command line I'm using to have a functional tox in Xenial

python3 -m pip install --user --upgrade 'filelock<3.3' 'pyparsing<3.0.0' 'tox==3.20' wheel 'packaging<21' 'setuptools<50.0.0' "pip<20.3" "virtualenv<20.0" "importlib-resources<3.0.0" "importlib-metadata<3.0.0" "pluggy<1.0.0"

This is because other dependencies have dropped python3.5 support.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.