f5da049f12
This PS replaces old airskiff integration gate with new kubeadm based airskiff integration gate. The main goal of this gate is to test new deckhand image and chart together with other Airship components. Change-Id: I4221b7be64e9a7e07964fa817d42c21a3f172db0
151 lines
5.6 KiB
YAML
151 lines
5.6 KiB
YAML
# Copyright 2019, AT&T Intellectual Property
|
|
#
|
|
# 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
|
|
roles:
|
|
- role: add-authorized-keys
|
|
public_keys:
|
|
- public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7eM8WFJrqQmki8rR0O3QBHyl8xq42jb1RduwuRwjWoGYJI5cX7Fx+7VR4A9ITCoiqxKS8DMfgKbt5jKC6SmvMALULZsnYlthB34KywurgxsW6fgp68DHWQ7J4CCBhoIpl0W3JW7s6b0vHLhab59r0E+AYemBVuWUqbFEy8nDAHcQv1S/2o1udhmljIN7c2ogO4KAJ7Lge0BoIP9ps4u6AVwyQZixp4anU9DHGNA/UQj4M5UyuALj5buEAuATBe9Vqj4sOvZjObPJAGPUrNRrGEWAFk+lSZHRzKXo0eeWtPqoh5UN9UDb5Pocg1krncMIZwjHKovlD1z/O1y91aY5LM1wxm/7aaIiX8eCihyVZaOuDCLF7WDT2SMs7ABcotX2MDtVQTrNNV3MmMAScFNDflzPKszd7cdjLl6PBq8bvPxmCkLmnitPTGOoh9d8i+JlbINvgx1pguYrpeciIyreCO1rjTW3MgB0tyoMEa31V+7HrauBMeNnE68YTqLTIB0= smarkin@mirantis.com
|
|
|
|
- clear-firewall
|
|
- bindep
|
|
- ensure-docker
|
|
- ensure-python
|
|
- ensure-pip
|
|
- disable-systemd-resolved
|
|
- install-test-requirements
|
|
|
|
tasks:
|
|
|
|
- name: Install Packaging python module for airship
|
|
block:
|
|
- pip:
|
|
name: packaging
|
|
executable: pip3
|
|
become: True
|
|
|
|
- name: Clone Required Repositories
|
|
shell: |
|
|
set -ex
|
|
export CLONE_DECKHAND={{ CLONE_DECKHAND }}
|
|
export OSH_INFRA_COMMIT={{ OSH_INFRA_COMMIT }}
|
|
export OSH_COMMIT={{ OSH_COMMIT }}
|
|
./tools/deployment/airskiff/developer/000-clone-dependencies.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
|
|
- name: Setup Apparmor
|
|
shell: |
|
|
./tools/deployment/airskiff/developer/009-setup-apparmor.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
|
|
- name: Deploy Kubernetes with Minikube
|
|
shell: |
|
|
set -ex
|
|
sudo fdisk --list
|
|
df -h
|
|
sudo mkdir -p /opt/ext_vol
|
|
BIG_VOLUME=$(sudo fdisk -l 2>&1 | grep -E 80G | grep Linux | awk '{print $1}')
|
|
if ! mount | grep "${BIG_VOLUME}"
|
|
then
|
|
sudo mkfs.ext4 "${BIG_VOLUME}"
|
|
sudo mount "${BIG_VOLUME}" /opt/ext_vol
|
|
df -h
|
|
fi
|
|
./tools/deployment/airskiff/developer/010-deploy-k8s.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
|
|
- name: Setup openstack client
|
|
shell: |
|
|
set -ex
|
|
./tools/deployment/airskiff/developer/020-setup-client.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|
|
|
|
- name: Build Deckhand with submitted changes
|
|
shell: |
|
|
set -ex
|
|
export DISTRO={{ DECKHAND_IMAGE_DISTRO }}
|
|
make images
|
|
docker system prune --force
|
|
args:
|
|
chdir: "{{ zuul.project.src_dir }}"
|
|
become: yes
|
|
|
|
- name: Use locally built images in manifests
|
|
shell: |
|
|
set -ex
|
|
export DISTRO={{ DECKHAND_IMAGE_DISTRO }}
|
|
docker rm registry --force || true
|
|
docker run -d -p 5000:5000 --restart=always --name registry registry:2
|
|
docker tag quay.io/airshipit/deckhand:latest-ubuntu_focal localhost:5000/deckhand:latest-ubuntu_focal
|
|
docker push localhost:5000/deckhand:latest-ubuntu_focal
|
|
sed -i "s#quay.io/airshipit/deckhand:latest-ubuntu_focal#localhost:5000/deckhand:latest-ubuntu_focal#g" ./site/airskiff/software/config/versions.yaml
|
|
sed -i "s#quay.io/airshipit/deckhand:latest-ubuntu_focal#localhost:5000/deckhand:latest-ubuntu_focal#g" ./global/software/config/versions.yaml
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|
|
|
|
- name: Build all charts locally
|
|
shell: |
|
|
set -ex
|
|
export HELM_ARTIFACT_URL={{ HELM_ARTIFACT_URL }}
|
|
export HTK_COMMIT={{ HTK_COMMIT }}
|
|
./tools/deployment/airskiff/developer/015-make-all-charts.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|
|
|
|
- name: Start artifactory
|
|
shell: |
|
|
set -ex
|
|
# start http server with artifacts
|
|
docker rm artifacts --force || true
|
|
docker run --name artifacts -p 8282:80 -v $(pwd)/../artifacts:/usr/share/nginx/html -d nginx
|
|
sleep 10
|
|
curl --verbose -I http://control-plane.minikube.internal:8282/memcached.tgz
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|
|
|
|
- name: Deploy Airship components using Armada
|
|
shell: |
|
|
set -ex
|
|
while true; do sleep 10; done
|
|
# mkdir -p ~/.kube
|
|
# cp -rp /home/zuul/.kube/config ~/.kube/config
|
|
pip3 install packaging
|
|
./tools/deployment/airskiff/developer/030-armada-bootstrap.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|
|
|
|
- name: Deploy Memcached 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: |
|
|
set -x
|
|
./tools/gate/wait-for-shipyard.sh
|
|
args:
|
|
chdir: "{{ zuul.projects['opendev.org/airship/treasuremap'].src_dir }}"
|
|
become: yes
|