.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:
bed03ea7
     name: devstack-single-node-fedora-latest
     nodes:
       - name: controller
         label: fedora-28
     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:
ef357133
       - git.openstack.org/openstack-dev/devstack
d8753b7d
     roles:
ef357133
       - zuul: git.openstack.org/openstack-infra/devstack-gate
       - zuul: git.openstack.org/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
       devstack_services:
d9c1275c
         # Ignore any default set by devstack. Emit a "disable_all_services".
7b1d5b64
         base: false
a904cade
       zuul_copy_output:
a0d1016e
         '{{ devstack_conf_dir }}/local.conf': logs
         '{{ devstack_conf_dir }}/localrc': logs
         '{{ devstack_conf_dir }}/.localrc.auto': 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
63171eea
       extensions_to_txt:
a0d1016e
         conf: true
         log: true
         localrc: true
         stackenv: true
         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
         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:
4d7e3375
     name: devstack-minimal
7b1d5b64
     parent: devstack-base
     description: |
4d7e3375
       Minimal devstack base job, intended for use by jobs that need
       less than the normal minimum set of required-projects.
     nodeset: openstack-single-node
     required-projects:
ef357133
       - git.openstack.org/openstack/requirements
4d7e3375
     vars:
       devstack_localrc:
         # Multinode specific settings
         SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
         HOST_IP: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
a0d1016e
         PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
4d7e3375
       devstack_services:
         # Shared services
         dstat: true
         etcd3: true
         mysql: true
         peakmem_tracker: true
         rabbit: true
     group-vars:
       subnode:
         devstack_services:
           # Shared services
           dstat: true
           peakmem_tracker: true
         devstack_localrc:
           # Multinode specific settings
           HOST_IP: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
           SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
a0d1016e
           PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
4d7e3375
           # Subnode specific settings
           DATABASE_TYPE: mysql
           RABBIT_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
           DATABASE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
 
 
 - job:
     name: devstack
     parent: devstack-minimal
     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:
ef357133
       - git.openstack.org/openstack/cinder
       - git.openstack.org/openstack/glance
       - git.openstack.org/openstack/keystone
       - git.openstack.org/openstack/neutron
       - git.openstack.org/openstack/nova
       - git.openstack.org/openstack/swift
7b1d5b64
     timeout: 7200
     vars:
       devstack_localrc:
         # Common OpenStack services settings
         SWIFT_REPLICAS: 1
         SWIFT_START_ALL_SERVICES: false
         SWIFT_HASH: 1234123412341234
         CINDER_PERIODIC_INTERVAL: 10
a0d1016e
         DEBUG_LIBVIRT_COREDUMPS: true
7b1d5b64
         NOVA_VNC_ENABLED: true
         VNCSERVER_LISTEN: 0.0.0.0
05da9a9b
         VNCSERVER_PROXYCLIENT_ADDRESS: $HOST_IP
34e09dd3
       devstack_local_conf:
5e714d33
         post-config:
           $NEUTRON_CONF:
             DEFAULT:
a0d1016e
               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:
           # Subnode specific settings
           GLANCE_HOSTPORT: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}:9292"
           Q_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}"
05da9a9b
           NOVA_VNC_ENABLED: true
           VNCSERVER_LISTEN: 0.0.0.0
           VNCSERVER_PROXYCLIENT_ADDRESS: $HOST_IP
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:
bed03ea7
     name: devstack-platform-fedora-latest
11641ce1
     parent: tempest-full
bed03ea7
     description: Fedora latest platform test
     nodeset: devstack-single-node-fedora-latest
11641ce1
     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:
a0d1016e
     templates:
       - integrated-gate
       - integrated-gate-py35
53db72c6
       - publish-openstack-docs-pti
36ddea31
     check:
       jobs:
9640d3bf
         - devstack
11641ce1
         - devstack-platform-centos-7
         - devstack-platform-opensuse-423
4404f680
         - devstack-platform-opensuse-tumbleweed
bed03ea7
         - devstack-platform-fedora-latest
7d444654
         - devstack-multinode
838b833b
         - devstack-unit-tests
a0d1016e
         - openstack-tox-bashate
         - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa:
             voting: false
         - legacy-swift-dsvm-functional:
             voting: false
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-grenade:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-grenade-multinode:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-tempest-linuxbridge:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - tempest-multinode-full:
             voting: false
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
52804403
     gate:
       jobs:
         - devstack
838b833b
         - devstack-unit-tests
a0d1016e
         - openstack-tox-bashate
         - neutron-grenade-multinode:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-tempest-linuxbridge:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-grenade:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
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.
     #
36c3aaa0
     # * nova-cells-v1: maintained by nova for cells v1 (nova-cells service);
     #    nova gates on this job, it's in experimental for testing cells v1
     #    changes to devstack w/o gating on it for all devstack changes.
1610cc22
     # * nova-next: maintained by nova for unreleased/undefaulted
     #    things like cellsv2 and placement-api
66b361b5
     # * neutron-fullstack-with-uwsgi: maintained by neutron for fullstack test
     #    when neutron-api is served by uwsgi, it's in exprimental for testing.
     #    the next cycle we can remove this  job if things turn out to be
     #    stable enough.
     # * neutron-functional-with-uwsgi: maintained by neutron for functional
     #    test. Next cycle we can remove this one if things turn out to be
     #    stable engouh with uwsgi.
     # * neutron-tempest-with-uwsgi: maintained by neutron for tempest test.
     #    Next cycle we can remove this if everything run out stable enough.
 
21e3be8a
     experimental:
       jobs:
36c3aaa0
         - nova-cells-v1:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
21e3be8a
         - nova-next
66b361b5
         - neutron-fullstack-with-uwsgi
         - neutron-functional-with-uwsgi
a0d1016e
         - neutron-tempest-with-uwsgi
         - legacy-tempest-dsvm-full-devstack-plugin-ceph:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - legacy-tempest-dsvm-py35-full-devstack-plugin-ceph:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-tempest-dvr:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - legacy-tempest-dsvm-neutron-dvr-multinode-full:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - neutron-tempest-dvr-ha-multinode-full:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - legacy-tempest-dsvm-lvm-multibackend:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$
         - legacy-tempest-dsvm-neutron-pg-full:
             irrelevant-files:
               - ^.*\.rst$
               - ^doc/.*$