CI: Fix multiple failures

Tox jobs are timing out in CI due to pip dependency resolution
backtracking taking too long. When run locally, pip fails to resolve
dependencies due to upper-constraints now allowing pluggy 1.0.0 [1],
while molecule still depends on pluggy >= 0.7.1, < 1.0. See similar
tripleo bug for more details [2].

Split molecule dependencies in a separate requirements file and remove
upper constraints from its tox environment for now. As a bonus, it
should speed up execution of the jobs due to installing fewer
dependencies.

Stop using upper-constraints when installing docker python library [3].
This part of the commit can be reverted when docker 5.0.2 is in upper
constraints.

Update Kolla inventory template following renaming of haproxy role to
loadbalancer [4]. With the existing template, haproxy/keepalived
containers are not created and service deployment fails while trying to
connect to MySQL using the VIP.

[1] https://review.opendev.org/c/openstack/requirements/+/806680
[2] https://bugs.launchpad.net/tripleo/+bug/1942508
[3] https://review.opendev.org/c/openstack/kayobe/+/807128
[4] https://review.opendev.org/c/openstack/kolla-ansible/+/770618

Change-Id: I4cad83c92c32d1db2a5d3c03a78a1c533a8b9633
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
This commit is contained in:
Pierre Riteau 2021-09-03 23:10:39 +02:00
parent bb05adbdcf
commit 74eff837cb
5 changed files with 25 additions and 10 deletions

View File

@ -47,7 +47,10 @@
name: docker
state: latest
virtualenv: "{{ kolla_ansible_target_venv }}"
extra_args: "{% if kolla_upper_constraints_file %}-c {{ kolla_upper_constraints_file }}{% endif %}"
# FIXME(mgoddard): docker 5.0.1 is currently in master
# upper-constraints, but fails with an unexpected keyword argument,
# 'disable_buffering'. Install it without UC for now.
# extra_args: "{% if kolla_upper_constraints_file %}-c {{ kolla_upper_constraints_file }}{% endif %}"
become: True
- name: Ensure kolla-ansible virtualenv has SELinux bindings installed

View File

@ -72,9 +72,15 @@ control
[hacluster-remote:children]
compute
[haproxy:children]
[loadbalancer:children]
network
[keepalived:children]
loadbalancer
[haproxy:children]
loadbalancer
[mariadb:children]
control

10
molecule-requirements.txt Normal file
View File

@ -0,0 +1,10 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
docker # Apache-2.0
molecule # MIT
molecule-docker # MIT
pytest-molecule # MIT
pytest-testinfra
yamllint # GPLv3

View File

@ -6,13 +6,7 @@ ansible-lint>=3.0.0,!=4.3.0 # MIT
bashate>=0.2 # Apache-2.0
coverage>=4.0 # Apache-2.0
doc8 # Apache-2.0
docker # Apache-2.0
hacking>=3.0.1,<3.1.0 # Apache-2.0
molecule # MIT
molecule-docker # MIT
oslotest>=1.10.0 # Apache-2.0
paramiko
pytest-molecule # MIT
pytest-testinfra
stestr # Apache-2.0
yamllint # GPLv3

View File

@ -60,9 +60,11 @@ commands =
[testenv:molecule]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
# TODO(priteau): Restore upper constraints once molecule dependency
# resolution is working
#-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/molecule-requirements.txt
whitelist_externals =
bash
commands =