trove/.zuul.yaml
Lingxian Kong aa1d4d2246 Datastore containerization
Significant changes:

* Using docker image to install datastore.
* Datastore image is common to different datastores.
* Using backup docker image to do backup and restore.
* Support MariaDB replication
* Set most of the functional jobs as non-voting as nested
  virtualization is not supported in CI.

Change-Id: Ia9c97a63a961eebc336b70d28dc77638144c1834
2020-05-27 10:31:50 +12:00

430 lines
12 KiB
YAML

- project:
templates:
- check-requirements
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- openstack-python3-victoria-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
check:
jobs:
- openstack-tox-cover:
voting: false
- openstack-tox-pylint
- trove-tox-bandit-baseline:
voting: false
- trove-tempest
- trove-functional-mysql:
voting: false
- trove-scenario-mysql-single:
voting: false
- trove-scenario-mysql-multi:
voting: false
- trove-scenario-mariadb-single:
voting: false
- trove-scenario-mariadb-multi:
voting: false
- trove-tempest-ipv6-only:
voting: false
- trove-functional-mysql-nondev:
voting: false
gate:
queue: trove
jobs:
- openstack-tox-pylint
- trove-functional-mysql:
voting: false
- trove-scenario-mysql-single:
voting: false
- trove-scenario-mysql-multi:
voting: false
experimental:
jobs:
- trove-grenade
- trove-scenario-cassandra-single
- trove-scenario-cassandra-multi
- trove-scenario-couchbase-single
- trove-scenario-couchdb-single
- trove-scenario-percona-single
- trove-scenario-percona-multi
- trove-scenario-pxc-single
- trove-scenario-pxc-multi
- trove-scenario-redis-single
- trove-scenario-redis-multi
periodic:
jobs:
- publish-trove-guest-image-mysql-ubuntu-xenial:
branches:
- master
- publish-trove-guest-image-mysql-ubuntu-xenial-dev:
branches:
- master
- job:
name: trove-legacy-dsvm-base
parent: legacy-dsvm-base
abstract: true
timeout: 10800
required-projects:
- openstack/devstack-gate
- openstack/diskimage-builder
- openstack/tripleo-image-elements
- openstack/trove
- openstack/trove-dashboard
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^tools/.*$
- ^trove/hacking/.*$
- ^trove/tests/unittests/.*$
- job:
name: trove-devstack-base
parent: devstack
abstract: true
timeout: 10800
required-projects:
- openstack/tempest
- openstack/diskimage-builder
- openstack/tripleo-image-elements
- openstack/trove
- openstack/trove-dashboard
vars:
devstack_services:
tempest: true
tls-proxy: false
devstack_plugins:
trove: https://opendev.org/openstack/trove
# NOTE(zhaochao): we have to override the default settings from the
# the base devstack job about "SERVICE_HOST" and "HOST_IP", as trove
# guestagent should use public addresses to access the underlying
# components(MQ and Swift), and the previous devstack-gate jobs didn't
# set these variables. However we cannot unset variables in job
# definition, so we just set SERVICE_HOST and HOST_IP to empty strings,
# and VNCSERVER_PROXYCLIENT_ADDRESS to 127.0.0.1 instead.
devstack_localrc:
SERVICE_HOST: ''
HOST_IP: ''
VNCSERVER_PROXYCLIENT_ADDRESS: 127.0.0.1
USE_PYTHON3: True
run: playbooks/trove-devstack-base.yaml
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^tools/.*$
- ^trove/hacking/.*$
- ^trove/tests/unittests/.*$
- job:
name: trove-fakemodetests-base
parent: openstack-tox-py36
abstract: true
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^contrib/.*$
- ^doc/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^trove/hacking/.*$
- ^trove/tests/api/.*$
- ^trove/tests/db/.*$
- ^trove/tests/scenario/.*$
- ^trove/tests/unittests/.*$
- job:
name: trove-functional-mysql
parent: trove-devstack-base
vars:
devstack_localrc:
TROVE_RESIZE_TIME_OUT: 1800
trove_resize_time_out: 1800
trove_test_datastore: 'mysql'
trove_test_group: 'mysql'
trove_test_datastore_version: '5.7.29'
- job:
name: trove-functional-mysql-nondev
parent: trove-devstack-base
vars:
devstack_localrc:
TROVE_RESIZE_TIME_OUT: 1800
TROVE_NON_DEV_IMAGE_URL: https://tarballs.opendev.org/openstack/trove/images/trove-master-mysql-ubuntu-xenial.qcow2
trove_resize_time_out: 1800
trove_test_datastore: 'mysql'
trove_test_group: 'mysql'
trove_test_datastore_version: '5.7.29'
- job:
name: trove-grenade
parent: trove-legacy-dsvm-base
run: playbooks/legacy/grenade-dsvm-trove/run.yaml
post-run: playbooks/legacy/grenade-dsvm-trove/post.yaml
required-projects:
- openstack/grenade
- openstack/devstack-gate
- openstack/trove
- openstack/trove-dashboard
- job:
name: trove-scenario-cassandra-single
parent: trove-devstack-base
vars:
trove_test_datastore: cassandra
trove_test_group: cassandra-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-cassandra-multi
parent: trove-devstack-base
vars:
trove_test_datastore: cassandra
trove_test_group: cassandra-supported-multi
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-couchdb-single
parent: trove-devstack-base
vars:
trove_test_datastore: couchdb
trove_test_group: couchdb-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-couchbase-single
parent: trove-devstack-base
vars:
trove_test_datastore: couchbase
trove_test_group: couchbase-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-mariadb-single
parent: trove-devstack-base
vars:
trove_test_datastore: mariadb
trove_test_group: mariadb-supported-single
trove_test_datastore_version: 10.4.12
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-mariadb-multi
parent: trove-devstack-base
vars:
trove_test_datastore: mariadb
trove_test_group: mariadb-supported-multi
trove_test_datastore_version: 10.4.12
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-mysql-single
parent: trove-devstack-base
vars:
trove_test_datastore: mysql
trove_test_group: mysql-supported-single
trove_test_datastore_version: 5.7.29
- job:
name: trove-scenario-mysql-multi
parent: trove-devstack-base
vars:
trove_test_datastore: mysql
trove_test_group: mysql-supported-multi
trove_test_datastore_version: 5.7.29
- job:
name: trove-scenario-percona-multi
parent: trove-devstack-base
vars:
trove_test_datastore: percona
trove_test_group: percona-supported-multi
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-percona-single
parent: trove-devstack-base
vars:
trove_test_datastore: percona
trove_test_group: percona-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-postgresql-single
parent: trove-devstack-base
vars:
trove_test_datastore: postgresql
trove_test_group: postgresql-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-postgresql-multi
parent: trove-devstack-base
vars:
trove_test_datastore: postgresql
trove_test_group: postgresql-supported-multi
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-pxc-single
parent: trove-devstack-base
vars:
trove_test_datastore: pxc
trove_test_group: pxc-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-pxc-multi
parent: trove-devstack-base
vars:
trove_test_datastore: pxc
trove_test_group: pxc-supported-multi
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-redis-single
parent: trove-devstack-base
vars:
trove_test_datastore: redis
trove_test_group: redis-supported-single
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-scenario-redis-multi
parent: trove-devstack-base
vars:
trove_test_datastore: redis
trove_test_group: redis-supported-multi
devstack_localrc:
TROVE_ENABLE_IMAGE_BUILD: false
- job:
name: trove-tox-bandit-baseline
parent: openstack-tox
timeout: 2400
vars:
tox_envlist: bandit-baseline
required-projects:
- openstack/requirements
irrelevant-files:
- ^.*\.rst$
- ^.*\.txt$
- ^api-ref/.*$
- ^contrib/.*$
- ^doc/.*$
- ^etc/.*$
- ^releasenotes/.*$
- ^setup.cfg$
- ^tools/.*$
- ^trove/hacking/.*$
- ^trove/tests/scenario/.*$
- ^trove/tests/unittests/.*$
- job:
name: trove-tempest
parent: devstack-tempest
timeout: 7800
required-projects: &base_required_projects
- openstack/trove
- openstack/trove-tempest-plugin
- openstack/tempest
irrelevant-files:
- ^.*\.rst$
- ^api-ref/.*$
- ^doc/.*$
- ^etc/.*$
- ^releasenotes/.*$
vars: &base_vars
tox_envlist: all
tempest_concurrency: 2
devstack_localrc:
TEMPEST_PLUGINS: /opt/stack/trove-tempest-plugin
USE_PYTHON3: true
devstack_local_conf:
post-config:
$TROVE_CONF:
DEFAULT:
usage_timeout: 1800
devstack_plugins:
trove: https://opendev.org/openstack/trove.git
devstack_services:
etcd3: false
tls-proxy: false
ceilometer-acentral: false
ceilometer-acompute: false
ceilometer-alarm-evaluator: false
ceilometer-alarm-notifier: false
ceilometer-anotification: false
ceilometer-api: false
ceilometer-collector: false
cinder: true
c-sch: true
c-api: true
c-vol: true
c-bak: false
swift: true
s-account: true
s-container: true
s-object: true
s-proxy: true
tempest: true
tempest_test_regex: ^trove_tempest_plugin\.tests
- job:
name: publish-trove-guest-image
parent: publish-openstack-artifacts
run: playbooks/image-build/run.yaml
post-run: playbooks/image-build/post.yaml
required-projects:
- openstack/diskimage-builder
- openstack/trove
- openstack/tripleo-image-elements
- job:
name: publish-trove-guest-image-mysql-ubuntu-xenial
parent: publish-trove-guest-image
description: |
Build and publish Ubuntu Xenial based Trove guest image to
tarballs.openstack.org.
vars:
datastore_type: mysql
guest_os: ubuntu
guest_os_release: xenial
guest_username: ubuntu
branch: master
dev_mode: false
image_suffix: ""
- job:
name: publish-trove-guest-image-mysql-ubuntu-xenial-dev
parent: publish-trove-guest-image
description: |
Build and publish Ubuntu Xenial based Trove guest image to
tarballs.openstack.org.
vars:
datastore_type: mysql
guest_os: ubuntu
guest_os_release: xenial
guest_username: ubuntu
branch: master
dev_mode: true
image_suffix: "-dev"