| - nodeset: |
| name: openstack-single-node |
| nodes: |
| - name: controller |
| label: ubuntu-xenial |
| groups: |
| - name: tempest |
| nodes: |
| - controller |
| |
| - nodeset: |
| name: openstack-single-node-bionic |
| nodes: |
| - name: controller |
| label: ubuntu-bionic |
| groups: |
| - name: tempest |
| nodes: |
| - controller |
| |
| - nodeset: |
| name: openstack-single-node-xenial |
| 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-15 |
| nodes: |
| - name: controller |
| label: opensuse-15 |
| groups: |
| - name: tempest |
| nodes: |
| - controller |
| |
| - nodeset: |
| name: devstack-single-node-fedora-latest |
| nodes: |
| - name: controller |
| label: fedora-30 |
| groups: |
| - name: tempest |
| nodes: |
| - controller |
| |
| - nodeset: |
| name: openstack-two-node |
| nodes: |
| - name: controller |
| label: ubuntu-xenial |
| - name: compute1 |
| label: ubuntu-xenial |
| groups: |
| # Node where tests are executed and test results collected |
| - name: tempest |
| nodes: |
| - controller |
| # Nodes running the compute service |
| - name: compute |
| nodes: |
| - controller |
| - compute1 |
| # Nodes that are not the controller |
| - name: subnode |
| nodes: |
| - compute1 |
| # Switch node for multinode networking setup |
| - name: switch |
| nodes: |
| - controller |
| # Peer nodes for multinode networking setup |
| - name: peers |
| nodes: |
| - compute1 |
| |
| - nodeset: |
| name: openstack-two-node-bionic |
| nodes: |
| - name: controller |
| label: ubuntu-bionic |
| - name: compute1 |
| label: ubuntu-bionic |
| groups: |
| # Node where tests are executed and test results collected |
| - name: tempest |
| nodes: |
| - controller |
| # Nodes running the compute service |
| - name: compute |
| nodes: |
| - controller |
| - compute1 |
| # Nodes that are not the controller |
| - name: subnode |
| nodes: |
| - compute1 |
| # Switch node for multinode networking setup |
| - name: switch |
| nodes: |
| - controller |
| # Peer nodes for multinode networking setup |
| - name: peers |
| nodes: |
| - compute1 |
| |
| - nodeset: |
| name: openstack-two-node-xenial |
| nodes: |
| - name: controller |
| label: ubuntu-xenial |
| - name: compute1 |
| label: ubuntu-xenial |
| groups: |
| # Node where tests are executed and test results collected |
| - name: tempest |
| nodes: |
| - controller |
| # Nodes running the compute service |
| - name: compute |
| nodes: |
| - controller |
| - compute1 |
| # Nodes that are not the controller |
| - name: subnode |
| nodes: |
| - compute1 |
| # Switch node for multinode networking setup |
| - name: switch |
| nodes: |
| - controller |
| # Peer nodes for multinode networking setup |
| - name: peers |
| nodes: |
| - compute1 |
| |
| - nodeset: |
| name: openstack-three-node-bionic |
| nodes: |
| - name: controller |
| label: ubuntu-bionic |
| - name: compute1 |
| label: ubuntu-bionic |
| - name: compute2 |
| label: ubuntu-bionic |
| groups: |
| # Node where tests are executed and test results collected |
| - name: tempest |
| nodes: |
| - controller |
| # Nodes running the compute service |
| - name: compute |
| nodes: |
| - controller |
| - compute1 |
| - compute2 |
| # Nodes that are not the controller |
| - name: subnode |
| nodes: |
| - compute1 |
| - compute2 |
| # Switch node for multinode networking setup |
| - name: switch |
| nodes: |
| - controller |
| # Peer nodes for multinode networking setup |
| - name: peers |
| nodes: |
| - compute1 |
| - compute2 |
| |
| - 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 subnode |
| nodes (everything but the controller). |
| required-projects: |
| - opendev.org/openstack/devstack |
| roles: |
| - zuul: opendev.org/openstack/devstack-gate |
| - zuul: opendev.org/openstack/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 by default. |
| LIBVIRT_TYPE: '{{ devstack_libvirt_type | default("qemu") }}' |
| devstack_services: |
| # Ignore any default set by devstack. Emit a "disable_all_services". |
| base: false |
| zuul_copy_output: |
| '{{ 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_log_dir }}/tcpdump.pcap': logs |
| '{{ devstack_log_dir }}/worlddump-latest.txt': 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: 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 |
| '{{ stage_dir }}/audit.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 |
| auto: true |
| group-vars: |
| subnode: |
| 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 |
| 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-minimal |
| parent: devstack-base |
| description: | |
| Minimal devstack base job, intended for use by jobs that need |
| less than the normal minimum set of required-projects. |
| nodeset: openstack-single-node-bionic |
| required-projects: |
| - opendev.org/openstack/requirements |
| vars: |
| devstack_localrc: |
| # Multinode specific settings |
| SERVICE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" |
| HOST_IP: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" |
| PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}' |
| devstack_services: |
| # Shared services |
| dstat: true |
| etcd3: true |
| mysql: true |
| rabbit: true |
| group-vars: |
| subnode: |
| devstack_services: |
| # Shared services |
| dstat: true |
| 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 |
| RABBIT_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" |
| DATABASE_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" |
| |
| |
| - job: |
| name: devstack |
| parent: devstack-minimal |
| description: | |
| Base devstack job for integration gate. |
| |
| This base job can be used for single node and multinode devstack jobs. |
| |
| With a single node nodeset, this job sets up an "all-in-one" (aio) |
| devstack with the seven OpenStack services included in the devstack tree: |
| keystone, glance, cinder, neutron, nova, placement, 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. |
| required-projects: |
| - 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: 7200 |
| vars: |
| devstack_localrc: |
| # Common OpenStack services settings |
| SWIFT_REPLICAS: 1 |
| SWIFT_START_ALL_SERVICES: false |
| SWIFT_HASH: 1234123412341234 |
| DEBUG_LIBVIRT_COREDUMPS: true |
| NOVA_VNC_ENABLED: true |
| devstack_local_conf: |
| post-config: |
| $NEUTRON_CONF: |
| DEFAULT: |
| global_physnet_mtu: '{{ external_bridge_mtu }}' |
| devstack_services: |
| # Core services enabled for this branch. |
| # This list replaces the test-matrix. |
| # Shared services |
| dstat: true |
| etcd3: true |
| mysql: true |
| rabbit: true |
| tls-proxy: true |
| # Keystone services |
| key: true |
| # Glance services |
| g-api: true |
| # Nova services |
| n-api: true |
| n-api-meta: true |
| n-cond: true |
| n-cpu: true |
| n-novnc: 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-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 |
| # 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. |
| 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 |
| group-vars: |
| subnode: |
| devstack_services: |
| # Core services enabled for this branch. |
| # This list replaces the test-matrix. |
| # Shared services |
| dstat: true |
| tls-proxy: true |
| # 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 |
| q-agt: true |
| # 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 |
| devstack_localrc: |
| # Subnode specific settings |
| GLANCE_HOSTPORT: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}:9292" |
| Q_HOST: "{{ hostvars['controller']['nodepool']['private_ipv4'] }}" |
| NOVA_VNC_ENABLED: true |
| |
| - job: |
| name: devstack-ipv6 |
| parent: devstack |
| description: | |
| Devstack single node job for integration gate with IPv6. |
| vars: |
| devstack_localrc: |
| SERVICE_IP_VERSION: 6 |
| SERVICE_HOST: "" |
| # IPv6 and certificates known issue with python2 |
| # https://bugs.launchpad.net/devstack/+bug/1794929 |
| USE_PYTHON3: true |
| |
| - job: |
| name: devstack-multinode |
| parent: devstack |
| nodeset: openstack-two-node-bionic |
| description: | |
| Simple multinode test to verify multinode functionality on devstack side. |
| This is not meant to be used as a parent job. |
| |
| # 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-opensuse-15 |
| parent: tempest-full-py3 |
| description: openSUSE 15.x platform test |
| nodeset: devstack-single-node-opensuse-15 |
| voting: false |
| |
| - job: |
| name: devstack-platform-fedora-latest |
| parent: tempest-full-py3 |
| description: Fedora latest platform test |
| nodeset: devstack-single-node-fedora-latest |
| voting: false |
| |
| - job: |
| name: devstack-platform-fedora-latest-virt-preview |
| parent: tempest-full-py3 |
| description: Fedora latest platform test using the virt-preview repo. |
| nodeset: devstack-single-node-fedora-latest |
| voting: false |
| vars: |
| devstack_localrc: |
| ENABLE_FEDORA_VIRT_PREVIEW_REPO: true |
| |
| - 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: |
| templates: |
| - integrated-gate-py3 |
| - publish-openstack-docs-pti |
| check: |
| jobs: |
| - devstack |
| - devstack-ipv6 |
| - devstack-platform-opensuse-15 |
| - devstack-platform-fedora-latest |
| - devstack-multinode |
| - devstack-unit-tests |
| - openstack-tox-bashate |
| - ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa: |
| voting: false |
| - swift-dsvm-functional: |
| voting: false |
| irrelevant-files: &dsvm-irrelevant-files |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - swift-dsvm-functional-py3: |
| voting: false |
| irrelevant-files: *dsvm-irrelevant-files |
| - grenade-py3: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - neutron-grenade-multinode: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - neutron-tempest-linuxbridge: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - tempest-multinode-full-py3: |
| voting: false |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - openstacksdk-functional-devstack: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - tempest-ipv6-only: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| # NOTE(gmann): Remove this job from devstack pipeline once it is |
| # migrated to zuulv3 native. This is legacy job and rely on |
| # devstack-gate + devstack setting so any change in devstack can |
| # break it. |
| - nova-live-migration: |
| voting: false |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| gate: |
| jobs: |
| - devstack |
| - devstack-ipv6 |
| - devstack-multinode |
| - devstack-unit-tests |
| - openstack-tox-bashate |
| - neutron-grenade-multinode: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - neutron-tempest-linuxbridge: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - grenade-py3: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - openstacksdk-functional-devstack: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - tempest-ipv6-only: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| # 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 |
| # * 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. |
| # * nova-multi-cell: maintained by nova and currently non-voting in the |
| # check queue for nova changes but relies on devstack configuration |
| # * devstack-platform-fedora-latest-virt-preview: Maintained by lyarwood |
| # for Nova to allow early testing of the latest versions of Libvirt and |
| # QEMU. Should only graduate out of experimental if it ever moves into |
| # the check queue for Nova. |
| |
| experimental: |
| jobs: |
| - nova-multi-cell |
| - nova-next |
| - neutron-fullstack-with-uwsgi |
| - neutron-functional-with-uwsgi |
| - neutron-tempest-with-uwsgi |
| - devstack-plugin-ceph-tempest-py3: |
| 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/.*$ |
| - tempest-pg-full: |
| irrelevant-files: |
| - ^.*\.rst$ |
| - ^doc/.*$ |
| - devstack-platform-fedora-latest-virt-preview |