
Rather than implement functional OpenStack testing as a devstack plugin, use devstack as a black-box OpenStack. This allows us to move nodepool to a new Zuul tenant without depending on the devstack job and all its associated projects. It will also let us replace devstack with something potentially lighter weight in the future. The job permits customized settings for what images to build, so that the DIB project can inherit from it and make child jobs for each of the operating systems it cares about. Change-Id: Ie6bc891cebd32b3d1bb646109f13ac2fd383bba5
336 lines
10 KiB
YAML
336 lines
10 KiB
YAML
- job:
|
|
name: nodepool-zuul-functional
|
|
parent: tox
|
|
description: |
|
|
Test that zuul works with current nodepool sources.
|
|
|
|
This test runs the zuul project ``nodepool`` environment.
|
|
pre-run: playbooks/nodepool-zuul-functional/pre.yaml
|
|
post-run: playbooks/nodepool-zuul-functional/post.yaml
|
|
required-projects:
|
|
- zuul/nodepool
|
|
- zuul/zuul
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.projects['opendev.org/zuul/zuul'].src_dir }}"
|
|
tox_envlist: nodepool
|
|
|
|
- job:
|
|
name: nodepool-functional-openstack-base
|
|
description: |
|
|
Test Nodepool with an OpenStack.
|
|
|
|
Sets up a working OpenStack system, builds an image, launches a
|
|
node, and verifies SSH access to the node.
|
|
|
|
.. zuul:jobvar:: nodepool_extra_packages
|
|
:type: list
|
|
|
|
A list of extra packages to install at the start of the job
|
|
(i.e., anything needed for the DIB build).
|
|
|
|
.. zuul:jobvar:: nodepool_diskimage
|
|
:type: dict
|
|
|
|
.. zuul:jobvar:: base_element
|
|
|
|
The base element to use when building the disk image.
|
|
|
|
.. zuul:jobvar:: release
|
|
|
|
The release number or name to use with the base element.
|
|
|
|
.. zuul:jobvar:: mirror
|
|
|
|
The URL for the package mirror to use when building the
|
|
disk image. This is optional.
|
|
|
|
.. zuul:jobvar:: env-vars
|
|
:type: dict
|
|
|
|
A dictionary of environment variables and values to add
|
|
to the DIB environment when building the image.
|
|
|
|
timeout: 5400
|
|
required-projects:
|
|
- zuul/nodepool
|
|
pre-run: playbooks/nodepool-functional-openstack/pre.yaml
|
|
run: playbooks/nodepool-functional-openstack/run.yaml
|
|
post-run: playbooks/nodepool-functional-openstack/post.yaml
|
|
vars:
|
|
zuul_copy_output:
|
|
/var/log/nodepool: logs
|
|
|
|
- job:
|
|
name: nodepool-functional-openstack
|
|
description: Test Nodepool with an OpenStack
|
|
parent: nodepool-functional-openstack-base
|
|
vars: &nodepool_diskimage_vars
|
|
nodepool_extra_packages:
|
|
- rpm
|
|
- yum-utils
|
|
nodepool_diskimage:
|
|
base_element: centos-minimal
|
|
release: 7
|
|
mirror: "http://{{ zuul_site_mirror_fqdn }}/centos"
|
|
env-vars:
|
|
DIB_SIMPLE_INIT_NETWORKMANAGER: '1'
|
|
|
|
- job:
|
|
name: nodepool-functional-openstack-src-base
|
|
description: Test Nodepool and OpenStack, with some projects from source
|
|
parent: nodepool-functional-openstack-base
|
|
required-projects:
|
|
- name: github.com/sqlalchemy/dogpile.cache
|
|
- name: opendev/glean
|
|
- name: zuul/nodepool
|
|
- name: openstack/diskimage-builder
|
|
- name: openstack/openstacksdk
|
|
|
|
- job:
|
|
name: nodepool-functional-openstack-src
|
|
description: Test Nodepool and OpenStack, with some projects from source
|
|
parent: nodepool-functional-openstack
|
|
required-projects:
|
|
- name: github.com/sqlalchemy/dogpile.cache
|
|
- name: opendev/glean
|
|
- name: zuul/nodepool
|
|
- name: openstack/diskimage-builder
|
|
- name: openstack/openstacksdk
|
|
vars: *nodepool_diskimage_vars
|
|
|
|
# NOTE(ianw): this job doesn't really do anything unless you set
|
|
# "NODEPOOL_PAUSE_something_DIB: false" to unpause one or more builds.
|
|
- job:
|
|
name: nodepool-functional-base
|
|
parent: devstack
|
|
# NOTE(ianw): for now, keep these jobs as Xenial only. We will
|
|
# add bionic variants, but we want to keep Xenial testing around
|
|
# whilst we still run Xenial for upstream nodepool-builders too
|
|
nodeset: openstack-single-node-xenial
|
|
pre-run: playbooks/nodepool-functional-base/pre.yaml
|
|
post-run: playbooks/nodepool-functional-base/post.yaml
|
|
timeout: 5400
|
|
required-projects:
|
|
- zuul/nodepool
|
|
vars:
|
|
devstack_localrc:
|
|
USE_PYTHON3: True
|
|
devstack_services:
|
|
horizon: 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: false
|
|
c-bak: false
|
|
c-sch: false
|
|
c-api: false
|
|
c-vol: false
|
|
s-account: false
|
|
s-container: false
|
|
s-object: false
|
|
s-proxy: false
|
|
# Nodepool doesn't need vnc access
|
|
n-novnc: false
|
|
# Nodepool testing uses config drive only
|
|
n-api-meta: false
|
|
q-meta: false
|
|
devstack_plugins:
|
|
nodepool: https://opendev.org/zuul/nodepool
|
|
zuul_copy_output:
|
|
'/var/log/nodepool/builds': 'logs'
|
|
|
|
- job:
|
|
name: nodepool-functional-py35
|
|
parent: nodepool-functional-base
|
|
description: |
|
|
Run nodepool functional tests for py35
|
|
run: playbooks/nodepool-functional-py35/run.yaml
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB: false
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-src-base
|
|
parent: nodepool-functional-base
|
|
run: playbooks/nodepool-functional-py35-src/run.yaml
|
|
required-projects:
|
|
- name: github.com/sqlalchemy/dogpile.cache
|
|
- name: opendev/glean
|
|
- name: zuul/nodepool
|
|
- name: openstack/diskimage-builder
|
|
- name: openstack/openstacksdk
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB: false
|
|
|
|
# Distro functional tests. This is used by projects such as
|
|
# diskimage-builder and glean as live-boot tests
|
|
- job:
|
|
name: nodepool-functional-py35-redhat-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_CENTOS_7_DIB: false
|
|
NODEPOOL_PAUSE_FEDORA_29_DIB: false
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-suse-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_OPENSUSE_423_DIB: false
|
|
NODEPOOL_PAUSE_OPENSUSE_150_DIB: false
|
|
NODEPOOL_PAUSE_OPENSUSE_TUMBLEWEED_DIB: false
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-gentoo-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_GENTOO_17_0_SYSTEMD_DIB: false
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-ubuntu-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_UBUNTU_BIONIC_DIB: false
|
|
NODEPOOL_PAUSE_UBUNTU_XENIAL_DIB: false
|
|
NODEPOOL_PAUSE_UBUNTU_TRUSTY_DIB: false
|
|
|
|
- job:
|
|
name: nodepool-functional-py35-debian-src
|
|
parent: nodepool-functional-py35-src-base
|
|
vars:
|
|
devstack_localrc:
|
|
NODEPOOL_PAUSE_DEBIAN_STRETCH_DIB: false
|
|
NODEPOOL_PAUSE_DEBIAN_BUSTER_DIB: false
|
|
|
|
- job:
|
|
description: |
|
|
Test that nodepool works with kubernetes.
|
|
name: nodepool-functional-k8s
|
|
pre-run: playbooks/nodepool-functional-k8s/pre.yaml
|
|
run: playbooks/nodepool-functional-k8s/run.yaml
|
|
post-run: playbooks/nodepool-functional-k8s/post.yaml
|
|
nodeset: ubuntu-xenial
|
|
required-projects:
|
|
- zuul/nodepool
|
|
|
|
- job:
|
|
description: |
|
|
Test that nodepool works with openshift.
|
|
name: nodepool-functional-openshift
|
|
pre-run: playbooks/nodepool-functional-openshift/pre.yaml
|
|
run: playbooks/nodepool-functional-openshift/run.yaml
|
|
nodeset:
|
|
nodes:
|
|
- name: cluster
|
|
label: centos-7
|
|
- name: launcher
|
|
label: fedora-28
|
|
required-projects:
|
|
- zuul/nodepool
|
|
|
|
- secret:
|
|
name: nodepool-dockerhub
|
|
data:
|
|
username: zuulzuul
|
|
password: !encrypted/pkcs1-oaep
|
|
- VV5m4XbsYvAz0/7T+WoIypvD3ijRsPYrGo4O5JuOHt6TX14s9B1KddeMwnabEEKapPdbb
|
|
cwqbzFKoHRMi8DdXiDKxrgbTSC1jb3BvKq7XE0/xF4Bq2dM+r3yDnXS6a7BuijSqFSiMG
|
|
/9bf0jqEAWXWCvbYUAxKOklJIRLjcKywCP5CulmW6EV8f1Iya8Y7UGpjGyL34FVQuc52Y
|
|
5MLp+Dra95pvBJMgikbu7LtMPCXOMctUFBpwNArCjWKGhz00UZwyAmsbPPHwQWb+884ZP
|
|
v9zi2FuRAL+rn4DRVwyIw28ZdCEr5F5EkZon3lSIhikhdQIyHPtW8VwMJTL4RxBdmgcEt
|
|
+zZBbLlOU+0AHPGLlO/yQNvHeSzwY9pe2oIGuqSu3h6zp6Y0NIE/Q0VpiIXWpOAnLOmno
|
|
uOd3j9tZ1beol2mg4Yk7rOaXu1Fvtfhd1K3LpLzEbiGzCMIEZuFHU2ZInAbUmtm0BtbDa
|
|
/bYvI9dB/uqA2xgse5rVMa++v3AfWJTJhFY/wBU4fHOWlFBUZKFuSoijUcWMfnfMMyU2B
|
|
A5CQKhv4Wmtzbvo/oneYkwFOTYaPNj2DS0BcFJFkR8FZDYmTBPnKoBH5wpwwnrzPOpCMa
|
|
L21z+Vp1Vce1XCsaOduMrmZDvuQcK1YOKIIUeElAQw8GuwTfcXqekoPvp54SeE=
|
|
|
|
- job:
|
|
name: nodepool-build-image
|
|
parent: opendev-build-docker-image
|
|
description: Build Docker images.
|
|
vars: &nodepool_image_vars
|
|
docker_images:
|
|
- context: .
|
|
repository: zuul/nodepool
|
|
target: nodepool
|
|
- context: .
|
|
repository: zuul/nodepool-launcher
|
|
target: nodepool-launcher
|
|
- context: .
|
|
repository: zuul/nodepool-builder
|
|
target: nodepool-builder
|
|
|
|
- job:
|
|
name: nodepool-upload-image
|
|
parent: opendev-upload-docker-image
|
|
description: Build Docker images and upload to Docker Hub.
|
|
vars: *nodepool_image_vars
|
|
secrets:
|
|
- name: docker_credentials
|
|
secret: nodepool-dockerhub
|
|
pass-to-parent: true
|
|
|
|
- job:
|
|
name: nodepool-promote-image
|
|
parent: opendev-promote-docker-image
|
|
description: Promote previously uploaded Docker images.
|
|
vars: *nodepool_image_vars
|
|
secrets:
|
|
- name: docker_credentials
|
|
secret: nodepool-dockerhub
|
|
pass-to-parent: true
|
|
|
|
- project:
|
|
check:
|
|
jobs:
|
|
- nodepool-build-image
|
|
- tox-docs
|
|
- tox-pep8
|
|
- tox-py35:
|
|
nodeset: ubuntu-xenial
|
|
- tox-py36
|
|
- nodepool-zuul-functional:
|
|
voting: false
|
|
- nodepool-functional-openstack
|
|
- nodepool-functional-openstack-src
|
|
- nodepool-functional-k8s
|
|
- nodepool-functional-openshift
|
|
- zuul-quick-start:
|
|
dependencies: nodepool-build-image
|
|
gate:
|
|
jobs:
|
|
- nodepool-upload-image
|
|
- tox-docs
|
|
- tox-pep8
|
|
- tox-py35:
|
|
nodeset: ubuntu-xenial
|
|
- tox-py36
|
|
- zuul-quick-start:
|
|
dependencies: nodepool-upload-image
|
|
post:
|
|
jobs:
|
|
- publish-zuul-docs
|
|
- release-zuul-python
|
|
promote:
|
|
jobs:
|
|
- nodepool-promote-image
|
|
experimental:
|
|
jobs:
|
|
- nodepool-functional-py35-debian-src
|
|
release:
|
|
jobs:
|
|
- release-zuul-python
|
|
- publish-zuul-docs
|