
Update master grenade jobs to upgrade testing - grenade job to test 2025.1(N-1) to master(N) upgrade - grenade skip level job to test 2024.2(N-2) to master(N) upgrade Also, heat job is failing 100%, so making it non voting to merge this change. Depends-On: https://review.opendev.org/c/openstack/devstack/+/945237 Change-Id: I5e0110a61a5a5635530813cb76fb0c86f3ef661c
401 lines
13 KiB
YAML
401 lines
13 KiB
YAML
- project:
|
|
templates:
|
|
- publish-openstack-docs-pti
|
|
check:
|
|
jobs:
|
|
- grenade
|
|
- grenade-multinode
|
|
# TODO(gmann) heat job is failing 100%, make it voting again once it is green.
|
|
- grenade-heat-multinode:
|
|
voting: false
|
|
- octavia-grenade
|
|
- ironic-grenade:
|
|
voting: false
|
|
- grenade-skip-level-always
|
|
gate:
|
|
jobs:
|
|
- grenade
|
|
- grenade-multinode
|
|
# - grenade-heat-multinode
|
|
- octavia-grenade
|
|
- grenade-skip-level-always
|
|
experimental:
|
|
jobs:
|
|
- grenade-postgresql
|
|
|
|
- job:
|
|
name: grenade-base
|
|
parent: multinode
|
|
abstract: true
|
|
description: |
|
|
Base grenade job
|
|
|
|
This is the base grenade job for both single and multi node grenade
|
|
tests. It does not define any service to be used, so that this can
|
|
be used to build an upgrade test with a minimal number of services.
|
|
required-projects:
|
|
- opendev.org/openstack/devstack
|
|
- opendev.org/openstack/grenade
|
|
- opendev.org/openstack/requirements
|
|
- opendev.org/openstack/tempest
|
|
- opendev.org/openstack/os-test-images
|
|
roles:
|
|
- zuul: opendev.org/openstack/openstack-zuul-jobs
|
|
- zuul: opendev.org/openstack/devstack
|
|
- zuul: opendev.org/openstack/tempest
|
|
- zuul: opendev.org/openstack/neutron-tempest-plugin
|
|
vars:
|
|
configure_swap_size: 8192
|
|
devstack_bases:
|
|
shared: /opt/stack
|
|
old: /opt/stack/old
|
|
new: /opt/stack/new
|
|
logs_old: /opt/stack/logs/old
|
|
logs_new: /opt/stack/logs/new
|
|
grenade_devstack_localrc: &grenade_base_devstack_localrc
|
|
old:
|
|
DEST: "{{ devstack_bases.old }}"
|
|
LOGFILE: "{{ devstack_bases.old }}/logs/devstacklog.txt"
|
|
new:
|
|
DEST: "{{ devstack_bases.new }}"
|
|
LOGFILE: "{{ devstack_bases.new }}/logs/devstacklog.txt"
|
|
shared:
|
|
USE_PYTHON3: true
|
|
# Common settings for OpenStack CI
|
|
DATABASE_PASSWORD: secretdatabase
|
|
# FIXME: temporarily define MYSQL_PASSWORD too,
|
|
# because some code in devstack and in grenade
|
|
# still requires it to be defined.
|
|
MYSQL_PASSWORD: secretdatabase
|
|
RABBIT_PASSWORD: secretrabbit
|
|
ADMIN_PASSWORD: secretadmin
|
|
SERVICE_PASSWORD: secretservice
|
|
NETWORK_GATEWAY: 10.1.0.1
|
|
FIXED_RANGE: 10.1.0.0/20
|
|
IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
|
|
FLOATING_RANGE: 172.24.5.0/24
|
|
PUBLIC_NETWORK_GATEWAY: 172.24.5.1
|
|
FIXED_NETWORK_SIZE: 4096
|
|
LOG_COLOR: false
|
|
VERBOSE: true
|
|
VERBOSE_NO_TIMESTAMP: true
|
|
NOVNC_FROM_PACKAGE: true
|
|
ERROR_ON_CLONE: true
|
|
# Gate jobs can't deal with nested virt. Disable it.
|
|
LIBVIRT_TYPE: qemu
|
|
# TODO(slaweq): It can be removed when devstack patch
|
|
# https://review.opendev.org/c/openstack/devstack/+/849145 will be
|
|
# merged in master and last stable branch
|
|
NEUTRON_ENDPOINT_SERVICE_NAME: ""
|
|
grenade_localrc:
|
|
SAVE_DIR: "{{ devstack_bases.shared }}/save"
|
|
# from tempest playbooks
|
|
devstack_local_conf:
|
|
test-config:
|
|
$TEMPEST_CONFIG:
|
|
compute:
|
|
min_compute_nodes: "{{ groups['compute'] | default(['controller']) | length }}"
|
|
test_results_stage_name: test_results
|
|
zuul_copy_output:
|
|
'{{ devstack_bases.logs_old }}': logs
|
|
'{{ devstack_bases.logs_new }}': logs
|
|
'{{ grenade_save_dir }}': logs
|
|
'{{ grenade_log_dir }}/grenade.sh.log': logs
|
|
'{{ grenade_log_dir }}/grenade.sh.log.summary': logs
|
|
'{{ grenade_conf_dir }}/grenade_localrc': logs_txt
|
|
'{{ grenade_conf_dir }}/grenade_pluginrc': logs_txt
|
|
'{{ stage_dir }}/{{ test_results_stage_name }}.subunit': logs
|
|
'{{ stage_dir }}/{{ test_results_stage_name }}.html': logs
|
|
'{{ stage_dir }}/stackviz': logs
|
|
'{{ stage_dir }}/apache': logs
|
|
'{{ stage_dir }}/apache_config': logs
|
|
'{{ stage_dir }}/etc': logs
|
|
'/var/log/rabbitmq': logs
|
|
'/var/log/postgresql': logs
|
|
'/var/log/mysql': logs
|
|
'/var/log/libvirt': logs
|
|
'/etc/sudoers': logs
|
|
'/etc/sudoers.d': logs
|
|
'{{ stage_dir }}/iptables.txt': logs
|
|
'{{ stage_dir }}/df.txt': logs
|
|
'{{ stage_dir }}/pip2-freeze.txt': logs
|
|
'{{ stage_dir }}/pip3-freeze.txt': logs
|
|
'{{ stage_dir }}/dpkg-l.txt': logs
|
|
'{{ stage_dir }}/rpm-qa.txt': logs
|
|
'{{ stage_dir }}/core': logs
|
|
'{{ stage_dir }}/listen53.txt': logs
|
|
'{{ stage_dir }}/deprecations.log': logs
|
|
'/var/log/ceph': logs
|
|
'/var/log/openvswitch': logs
|
|
'/var/log/glusterfs': logs
|
|
'/etc/glusterfs/glusterd.vol': logs
|
|
'/etc/resolv.conf': logs
|
|
'/var/log/unbound.log': logs
|
|
extensions_to_txt:
|
|
auto: True
|
|
conf: True
|
|
log: True
|
|
localrc: True
|
|
stackenv: True
|
|
summary: True
|
|
group-vars:
|
|
subnode:
|
|
grenade_devstack_localrc:
|
|
<<: *grenade_base_devstack_localrc
|
|
pre-run: playbooks/pre.yaml
|
|
run: playbooks/grenade.yaml
|
|
post-run: playbooks/post.yaml
|
|
irrelevant-files: &grenade-irrelevant-files
|
|
# Documentation related
|
|
- ^.*\.rst$
|
|
- ^api-ref/.*$
|
|
- ^doc/.*$
|
|
- ^releasenotes/.*$
|
|
- ^.git.*$
|
|
# Translations
|
|
- ^.*/locale/.*po$
|
|
# pre-commit config
|
|
- ^\.pre-commit-config\.yaml$
|
|
|
|
- job:
|
|
name: grenade
|
|
parent: grenade-base
|
|
description: |
|
|
Default grenade job
|
|
|
|
Usually grenade jobs should inherit from this job.
|
|
nodeset: openstack-single-node-jammy
|
|
required-projects:
|
|
# NOTE(andreaf) The devstack and grenade roles take care of setting up
|
|
# repos on the right branch for this job.
|
|
- opendev.org/openstack/cinder
|
|
- opendev.org/openstack/glance
|
|
- opendev.org/openstack/keystone
|
|
- opendev.org/openstack/neutron
|
|
- opendev.org/openstack/nova
|
|
- opendev.org/openstack/placement
|
|
- opendev.org/openstack/swift
|
|
timeout: 10800
|
|
vars:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
# Common OpenStack services settings
|
|
SWIFT_REPLICAS: 1
|
|
SWIFT_START_ALL_SERVICES: false
|
|
SWIFT_HASH: 1234123412341234
|
|
CINDER_PERIODIC_INTERVAL: 10
|
|
DEBUG_LIBVIRT_COREDUMPS: True
|
|
# Multinode specific settings
|
|
SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
HOST_IP: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}"
|
|
CELLSV2_SETUP: "singleconductor"
|
|
# Node specific settings
|
|
DATABASE_TYPE: mysql
|
|
# Glance should always be non-standalone
|
|
GLANCE_STANDALONE: False
|
|
devstack_local_conf:
|
|
post-config:
|
|
$NEUTRON_CONF:
|
|
DEFAULT:
|
|
global_physnet_mtu: "{{ external_bridge_mtu }}"
|
|
grenade_localrc:
|
|
# enable the execution of the base smoke tests by default
|
|
BASE_RUN_SMOKE: True
|
|
devstack_plugins:
|
|
neutron: https://opendev.org/openstack/neutron
|
|
devstack_services:
|
|
# Core services enabled for this branch.
|
|
# This list replaces the test-matrix.
|
|
# Shared services
|
|
dstat: false
|
|
etcd3: true
|
|
mysql: true
|
|
memory_tracker: true
|
|
rabbit: true
|
|
# TODO: tls-proxy is not tested by legacy jobs;
|
|
# enable this after testing.
|
|
tls-proxy: false
|
|
# Keystone services
|
|
key: true
|
|
# Glance services
|
|
g-api: true
|
|
g-reg: true
|
|
# Nova services
|
|
n-api: true
|
|
n-api-meta: true
|
|
n-cauth: true
|
|
n-cond: true
|
|
n-cpu: true
|
|
n-novnc: true
|
|
n-obj: true
|
|
n-sch: true
|
|
placement-api: true
|
|
# Neutron services
|
|
# We need to keep using the neutron-legacy based services for
|
|
# now until all issues with the new lib/neutron code are solved
|
|
q-svc: true
|
|
q-agt: false
|
|
q-dhcp: false
|
|
q-l3: false
|
|
q-meta: false
|
|
q-metering: false
|
|
q-dns: true
|
|
q-ovn-metadata-agent: true
|
|
ovn-controller: true
|
|
ovn-northd: true
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
neutron-trunk: true
|
|
# Swift services
|
|
s-account: true
|
|
s-container: true
|
|
s-object: true
|
|
s-proxy: true
|
|
# Cinder services
|
|
c-api: true
|
|
c-bak: true
|
|
c-sch: true
|
|
c-vol: true
|
|
cinder: true
|
|
# Tempest was enabled by default even before the native Zuul v3 job
|
|
tempest: true
|
|
# Services we don't need.
|
|
# This section is not really needed, it's for readability.
|
|
horizon: false
|
|
# Test matrix emits ceilometer but ceilometer is not installed in the
|
|
# integrated gate, so specifying the services has not effect.
|
|
# ceilometer-*: false
|
|
group-vars:
|
|
subnode:
|
|
devstack_services:
|
|
# Core services enabled for this branch.
|
|
# This list replaces the test-matrix.
|
|
# Shared services
|
|
dstat: false
|
|
memory_tracker: true
|
|
# TODO: tls-proxy is not tested by legacy jobs;
|
|
# enable this after testing.
|
|
tls-proxy: false
|
|
# Nova services
|
|
n-cpu: true
|
|
placement-client: true
|
|
# Neutron services
|
|
# We need to keep using the neutron-legacy based services for
|
|
# now until all issues with the new lib/neutron code are solved
|
|
ovn-controller: true
|
|
ovn-northd: false
|
|
ovs-vswitchd: true
|
|
ovsdb-server: true
|
|
q-fake: true
|
|
q-svc: false
|
|
q-agt: false
|
|
q-dhcp: false
|
|
q-l3: false
|
|
q-meta: false
|
|
q-metering: false
|
|
q-ovn-metadata-agent: true
|
|
# Cinder services
|
|
c-bak: true
|
|
c-vol: true
|
|
# Services we don't run at all on subnode.
|
|
# This section is not really needed, it's for readability.
|
|
# keystone: false
|
|
# s-*: false
|
|
horizon: false
|
|
tempest: false
|
|
# Test matrix emits ceilometer but ceilometer is not installed in the
|
|
# integrated gate, so specifying the services has not effect.
|
|
# ceilometer-*: false
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
# Multinode specific settings
|
|
HOST_IP: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
|
|
SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}"
|
|
CELLSV2_SETUP: "singleconductor"
|
|
# Subnode specific settings
|
|
DATABASE_TYPE: mysql
|
|
GLANCE_HOSTPORT: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}:9292"
|
|
Q_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
RABBIT_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
DATABASE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
|
|
# We need to set this for the subnode to tell devstack to enable
|
|
# VNC for guests that are hosted on the subnode. Otherwise,
|
|
# devstack won't know to enable it given that we don't enable the
|
|
# n-novnc (console proxy) service on the subnode.
|
|
NOVA_VNC_ENABLED: true
|
|
|
|
- job:
|
|
name: grenade-py3
|
|
parent: grenade
|
|
description: |
|
|
Grenade job based on Python 3
|
|
vars:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
USE_PYTHON3: true
|
|
|
|
- job:
|
|
name: grenade-forward
|
|
parent: grenade
|
|
description: |
|
|
Forward test. This is mostly relevant for stable branches,
|
|
because running it in master will execute an upgrade
|
|
to the same commit.
|
|
Former names for this job were:
|
|
* grenade-dsvm-neutron-forward
|
|
* legacy-grenade-dsvm-neutron-forward
|
|
vars:
|
|
# When a stable branch stable/X is created from master,
|
|
# this value should be updated to stable/X.
|
|
grenade_from_branch: master
|
|
|
|
- job:
|
|
name: grenade-dsvm-neutron-forward
|
|
branches:
|
|
regex: ^stable/(stein|train)$
|
|
negate: true
|
|
parent: grenade-forward
|
|
|
|
- job:
|
|
name: grenade-postgresql
|
|
description: |
|
|
Default grenade job which uses PostgreSQL
|
|
parent: grenade
|
|
vars:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
DATABASE_TYPE: postgresql
|
|
devstack_services:
|
|
mysql: false
|
|
postgresql: true
|
|
group-vars:
|
|
subnode:
|
|
devstack_services:
|
|
grenade_devstack_localrc:
|
|
shared:
|
|
DATABASE_TYPE: postgresql
|
|
|
|
- job:
|
|
name: grenade-multinode
|
|
description: |
|
|
Basic multinode grenade job
|
|
parent: grenade
|
|
nodeset: openstack-two-node-jammy
|
|
pre-run: playbooks/multinode-pre.yaml
|
|
|
|
- job:
|
|
name: grenade-skip-level-always
|
|
description: |
|
|
Grenade job that skips the previous release, validating that projects
|
|
can support upgrades from N-2 to N release.
|
|
parent: grenade
|
|
nodeset: openstack-single-node-jammy
|
|
vars:
|
|
# For the base "always" job, this should always be the N-2 release
|
|
# for projects that want to assert N-2 upgradability on all releases.
|
|
grenade_from_branch: stable/2024.2
|
|
grenade_localrc:
|
|
NOVA_ENABLE_UPGRADE_WORKAROUND: True
|