.zuul.yaml
36ddea31
 - nodeset:
     name: openstack-single-node
     nodes:
       - name: controller
         label: ubuntu-xenial
     groups:
       - name: tempest
         nodes:
           - controller
 
 - nodeset:
11641ce1
     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:
4404f680
     name: devstack-single-node-opensuse-tumbleweed
     nodes:
       - name: controller
         label: opensuse-tumbleweed
     groups:
       - name: tempest
         nodes:
           - controller
 
 - nodeset:
11641ce1
     name: devstack-single-node-fedora-27
     nodes:
       - name: controller
         label: fedora-27
     groups:
       - name: tempest
         nodes:
           - controller
 
 - nodeset:
36ddea31
     name: openstack-two-node
     nodes:
       - name: controller
         label: ubuntu-xenial
       - name: compute1
         label: ubuntu-xenial
     groups:
5e714d33
       # Node where tests are executed and test results collected
36ddea31
       - name: tempest
         nodes:
           - controller
5e714d33
       # Nodes running the compute service
36ddea31
       - name: compute
         nodes:
           - controller
           - compute1
5e714d33
       # Nodes that are not the controller
7d444654
       - name: subnode
         nodes:
           - compute1
5e714d33
       # Switch node for multinode networking setup
7b1d5b64
       - name: switch
         nodes:
           - controller
5e714d33
       # Peer nodes for multinode networking setup
7b1d5b64
       - name: peers
         nodes:
           - compute1
36ddea31
 
 - job:
7b1d5b64
     name: devstack-base
36ddea31
     parent: multinode
7b1d5b64
     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
5e714d33
       job.group-vars.peers, which is what is used by multi node jobs for subnode
7b1d5b64
       nodes (everything but the controller).
36ddea31
     required-projects:
       - openstack-dev/devstack
d8753b7d
     roles:
7d444654
       - zuul: openstack-infra/devstack-gate
d8753b7d
       - zuul: openstack-infra/openstack-zuul-jobs
36ddea31
     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
c0d8c1c7
         LOG_COLOR: false
         VERBOSE: true
83ecb97f
         VERBOSE_NO_TIMESTAMP: true
c0d8c1c7
         NOVNC_FROM_PACKAGE: true
         ERROR_ON_CLONE: true
c9e109f1
         # Gate jobs can't deal with nested virt. Disable it.
         LIBVIRT_TYPE: qemu
36ddea31
         # 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.
c0d8c1c7
         ETCD_DOWNLOAD_URL: http://tarballs.openstack.org/etcd/
36ddea31
       devstack_services:
d9c1275c
         # Ignore any default set by devstack. Emit a "disable_all_services".
7b1d5b64
         base: false
a904cade
       zuul_copy_output:
         '{{ devstack_conf_dir }}/local.conf': 'logs'
         '{{ devstack_conf_dir }}/localrc': 'logs'
2a2349be
         '{{ devstack_conf_dir }}/.localrc.auto': 'logs'
a904cade
         '{{ 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'
63171eea
       extensions_to_txt:
         conf: True
         log: True
         localrc: True
         stackenv: True
2a2349be
         auto: True
7b1d5b64
     group-vars:
5e714d33
       subnode:
7b1d5b64
         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
c0d8c1c7
     pre-run: playbooks/pre.yaml
     run: playbooks/devstack.yaml
     post-run: playbooks/post.yaml
b4d772b9
     irrelevant-files:
       # Documentation related
       - ^.*\.rst$
       - ^api-ref/.*$
       - ^doc/.*$
       - ^releasenotes/.*$
       # Translations
       - ^.*/locale/.*po$
36ddea31
 
7d444654
 - job:
7b1d5b64
     name: devstack
     parent: devstack-base
     description: |
5e714d33
       Base devstack job for integration gate.
 
       This base job can be used for single node and multinode devstack jobs.
