From 100c900da0864dfb00721ae71df9ead888737e0d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Mon, 8 Oct 2018 14:34:45 +0200 Subject: [PATCH] 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 --- Makefile | 2 +- .zuul.yaml => zuul.d/jobs.yaml | 175 ++------------------------------- zuul.d/nodesets.yaml | 151 ++++++++++++++++++++++++++++ zuul.d/playbooks/lint.yml | 23 +++++ zuul.d/project.yaml | 44 +++++++++ 5 files changed, 226 insertions(+), 169 deletions(-) rename .zuul.yaml => zuul.d/jobs.yaml (67%) create mode 100644 zuul.d/nodesets.yaml create mode 100644 zuul.d/playbooks/lint.yml create mode 100644 zuul.d/project.yaml diff --git a/Makefile b/Makefile index 03ead8686..452f462aa 100644 --- a/Makefile +++ b/Makefile @@ -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) diff --git a/.zuul.yaml b/zuul.d/jobs.yaml similarity index 67% rename from .zuul.yaml rename to zuul.d/jobs.yaml index a667bbcf3..cb08b2527 100644 --- a/.zuul.yaml +++ b/zuul.d/jobs.yaml @@ -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 diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml new file mode 100644 index 000000000..ba44edf54 --- /dev/null +++ b/zuul.d/nodesets.yaml @@ -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 diff --git a/zuul.d/playbooks/lint.yml b/zuul.d/playbooks/lint.yml new file mode 100644 index 000000000..13d73303e --- /dev/null +++ b/zuul.d/playbooks/lint.yml @@ -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 }}" diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml new file mode 100644 index 000000000..6bea713fe --- /dev/null +++ b/zuul.d/project.yaml @@ -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