From febf0d43a9a0f78f6a6813094f19c8e20a35b9a3 Mon Sep 17 00:00:00 2001 From: Drew Walters Date: Fri, 31 Aug 2018 16:05:25 +0000 Subject: [PATCH] CI: Add Airskiff check This commit adds a non-voting Zuul job that deploys Memcached using the Airship-Treasuremap airskiff site and submitted Armada changes. [0] https://airship-treasuremap.readthedocs.io/en/latest/airskiff.html Change-Id: I597bef0f9cd7352c66ababa56ce7f396f6da88b0 --- .zuul.yaml | 26 ++++++++ tools/gate/playbooks/airskiff-deploy.yaml | 65 +++++++++++++++++++ .../gate/playbooks/airskiff-reduce-site.yaml | 22 +++++++ tools/gate/playbooks/debug-report.yaml | 34 ++++++++++ tools/gate/playbooks/git-config.yaml | 25 +++++++ 5 files changed, 172 insertions(+) create mode 100644 tools/gate/playbooks/airskiff-deploy.yaml create mode 100644 tools/gate/playbooks/airskiff-reduce-site.yaml create mode 100644 tools/gate/playbooks/debug-report.yaml create mode 100644 tools/gate/playbooks/git-config.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 3ea8e40c..9e21a037 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -23,6 +23,7 @@ - openstack-tox-pep8 - airship-armada-chart-build-gate - airship-armada-docker-build-gate + - airship-treasuremap-airskiff-deploy gate: jobs: - openstack-tox-pep8 @@ -57,6 +58,31 @@ dynamic: patch_set: true +- job: + name: airship-treasuremap-airskiff-deploy + nodeset: airship-armada-single-node + description: | + Deploy Memcached using Airskiff and submitted Armada changes. + timeout: 9600 + voting: false + pre-run: + - tools/gate/playbooks/airskiff-reduce-site.yaml + - tools/gate/playbooks/git-config.yaml + run: tools/gate/playbooks/airskiff-deploy.yaml + post-run: tools/gate/playbooks/debug-report.yaml + required-projects: + - openstack/airship-deckhand + - openstack/airship-pegleg + - openstack/airship-shipyard + - openstack/airship-treasuremap + - openstack/openstack-helm-infra + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^examples/.*$ + - ^releasenotes/.*$ + - ^swagger/.*$ + - job: name: airship-armada-docker-publish timeout: 1800 diff --git a/tools/gate/playbooks/airskiff-deploy.yaml b/tools/gate/playbooks/airskiff-deploy.yaml new file mode 100644 index 00000000..9d6c3a61 --- /dev/null +++ b/tools/gate/playbooks/airskiff-deploy.yaml @@ -0,0 +1,65 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# 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: primary + tasks: + - name: Install Required Packages + shell: | + ./tools/deployment/airskiff/developer/000-install-packages.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + become: yes + + - name: Build Armada with submitted changes + shell: | + make images + args: + chdir: "{{ zuul.project.src_dir }}" + become: yes + + - name: Deploy Kubernetes with Minikube + shell: | + ./tools/deployment/airskiff/developer/010-deploy-k8s.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + + - name: Setup OpenStack Client + shell: | + ./tools/deployment/airskiff/developer/020-setup-client.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + become: yes + + - name: Deploy Airship components using Armada + shell: | + mkdir ~/.kube + cp -rp /home/zuul/.kube/config ~/.kube/config + ./tools/deployment/airskiff/developer/030-armada-bootstrap.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + become: yes + + - name: Deploy OpenStack using Airship + shell: | + ./tools/deployment/airskiff/developer/100-deploy-osh.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + become: yes + + - name: Wait for deployment completion + shell: | + ./tools/gate/wait-for-shipyard.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + become: yes diff --git a/tools/gate/playbooks/airskiff-reduce-site.yaml b/tools/gate/playbooks/airskiff-reduce-site.yaml new file mode 100644 index 00000000..fbbfcbb9 --- /dev/null +++ b/tools/gate/playbooks/airskiff-reduce-site.yaml @@ -0,0 +1,22 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# 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: primary + tasks: + - name: Overwrite Armada manifest + shell: | + mv tools/gate/manifests/full-site.yaml \ + site/airskiff/software/manifests/full-site.yaml + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" diff --git a/tools/gate/playbooks/debug-report.yaml b/tools/gate/playbooks/debug-report.yaml new file mode 100644 index 00000000..c8dbfa15 --- /dev/null +++ b/tools/gate/playbooks/debug-report.yaml @@ -0,0 +1,34 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# 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: primary + tasks: + - name: Build debug report + shell: | + ./tools/gate/debug-report.sh + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + + - name: Extract debug report + shell: | + mkdir -p /tmp/debug + tar -xf debug-* -C /tmp/debug + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}" + + - name: Pull logs to executor + synchronize: + src: /tmp/debug + dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}" + mode: pull diff --git a/tools/gate/playbooks/git-config.yaml b/tools/gate/playbooks/git-config.yaml new file mode 100644 index 00000000..b03a4123 --- /dev/null +++ b/tools/gate/playbooks/git-config.yaml @@ -0,0 +1,25 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# 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: primary + tasks: + - name: Git config + shell: | + set -xe; + tee .git/config << EOF + [remote "origin"] + url = https://git.openstack.org/openstack/airship-treasuremap.git + EOF + args: + chdir: "{{ zuul.projects['git.openstack.org/openstack/airship-treasuremap'].src_dir }}"