nodepool/.zuul.yaml

402 lines
13 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:: elements-dir
:type: string
Path to directory with external elements
.. zuul:jobvar:: extra_elements
:type: list
:default: []
List of extra DIB elements to be added to image
configuration.
.. 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.
.. zuul:jobvar:: nodepool_debug
Boolean flag to enable debug logging for the nodepool builder
and launcher services. By default we log at INFO level and
higher. This enables DEBUG and higher. This is optional.
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: 8
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-src-base
vars: *nodepool_diskimage_vars
- 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-30
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.
dependencies:
- opendev-buildset-registry
requires:
- python-builder-3.8-container-image
- python-base-3.8-container-image
provides: nodepool-container-image
vars: &nodepool_image_vars
docker_images:
- context: .
repository: zuul/nodepool
target: nodepool
tags:
# If zuul.tag is defined: [ '3', '3.19', '3.19.0' ]. Only works for 3-component tags.
# Otherwise: ['latest']
&imagetag "{{ zuul.tag is defined | ternary([zuul.get('tag', '').split('.')[0], '.'.join(zuul.get('tag', '').split('.')[:2]), zuul.get('tag', '')], ['latest']) }}"
- context: .
repository: zuul/nodepool-launcher
target: nodepool-launcher
tags: *imagetag
- context: .
repository: zuul/nodepool-builder
target: nodepool-builder
tags: *imagetag
- job:
name: nodepool-upload-image
parent: opendev-upload-docker-image
description: Build Docker images and upload to Docker Hub.
requires:
- python-builder-3.8-container-image
- python-base-3.8-container-image
provides: nodepool-container-image
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
# NOTE(ianw) : kept separate as these aren't intended to be released
- job:
name: nodepool-build-image-siblings
dependencies:
- opendev-buildset-registry
parent: opendev-build-docker-image
description: Build container images, with required projects as sibling from source
required-projects:
- zuul/nodepool
- openstack/diskimage-builder
- openstack/openstacksdk
requires:
- python-builder-3.8-container-image
- python-base-3.8-container-image
provides: nodepool-siblings-container-image
vars:
zuul_work_dir: "{{ zuul.projects['opendev.org/zuul/nodepool'].src_dir }}"
docker_images:
- context: .
repository: zuul/nodepool-launcher
target: nodepool-launcher
tags:
- siblings
siblings:
- opendev.org/openstack/openstacksdk
- context: .
repository: zuul/nodepool-builder
target: nodepool-builder
tags:
- siblings
siblings:
- opendev.org/openstack/openstacksdk
- opendev.org/openstack/diskimage-builder
- job:
name: nodepool-functional-container-openstack-base
abstract: true
description: |
Test Nodepool containers with an OpenStack.
This is similar to nodepool-functional-openstack-base, but
uses containers to deploy nodepool.
Note this is an abstract job and does not define an image to
build and test, and you should not inherit directly from this
job.
If you wish to build the nodepool containers with released
dependencies, you should inherit from
nodepool-functional-container-openstack-release-base and define
nodepool_diskimage for the image to build and test.
If you wish to build the nodepool containers with dependencies
installed from source, you should inherit from
nodepool-functional-container-openstack-siblings-base and define
nodepool_diskimage for the image build and test.
timeout: 5400
required-projects:
- zuul/nodepool
pre-run: playbooks/nodepool-functional-container-openstack/pre.yaml
run: playbooks/nodepool-functional-container-openstack/run.yaml
post-run: playbooks/nodepool-functional-container-openstack/post.yaml
vars:
zuul_copy_output:
/var/log/nodepool: logs
- job:
name: nodepool-functional-container-openstack-release-base
abstract: true
description: |
Test Nodepool containers and OpenStack, against released
dependencies.
Note, this job does not define an image to build. It should be
inherited from and nodepool_diskimage defined.
parent: nodepool-functional-container-openstack-base
dependencies:
- nodepool-build-image
required-projects:
- name: opendev/glean # note, installed by dib
- name: zuul/nodepool
- job:
name: nodepool-functional-container-openstack-release
description: |
Test Nodepool containers and OpenStack, with released projects
This builds, uploads and boots a CentOS 8 image into a
OpenStack cloud.
parent: nodepool-functional-container-openstack-release-base
vars:
nodepool_diskimage:
base_element: centos-minimal
release: 8
mirror: "http://{{ zuul_site_mirror_fqdn }}/centos"
env-vars:
DIB_SIMPLE_INIT_NETWORKMANAGER: '1'
- job:
name: nodepool-functional-container-openstack-siblings-base
abstract: true
description: |
Test Nodepool containers and OpenStack, with some projects from source
Note, this job does not define an image to build. It should be
inherited from and nodepool_diskimage defined.
parent: nodepool-functional-container-openstack-base
dependencies:
- nodepool-build-image-siblings
required-projects:
- name: opendev/glean # note, installed by dib
- name: zuul/nodepool
vars:
nodepool_container_tag: ':siblings'
- job:
name: nodepool-functional-container-openstack-siblings
description: |
Test Nodepool containers and OpenStack, with some projects from source
This builds, uploads and boots a CentOS 8 image into a
OpenStack cloud.
parent: nodepool-functional-container-openstack-siblings-base
vars:
nodepool_diskimage:
base_element: centos-minimal
release: 8
mirror: "http://{{ zuul_site_mirror_fqdn }}/centos"
env-vars:
DIB_SIMPLE_INIT_NETWORKMANAGER: '1'
- project:
check:
jobs:
- opendev-buildset-registry
- nodepool-build-image
- nodepool-build-image-siblings
- zuul-tox-docs
- tox-pep8
- tox-py35:
nodeset: ubuntu-xenial
- tox-py38
- nodepool-zuul-functional:
voting: false
- nodepool-functional-openstack:
vars:
nodepool_debug: true
- nodepool-functional-openstack-src:
vars:
nodepool_debug: true
- nodepool-functional-container-openstack-release
- nodepool-functional-container-openstack-siblings
- nodepool-functional-k8s
- nodepool-functional-openshift
- zuul-quick-start:
requires: zuul-container-image
dependencies: nodepool-build-image
- build-python-release:
vars:
release_python: python3
gate:
jobs:
- nodepool-upload-image
- zuul-tox-docs
- tox-pep8
- tox-py35:
nodeset: ubuntu-xenial
- tox-py38
- nodepool-functional-openstack
- nodepool-functional-openstack-src
- nodepool-functional-k8s
- nodepool-functional-openshift
- zuul-quick-start:
requires: zuul-container-image
dependencies: nodepool-upload-image
- build-python-release:
vars:
release_python: python3
promote:
jobs:
- nodepool-promote-image
- zuul-promote-docs
- opendev-promote-python
release:
jobs:
- opendev-release-python
- zuul-publish-tox-docs
- upload-docker-image:
secrets:
name: docker_credentials
secret: nodepool-dockerhub
pass-to-parent: true
vars:
<<: *nodepool_image_vars
upload_docker_image_promote: false