devstack/.zuul.yaml
Ian Wienand 1610cc2219 Add a note on experimental jobs
With I4161e1f1c8d47070dd35fad38b00715438d94eb2 and
I37fe007dc6f387d43cbaf55771027718005ac40d we have removed most of the
legacy experimental jobs.

Add a short note so we don't go back to the Hotel California model of
"you can check in but never check out".  With zuulv3 it is possible to
have self-testing changes for testing indiviual jobs.  Experimental
should be for things with wider application to run against all
changes.

Change-Id: Ibfb902b17a8f7d5355689f2a584c061c001df0d8
2018-03-06 11:40:46 +11:00

335 lines
10 KiB
YAML

- nodeset:
name: openstack-single-node
nodes:
- name: controller
label: ubuntu-xenial
groups:
- name: tempest
nodes:
- controller
- nodeset:
name: devstack-single-node-centos-7
nodes:
- name: controller
label: centos-7
groups:
- name: tempest
nodes:
- controller
- nodeset:
name: devstack-single-node-opensuse-423
nodes:
- name: controller
label: opensuse-423
groups:
- name: tempest
nodes:
- controller
- nodeset:
name: devstack-single-node-fedora-27
nodes:
- name: controller
label: fedora-27
groups:
- name: tempest
nodes:
- controller
- nodeset:
name: openstack-two-node
nodes:
- name: controller
label: ubuntu-xenial
- name: compute1
label: ubuntu-xenial
groups:
- name: tempest
nodes:
- controller
- name: compute
nodes:
- controller
- compute1
- name: subnode
nodes:
- compute1
- name: switch
nodes:
- controller
- name: peers
nodes:
- compute1
- job:
name: devstack-base
parent: multinode
abstract: true
description: |
Base abstract Devstack job.
Defines plays and base variables, but it does not include any project
and it does not run any service by default. This is a common base for
all single Devstack jobs, single or multinode.
Variables are defined in job.vars, which is what is then used by single
node jobs and by multi node jobs for the controller, as well as in
job.group-vars.peers, which is what is used by multi node jobs for peer
nodes (everything but the controller).
required-projects:
- openstack-dev/devstack
roles:
- zuul: openstack-infra/devstack-gate
- zuul: openstack-infra/openstack-zuul-jobs
vars:
devstack_localrc:
DATABASE_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
LOGFILE: /opt/stack/logs/devstacklog.txt
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
# NOTE(dims): etcd 3.x is not available in debian/ubuntu
# etc. As a stop gap measure, devstack uses wget to download
# from the location below for all the CI jobs.
ETCD_DOWNLOAD_URL: http://tarballs.openstack.org/etcd/
devstack_services:
base: false
zuul_copy_output:
'{{ devstack_conf_dir }}/local.conf': 'logs'
'{{ devstack_conf_dir }}/localrc': 'logs'
'{{ devstack_conf_dir }}/.stackenv': 'logs'
'{{ devstack_log_dir }}/dstat-csv.log': 'logs'
'{{ devstack_log_dir }}/devstacklog.txt': 'logs'
'{{ devstack_log_dir }}/devstacklog.txt.summary': 'logs'
'{{ devstack_full_log}}': 'logs'
'{{ stage_dir }}/verify_tempest_conf.log': '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.err': 'logs'
'/var/log/mysql.log': '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:
conf: True
log: True
localrc: True
stackenv: True
group-vars:
peers:
devstack_localrc:
DATABASE_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
LOGFILE: /opt/stack/logs/devstacklog.txt
LOG_COLOR: false
VERBOSE: true
VERBOSE_NO_TIMESTAMP: true
NOVNC_FROM_PACKAGE: true
ERROR_ON_CLONE: true
LIBVIRT_TYPE: qemu
ETCD_DOWNLOAD_URL: http://tarballs.openstack.org/etcd/
devstack_services:
base: false
pre-run: playbooks/pre.yaml
run: playbooks/devstack.yaml
post-run: playbooks/post.yaml
irrelevant-files:
# Documentation related
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^releasenotes/.*$
# Translations
- ^.*/locale/.*po$
- job:
name: devstack
parent: devstack-base
description: |
Single node devstack job for integration gate.
nodeset: openstack-single-node
required-projects:
- openstack/cinder
- openstack/glance
- openstack/keystone
- openstack/neutron
- openstack/nova
- openstack/requirements
- openstack/swift
timeout: 7200
vars:
test_matrix_configs: [neutron, tlsproxy]
devstack_localrc:
# Common OpenStack services settings
SWIFT_REPLICAS: 1
SWIFT_START_ALL_SERVICES: false
SWIFT_HASH: 1234123412341234
CINDER_PERIODIC_INTERVAL: 10
DEBUG_LIBVIRT_COREDUMPS: True
NOVA_VNC_ENABLED: true
VNCSERVER_LISTEN: 0.0.0.0
VNCSERVER_PROXYCLIENT_ADDRESS: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
devstack_services:
base: true
horizon: false
tempest: false
- job:
name: devstack-multinode
parent: devstack-base
description: Base devstack multinode job
nodeset: openstack-two-node
# NOTE(andreaf) The multinode job is useful to see the setup of different
# services on different nodes, however the subnode configuration is not
# ready yet. Until then this job should stay non-voting.
voting: false
# NOTE(ianw) Platform tests have traditionally been non-voting because
# we often have to rush things through devstack to stabilise the gate,
# and these platforms don't have the round-the-clock support to avoid
# becoming blockers in that situation.
- job:
name: devstack-platform-centos-7
parent: tempest-full
description: Centos 7 platform test
nodeset: devstack-single-node-centos-7
voting: false
- job:
name: devstack-platform-opensuse-423
parent: tempest-full
description: OpenSuSE 43.2 platform test
nodeset: devstack-single-node-opensuse-423
voting: false
- job:
name: devstack-platform-fedora-27
parent: tempest-full
description: Fedora 27 platform test
nodeset: devstack-single-node-fedora-27
voting: false
- job:
name: devstack-tox-base
parent: devstack
description: |
Base job for devstack-based functional tests that use tox.
This job is not intended to be run directly. It's just here
for organizational purposes for devstack-tox-functional and
devstack-tox-functional-consumer.
post-run: playbooks/tox/post.yaml
vars:
tox_envlist: functional
tox_install_siblings: false
- job:
name: devstack-tox-functional
parent: devstack-tox-base
description: |
Base job for devstack-based functional tests that use tox.
Runs devstack, then runs the tox ``functional`` environment,
then collects tox/testr build output like normal tox jobs.
Turns off tox sibling installation. Projects may be involved
in the devstack deployment and so may be in the required-projects
list, but may not want to test against master of the other
projects in their tox env. Child jobs can set tox_install_siblings
to True to re-enable sibling processing.
run: playbooks/tox/run-both.yaml
- job:
name: devstack-tox-functional-consumer
parent: devstack
description: |
Base job for devstack-based functional tests for projects that
consume the devstack cloud.
This base job should only be used by projects that are not involved
in the devstack deployment step, but are instead projects that are using
devstack to get a cloud against which they can test things.
Runs devstack in pre-run, then runs the tox ``functional`` environment,
then collects tox/testr build output like normal tox jobs.
Turns off tox sibling installation. Projects may be involved
in the devstack deployment and so may be in the required-projects
list, but may not want to test against master of the other
projects in their tox env. Child jobs can set tox_install_siblings
to True to re-enable sibling processing.
pre-run:
- playbooks/devstack.yaml
- playbooks/tox/pre.yaml
run: playbooks/tox/run.yaml
- job:
name: devstack-unit-tests
description: |
Runs unit tests on devstack project.
It runs ``run_tests.sh``.
pre-run: playbooks/unit-tests/pre.yaml
run: playbooks/unit-tests/run.yaml
- project:
check:
jobs:
- devstack
- devstack-platform-centos-7
- devstack-platform-opensuse-423
- devstack-platform-fedora-27
- devstack-multinode
- devstack-unit-tests
gate:
jobs:
- devstack
- devstack-unit-tests
# Please add a note on each job and conditions for the job not
# being experimental any more, so we can keep this list somewhat
# pruned.
#
# * nova-next: maintained by nova for unreleased/undefaulted
# things like cellsv2 and placement-api
experimental:
jobs:
- nova-next