Regroup OpenStack-Helm* gating under a folder

This move definitions of openstack-helm-infra into
a newly created zuul.d folder.

The advantage is to simplify readability of gating, and
makes it easier for contributors to step into the gating
of the openstack-helm-* projects.

- zuul.d/playbooks will contain all the playbooks used for gating
- zuul.d/nodesets.yaml contains all the specific nodesets
  required by OpenStack-Helm* projects
- zuul.d/project.yaml will be defined in each repo, and will
  contain the repo's pipelines information (so this repository's
  project.yaml only contains openstack-helm-infra pipelines)
- zuul.d/jobs.yaml will contain all the openstack-helm-*
  repositories jobs

This patch also introduces a first common 'lint' playbook
and 'openstack-helm-lint' job, showing how a job can be
re-used across repositories without requiring repetition of
job definition/plays in other repositories.

Change-Id: Id055ddac4da4971b1fb13ac075a7659369cd2b24
This commit is contained in:
Jean-Philippe Evrard 2018-10-08 14:34:45 +02:00
parent e231a7c5fd
commit 100c900da0
5 changed files with 226 additions and 169 deletions

View File

@ -18,7 +18,7 @@ SHELL := /bin/bash
HELM := helm
TASK := build
EXCLUDES := helm-toolkit doc tests tools logs tmp roles playbooks releasenotes
EXCLUDES := helm-toolkit doc tests tools logs tmp roles playbooks releasenotes zuul.d
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)

View File

@ -1,4 +1,5 @@
# Copyright 2017 The Openstack-Helm Authors.
---
# Copyright 2018 SUSE LINUX GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -12,172 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- project:
templates:
- publish-openstack-docs-pti
check:
jobs:
- openstack-helm-infra-linter
- openstack-helm-infra-five-ubuntu
- openstack-helm-infra-dev-deploy-ceph:
# NOTE(srwilkers): Changing the dev-deploy-ceph job to nonvoting
# until we can agree on the proper services to deploy with this job
voting: false
- openstack-helm-infra-dev-deploy-nfs:
#NOTE(srwilkers): Changing the dev-deploy-nfs job to nonvoting until
# we can agree on the proper services to deploy with this job
voting: false
- openstack-helm-infra-openstack-support
- openstack-helm-infra-kubernetes-keystone-auth
gate:
jobs:
- openstack-helm-infra-linter
- openstack-helm-infra-five-ubuntu
- openstack-helm-infra-openstack-support
- openstack-helm-infra-kubernetes-keystone-auth
experimental:
jobs:
#NOTE(srwilkers): Make fedora job experimental until issues resolved
- openstack-helm-infra-five-fedora
#NOTE(srwilkers): Make centos job experimental until issues resolved
- openstack-helm-infra-five-centos
- nodeset:
name: openstack-helm-single-node
nodes:
- name: primary
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- nodeset:
name: openstack-helm-ubuntu
nodes:
- name: primary
label: ubuntu-xenial
- name: node-1
label: ubuntu-xenial
- name: node-2
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-centos
nodes:
- name: primary
label: centos-7
- name: node-1
label: centos-7
- name: node-2
label: centos-7
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-fedora
nodes:
- name: primary
label: fedora-latest
- name: node-1
label: fedora-latest
- name: node-2
label: fedora-latest
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-five-node-ubuntu
nodes:
- name: primary
label: ubuntu-xenial
- name: node-1
label: ubuntu-xenial
- name: node-2
label: ubuntu-xenial
- name: node-3
label: ubuntu-xenial
- name: node-4
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4
- nodeset:
name: openstack-helm-five-node-centos
nodes:
- name: primary
label: centos-7
- name: node-1
label: centos-7
- name: node-2
label: centos-7
- name: node-3
label: centos-7
- name: node-4
label: centos-7
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4
- nodeset:
name: openstack-helm-five-node-fedora
nodes:
- name: primary
label: fedora-latest
- name: node-1
label: fedora-latest
- name: node-2
label: fedora-latest
- name: node-3
label: fedora-latest
- name: node-4
label: fedora-latest
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4
- job:
name: openstack-helm-lint
run: zuul.d/playbooks/lint.yml
nodeset: ubuntu-xenial
- job:
name: openstack-helm-infra-functional
@ -224,6 +63,7 @@
- ./tools/deployment/multinode/130-fluent-logging.sh
- ./tools/deployment/multinode/140-kibana.sh
- job:
name: openstack-helm-infra-ubuntu
parent: openstack-helm-infra
@ -319,7 +159,6 @@
- ./tools/deployment/openstack-support/035-mariadb.sh
- ./tools/deployment/openstack-support/040-libvirt.sh
- ./tools/deployment/openstack-support/045-openvswitch.sh
- job:
name: openstack-helm-infra-five-ubuntu
parent: openstack-helm-infra

