heat/.zuul.yaml
Elod Illes 21ed95f9b6 [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] https://github.com/pypa/setuptools/issues/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 a806b400cf5766f1e675798e501aa32416dc0939)
(cherry picked from commit ae6225890e5e604bd8ed71a5964838a690229f45)
(cherry picked from commit 4fd9953a55c15e1d6d0bfb8f648d03d9e368fc3b)
(cherry picked from commit 81a8b93254842150db98b5fc1388188d67e223f0)
(cherry picked from commit 665ccfc2626f88b422d1c0db07d63556f208a908)
(cherry picked from commit c18b344591c8f2cdb9555c1a8753c7f1bda5fed1)
(cherry picked from commit dcf7403635db6675eec36740739432715df091ee)
2024-12-15 11:51:39 +01:00

218 lines
7.0 KiB
YAML

- job:
name: heat-functional-base
parent: devstack
abstract: true
run: playbooks/devstack/functional/run.yaml
post-run: playbooks/devstack/functional/post.yaml
description: Base heat functional test job
timeout: 7800
roles:
- zuul: opendev.org/openstack/devstack
- zuul: opendev.org/openstack/tempest
required-projects:
- openstack/barbican
- openstack/heat
- openstack/heat-templates
- name: opendev.org/openstack/heat-tempest-plugin
override-checkout: yoga-last
- openstack/octavia
- openstack/neutron
- openstack/oslo.messaging
- openstack/python-barbicanclient
- openstack/python-heatclient
- openstack/heat-agents
- openstack/python-zaqarclient
- openstack/zaqar
- openstack/tempest
vars:
configure_swap_size: 8192
tempest_plugins:
- heat-tempest-plugin
devstack_localrc:
TEMPEST_PLUGINS: '/opt/stack/heat-tempest-plugin'
HEAT_USE_MOD_WSGI: True
CEILOMETER_PIPELINE_INTERVAL: 60
devstack_services:
tls-proxy: false
s-account: false
s-container: false
s-object: false
s-proxy: false
tempest: true
devstack_plugins:
barbican: https://opendev.org/openstack/barbican
zaqar: https://opendev.org/openstack/zaqar
heat: https://opendev.org/openstack/heat
octavia: https://opendev.org/openstack/octavia
devstack_local_conf:
post-config:
$HEAT_CONF:
DEFAULT:
convergence_engine: true
stack_scheduler_hints: true
hidden_stack_tags: hidden
encrypt_parameters_and_properties: True
logging_exception_prefix: "%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s"
enable_stack_adopt: true
enable_stack_abandon: true
max_stacks_per_tenant: 256
heat_api:
workers: 2
heat_api_cfn:
workers: 2
cache:
enabled: True
eventlet_opts:
client_socket_timeout: 120
oslo_messaging_notifications:
driver: messagingv2
test-config:
$TEMPEST_CONFIG:
service_available:
heat: True
heat_plugin:
convergence_engine_enabled: true
minimal_image_ref: ${DEFAULT_IMAGE_NAME:-cirros-0.3.6-x86_64-disk}
instance_type: m1.heat_int
minimal_instance_type: m1.heat_micro
image_ref: Fedora-Cloud-Base-37-1.7.x86_64
hidden_stack_tag: hidden
heat_config_notify_script: /opt/stack/heat-agents/heat-config/bin/heat-config-notify
boot_config_env: /opt/stack/heat-templates/hot/software-config/boot-config/test_image_env.yaml
credential_secret_id: $OS_CREDENTIAL_SECRET_ID
heat_features_enabled:
multi_cloud: True
# disable cinder backup feature
volume-feature-enabled:
backup: False
test_results_stage_name: test_results
zuul_copy_output:
'{{ devstack_base_dir }}/tempest/etc/tempest.conf': logs
'{{ devstack_base_dir }}/tempest/etc/accounts.yaml': logs
'{{ devstack_base_dir }}/tempest/tempest.log': logs
'{{ stage_dir }}/{{ test_results_stage_name }}.subunit': logs
'{{ stage_dir }}/{{ test_results_stage_name }}.html': logs
'{{ stage_dir }}/stackviz': logs
extensions_to_txt:
conf: true
log: true
yaml: true
yml: true
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^heat/locale/.*$
- ^heat/tests/.*$
- ^releasenotes/.*$
- job:
name: heat-functional
parent: heat-functional-base
- job:
name: heat-functional-legacy
parent: heat-functional-base
vars:
devstack_local_conf:
post-config:
$HEAT_CONF:
DEFAULT:
convergence_engine: false
test-config:
$TEMPEST_CONFIG:
heat_plugin:
convergence_engine_enabled: false
- job:
name: heat-functional-non-apache
parent: heat-functional-base
voting: false
vars:
devstack_localrc:
HEAT_USE_MOD_WSGI: False
- job:
name: grenade-heat-multinode
parent: grenade-multinode
voting: false
required-projects:
- opendev.org/openstack/heat
- name: opendev.org/openstack/heat-tempest-plugin
override-checkout: yoga-last
- opendev.org/openstack/python-heatclient
vars:
grenade_devstack_localrc:
shared:
HOST_TOPOLOGY: multinode
HOST_TOPOLOGY_ROLE: primary
HOST_TOPOLOGY_SUBNODES: "{{ hostvars['compute1']['nodepool']['public_ipv4'] }}"
configure_swap_size: 8192
devstack_services:
h-api: true
h-api-cfn: true
h-eng: true
heat: true
# We do run a list of tests after upgrade. This is just to bypass the req from parent.
tempest_test_regex: ^tempest\.api\.identity\.v3\.test_tokens
tox_envlist: all
devstack_plugins:
heat: https://opendev.org/openstack/heat
tempest_plugins:
- heat-tempest-plugin
group-vars:
subnode:
grenade_devstack_localrc:
shared:
HOST_TOPOLOGY: multinode
HOST_TOPOLOGY_ROLE: subnode
HOST_TOPOLOGY_SUBNODES: "{{ hostvars['compute1']['nodepool']['public_ipv4'] }}"
configure_swap_size: 8192
devstack_services:
h-api: true
h-api-cfn: true
h-eng: true
heat: true
# We do run a list of tests after upgrade. This is just to bypass the req from parent.
devstack_plugins:
heat: https://opendev.org/openstack/heat
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^heat/locale/.*$
- ^heat/tests/.*$
- ^releasenotes/.*$
- project:
queue: heat
templates:
- openstack-cover-jobs
- openstack-python3-xena-jobs
- openstack-python3-xena-jobs-arm64
- periodic-stable-jobs
- publish-openstack-docs-pti
- check-requirements
- release-notes-jobs-python3
check:
jobs:
- grenade-heat-multinode
# NOTE(elod.illes): functional jobs are failing due to
# python-zaqarclient dropped py38 support and even on
# this old branch the client is installed from master
# as a quick workaround this is now set as non-voting
- heat-functional:
voting: false
- heat-functional-legacy:
voting: false
gate:
jobs:
- grenade-heat-multinode
# NOTE(elod.illes): functional jobs are failing due to
# python-zaqarclient dropped py38 support and even on
# this old branch the client is installed from master
# as a quick workaround this is now removed from gate
# - heat-functional
# - heat-functional-legacy