Browse Source

CI: Add Airskiff check

This commit adds a non-voting Zuul job that deploys Memcached using the
Airship-Treasuremap airskiff site and submitted Shipyard changes.

[0] https://airship-treasuremap.readthedocs.io/en/latest/airskiff.html

Change-Id: Ibe9c6c94406bcdac4c39493b694535baf8ad2719
changes/35/653035/5
Drew Walters 2 years ago
parent
commit
5556227634
  1. 26
      .zuul.yaml
  2. 66
      tools/gate/playbooks/airskiff-deploy.yaml
  3. 22
      tools/gate/playbooks/airskiff-reduce-site.yaml
  4. 34
      tools/gate/playbooks/debug-report.yaml
  5. 25
      tools/gate/playbooks/git-config.yaml

26
.zuul.yaml

@ -24,6 +24,7 @@
- airship-shipyard-chart-build-latest-htk
- airship-shipyard-whitespace-lint-gate
- airship-shipyard-image-gate
- airship-shipyard-airskiff-deployment
gate:
jobs:
- openstack-tox-pep8
@ -87,6 +88,31 @@
dynamic:
patch_set: true
- job:
name: airship-shipyard-airskiff-deployment
nodeset: airship-shipyard-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:
- airship/armada
- airship/deckhand
- airship/pegleg
- airship/treasuremap
- openstack/openstack-helm-infra
vars:
OSH_INFRA_PATH: "../../openstack/openstack-helm-infra"
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
- job:
name: airship-shipyard-docker-build-post
timeout: 1800

66
tools/gate/playbooks/airskiff-deploy.yaml

@ -0,0 +1,66 @@
# 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['opendev.org/airship/treasuremap'].src_dir }}"
become: yes
- name: Build Shipyard and Airflow with submitted changes
shell: |
make
args:
chdir: "{{ zuul.project.src_dir }}"
become: yes
- name: Deploy Kubernetes with Minikube
shell: |
export OSH_INFRA_PATH={{ OSH_INFRA_PATH }}
./tools/deployment/airskiff/developer/010-deploy-k8s.sh
args:
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
- name: Setup OpenStack Client
shell: |
./tools/deployment/airskiff/developer/020-setup-client.sh
args:
chdir: "{{ zuul.projects['opendev.org/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['opendev.org/airship/treasuremap'].src_dir }}"
become: yes
- name: Deploy OpenStack using Airship
shell: |
./tools/deployment/airskiff/developer/100-deploy-osh.sh
args:
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
become: yes
- name: Wait for deployment completion
shell: |
./tools/gate/wait-for-shipyard.sh
args:
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
become: yes

22
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['opendev.org/airship/treasuremap'].src_dir }}"

34
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['opendev.org/airship/treasuremap'].src_dir }}"
- name: Extract debug report
shell: |
mkdir -p /tmp/debug
tar -xf debug-* -C /tmp/debug
args:
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
- name: Pull logs to executor
synchronize:
src: /tmp/debug
dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
mode: pull

25
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://opendev.org/airship/treasuremap.git
EOF
args:
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
Loading…
Cancel
Save