Skip to content

Commit 21ed95f

Browse files
author
Elod Illes
committed
[CI] Use compatible version of heat-tempest-plugin
This is a combination of five patch to fix the gate: 1. Use compatible version of heat-tempest-plugin heat-tempest-plugin dropped py38 support, hence it cannot be installed from recent master, so we need to override the checkout to the version that still supports py38 and compatible to the actual branch. This is needed both for the grenade job and the functional job, because these are using the heat-tempest-plugin. 2. Try archive path to download Fedora image This is a temporal workaround to allow downloading Fedora 37 image which was moved to the archive path. 3. Remove reference to devstack-gate devstack-gate was deprecated in xena and is being retired now[1]. 4. [stable-only] Cap setuptools <71.0.0 py39 jobs (on ubuntu-focal) started to fail due to recent virtualenv release (20.26.4) on Yoga (which bundles setuptools), because we have 'packaging==21.3' in this branch that is not compatible with newer setuptools [2]. setuptools is bundled in virtualenv, so it has to be capped via the virtualenv package. tox also needed to be capped (<4) as gate uses tox 3.28.0, but with capping virtualenv we pull in latest tox as well, which would cause other errors. 5. Set functional jobs as non-voting heat-functional jobs try to install python-zaqarclient (via zaqar project) from master branch, but on master the client dropped py38 support, hence the jobs fail. This patch sets it non-voting as a quick workaround until a final fix arrives. [1] https://review.opendev.org/c/openstack/governance/+/919629 [2] pypa/setuptools#4483 Changes: .zuul.yaml NOTE(elod.illes): change in .zuul.yaml is to adapt the patch to the current branch ('<series>-last' needs to be used). Change-Id: I9b1702749976a2cea42a24130e5fec2931b75ce1 (cherry picked from commit a806b40) (cherry picked from commit ae62258) (cherry picked from commit 4fd9953) (cherry picked from commit 81a8b93) (cherry picked from commit 665ccfc) (cherry picked from commit c18b344) (cherry picked from commit dcf7403)
1 parent cd40593 commit 21ed95f

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed

.zuul.yaml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
- zuul: opendev.org/openstack/devstack
1111
- zuul: opendev.org/openstack/tempest
1212
required-projects:
13-
- openstack/devstack-gate
1413
- openstack/barbican
1514
- openstack/heat
1615
- openstack/heat-templates
17-
- openstack/heat-tempest-plugin
16+
- name: opendev.org/openstack/heat-tempest-plugin
17+
override-checkout: yoga-last
1818
- openstack/octavia
1919
- openstack/neutron
2020
- openstack/oslo.messaging
@@ -139,7 +139,8 @@
139139
voting: false
140140
required-projects:
141141
- opendev.org/openstack/heat
142-
- opendev.org/openstack/heat-tempest-plugin
142+
- name: opendev.org/openstack/heat-tempest-plugin
143+
override-checkout: yoga-last
143144
- opendev.org/openstack/python-heatclient
144145
vars:
145146
grenade_devstack_localrc:
@@ -197,10 +198,20 @@
197198
check:
198199
jobs:
199200
- grenade-heat-multinode
200-
- heat-functional
201-
- heat-functional-legacy
201+
# NOTE(elod.illes): functional jobs are failing due to
202+
# python-zaqarclient dropped py38 support and even on
203+
# this old branch the client is installed from master
204+
# as a quick workaround this is now set as non-voting
205+
- heat-functional:
206+
voting: false
207+
- heat-functional-legacy:
208+
voting: false
202209
gate:
203210
jobs:
204211
- grenade-heat-multinode
205-
- heat-functional
206-
- heat-functional-legacy
212+
# NOTE(elod.illes): functional jobs are failing due to
213+
# python-zaqarclient dropped py38 support and even on
214+
# this old branch the client is installed from master
215+
# as a quick workaround this is now removed from gate
216+
# - heat-functional
217+
# - heat-functional-legacy

devstack/lib/heat

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,11 +478,14 @@ function configure_tempest_for_heat {
478478
source /etc/ci/mirror_info.sh
479479
fi
480480
HEAT_TEST_FEDORA_IMAGE_UPSTREAM=https://download.fedoraproject.org/pub/fedora/linux
481+
HEAT_TEST_FEDORA_IMAGE_UPSTREAM_ARCHIVE=https://download.fedoraproject.org/pub/archive/fedora/linux/
481482
HEAT_TEST_FEDORA_IMAGE_PATH=releases/37/Cloud/x86_64/images/Fedora-Cloud-Base-37-1.7.x86_64.qcow2
482-
if curl --output /dev/null --silent --head --fail "${NODEPOOL_FEDORA_MIRROR}/${HEAT_TEST_FEDORA_IMAGE_PATH}"; then
483+
if curl --location --output /dev/null --silent --head --fail "${NODEPOOL_FEDORA_MIRROR}/${HEAT_TEST_FEDORA_IMAGE_PATH}"; then
483484
export HEAT_TEST_FEDORA_IMAGE="${NODEPOOL_FEDORA_MIRROR}/${HEAT_TEST_FEDORA_IMAGE_PATH}"
484-
else
485+
elif curl --location --output /dev/null --silent --head --fail "${HEAT_TEST_FEDORA_IMAGE_UPSTREAM}/${HEAT_TEST_FEDORA_IMAGE_PATH}"; then
485486
export HEAT_TEST_FEDORA_IMAGE="${HEAT_TEST_FEDORA_IMAGE_UPSTREAM}/${HEAT_TEST_FEDORA_IMAGE_PATH}"
487+
else
488+
export HEAT_TEST_FEDORA_IMAGE="${HEAT_TEST_FEDORA_IMAGE_UPSTREAM_ARCHIVE}/${HEAT_TEST_FEDORA_IMAGE_PATH}"
486489
fi
487490
TOKEN=$(openstack token issue -c id -f value)
488491
local image_exists=$( openstack image list | grep "Fedora-Cloud-Base-37-1.7.x86_64" )

tox.ini

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ envlist = py36,py37,py38,pep8
33
ignore_basepython_conflict = True
44
minversion = 3.1.0
55
skipsdist = True
6+
# Cap setuptools via virtualenv to prevent compatibility issue with yoga
7+
# branch's upper constraint of 'packaging' package (21.3).
8+
requires =
9+
virtualenv<20.26.4
10+
tox<4
11+
setuptools<71.0.0
612

713
[testenv]
814
basepython = python3

0 commit comments

Comments
 (0)