151
zuul.d/nodesets.yaml Normal file
View File

@ -0,0 +1,151 @@
---
# Copyright 2017 The Openstack-Helm Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- nodeset:
name: openstack-helm-single-node
nodes:
- name: primary
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- nodeset:
name: openstack-helm-ubuntu
nodes:
- name: primary
label: ubuntu-xenial
- name: node-1
label: ubuntu-xenial
- name: node-2
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-centos
nodes:
- name: primary
label: centos-7
- name: node-1
label: centos-7
- name: node-2
label: centos-7
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-fedora
nodes:
- name: primary
label: fedora-27
- name: node-1
label: fedora-27
- name: node-2
label: fedora-27
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- nodeset:
name: openstack-helm-five-node-ubuntu
nodes:
- name: primary
label: ubuntu-xenial
- name: node-1
label: ubuntu-xenial
- name: node-2
label: ubuntu-xenial
- name: node-3
label: ubuntu-xenial
- name: node-4
label: ubuntu-xenial
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4
- nodeset:
name: openstack-helm-five-node-centos
nodes:
- name: primary
label: centos-7
- name: node-1
label: centos-7
- name: node-2
label: centos-7
- name: node-3
label: centos-7
- name: node-4
label: centos-7
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4
- nodeset:
name: openstack-helm-five-node-fedora
nodes:
- name: primary
label: fedora-27
- name: node-1
label: fedora-27
- name: node-2
label: fedora-27
- name: node-3
label: fedora-27
- name: node-4
label: fedora-27
groups:
- name: primary
nodes:
- primary
- name: nodes
nodes:
- node-1
- node-2
- node-3
- node-4

23
zuul.d/playbooks/lint.yml Normal file
View File

@ -0,0 +1,23 @@
---
# Copyright 2018 SUSE LINUX GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- hosts: all[0]
tasks:
- name: Prevent trailing whitespaces
shell: find . -not -path "*/\.*" -not -path "*/doc/build/*" -not -name "*.tgz" -type f -exec egrep -l " +$" {} \;
register: _found_whitespaces
failed_when: _found_whitespaces.stdout != ""
args:
chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}"

44
zuul.d/project.yaml Normal file
View File

@ -0,0 +1,44 @@
---
# Copyright 2018 SUSE LINUX GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- project:
templates:
- publish-openstack-docs-pti
check:
jobs:
- openstack-helm-lint
- openstack-helm-infra-five-ubuntu
- openstack-helm-infra-dev-deploy-ceph:
# NOTE(srwilkers): Changing the dev-deploy-ceph job to nonvoting
# until we can agree on the proper services to deploy with this job
voting: false
- openstack-helm-infra-dev-deploy-nfs:
#NOTE(srwilkers): Changing the dev-deploy-nfs job to nonvoting until
# we can agree on the proper services to deploy with this job
voting: false
- openstack-helm-infra-openstack-support
- openstack-helm-infra-kubernetes-keystone-auth
gate:
jobs:
- openstack-helm-lint
- openstack-helm-infra-five-ubuntu
- openstack-helm-infra-openstack-support
- openstack-helm-infra-kubernetes-keystone-auth
experimental:
jobs:
#NOTE(srwilkers): Make fedora job experimental until issues resolved
- openstack-helm-infra-five-fedora
#NOTE(srwilkers): Make centos job experimental until issues resolved
- openstack-helm-infra-five-centos