067e3658
 
       With a single node nodeset, this job sets up an "all-in-one" (aio)
       devstack with the six OpenStack services included in the devstack tree:
       keystone, glance, cinder, neutron, nova and swift.
 
       With a two node nodeset, this job sets up an aio + compute node.
       The controller can be customised using host-vars.controller, the
       sub-nodes can be customised using group-vars.subnode.
 
       Descendent jobs can enable / disable services, add devstack configuration
       options, enable devstack plugins, configure log files or directories to be
       transferred to the log server.
 
       The job assumes that there is only one controller node. The number of
       subnodes can be scaled up seamlessly by setting a custom nodeset in
       job.nodeset.
 
       The run playbook consists of a single role, so it can be easily rewritten
       and extended.
7b1d5b64
     nodeset: openstack-single-node
     required-projects:
       - openstack/cinder
       - openstack/glance
       - openstack/keystone
       - openstack/neutron
       - openstack/nova
       - openstack/requirements
       - openstack/swift
     timeout: 7200
     vars:
       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'] }}"
5e714d33
         # Multinode specific settings
         SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
         HOST_IP: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
         PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}"
34e09dd3
       devstack_local_conf:
5e714d33
         post-config:
           $NEUTRON_CONF:
             DEFAULT:
               global_physnet_mtu: "{{ external_bridge_mtu }}"
7b1d5b64
       devstack_services:
d9c1275c
         # Core services enabled for this branch.
         # This list replaces the test-matrix.
         # Shared services
         dstat: true
         etcd3: true
         mysql: true
         peakmem_tracker: true
         rabbit: true
         tls-proxy: true
         # 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
e6faf84e
         # We need to keep using the neutron-legacy based services for
         # now until all issues with the new lib/neutron code are solved
         q-agt: true
         q-dhcp: true
         q-l3: true
         q-meta: true
         q-metering: true
         q-svc: true
         # neutron-api: true
         # neutron-agent: true
         # neutron-dhcp: true
         # neutron-l3: true
         # neutron-metadata-agent: true
         # neutron-metering: true
d9c1275c
         # 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
         # Services we don't need.
         # This section is not really needed, it's for readability.
7b1d5b64
         horizon: false
         tempest: false
d9c1275c
         # Test matrix emits ceilometer but ceilomenter 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: true
           peakmem_tracker: true
           tls-proxy: true
           # Nova services
           n-cpu: true
           placement-client: true
           # Neutron services
           neutron-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 ceilomenter is not installed in the
           # integrated gate, so specifying the services has not effect.
           # ceilometer-*: false
5e714d33
         devstack_localrc:
           # Multinode specific settings
           HOST_IP: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
           SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
           PUBLIC_BRIDGE_MTU: "{{ external_bridge_mtu }}"
           # 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'] }}"
7b1d5b64
 
 - job:
7d444654
     name: devstack-multinode
5e714d33
     parent: devstack
7d444654
     nodeset: openstack-two-node
5e714d33
     description: |
       Simple multinode test to verify multinode functionality on devstack side.
       This is not meant to be used as a parent job.
36ddea31
 
11641ce1
 # 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
4404f680
     description: openSUSE 43.2 platform test
11641ce1
     nodeset: devstack-single-node-opensuse-423
     voting: false
 
 - job:
4404f680
     name: devstack-platform-opensuse-tumbleweed
     parent: tempest-full
     description: openSUSE Tumbleweed platform test
     nodeset: devstack-single-node-opensuse-tumbleweed
     voting: false
 
 - job:
11641ce1
     name: devstack-platform-fedora-27
     parent: tempest-full
     description: Fedora 27 platform test
     nodeset: devstack-single-node-fedora-27
     voting: false
 
e1b0c388
 - 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
 
838b833b
 - 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
 
36ddea31
 - project:
     check:
       jobs:
9640d3bf
         - devstack
11641ce1
         - devstack-platform-centos-7
         - devstack-platform-opensuse-423
4404f680
         - devstack-platform-opensuse-tumbleweed
11641ce1
         - devstack-platform-fedora-27
7d444654
         - devstack-multinode
838b833b
         - devstack-unit-tests
52804403
     gate:
       jobs:
         - devstack
838b833b
         - devstack-unit-tests
1610cc22
     # 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
21e3be8a
     experimental:
       jobs:
         - nova-next