Skip to content

Commit

Permalink
Move openlab job definitions in repo
Browse files Browse the repository at this point in the history
  • Loading branch information
zhuli committed Jul 11, 2018
1 parent 9476c12 commit 707f240
Show file tree
Hide file tree
Showing 2 changed files with 156 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .zuul.yaml
@@ -0,0 +1,63 @@
---
- project:
check:
jobs:
- bosh-openstack-cpi-release-acceptance-test
- bosh-openstack-cpi-release-acceptance-test-queens
- bosh-openstack-cpi-release-acceptance-test-pike
- bosh-openstack-cpi-release-acceptance-test-ocata
- bosh-openstack-cpi-release-acceptance-test-newton
- bosh-openstack-cpi-release-acceptance-test-mitaka

- job:
name: bosh-openstack-cpi-release-acceptance-test
parent: init-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack master branch
run: .zuul/playbooks/bosh-openstack-cpi-release-acceptance-test/run.yaml

- job:
name: bosh-openstack-cpi-release-acceptance-test-queens
parent: bosh-openstack-cpi-release-acceptance-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack Queens release
vars:
global_env:
OS_BRANCH: stable/queens

- job:
name: bosh-openstack-cpi-release-acceptance-test-pike
parent: bosh-openstack-cpi-release-acceptance-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack Pike release
vars:
global_env:
OS_BRANCH: stable/pike

- job:
name: bosh-openstack-cpi-release-acceptance-test-ocata
parent: bosh-openstack-cpi-release-acceptance-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack Ocata release
vars:
global_env:
OS_BRANCH: stable/ocata

- job:
name: bosh-openstack-cpi-release-acceptance-test-newton
parent: bosh-openstack-cpi-release-acceptance-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack Newton release
vars:
global_env:
OS_BRANCH: stable/newton

- job:
name: bosh-openstack-cpi-release-acceptance-test-mitaka
parent: bosh-openstack-cpi-release-acceptance-test
description: |
This job validation tests of bosh-openstack-cpi-release aganist OpenStack Mitaka release
vars:
global_env:
OS_BRANCH: stable/mitaka
nodeset: ubuntu-trusty
@@ -0,0 +1,93 @@
- hosts: all
become: yes

pre_tasks:
- name: Prepare local conf for cf validation tests
shell: |
set -ex
cat >> /tmp/dg-local.conf <<< '
[[local|localrc]]
NETWORK_GATEWAY=10.0.0.1
IDENTITY_API_VERSION=3
OS_USER_DOMAIN_ID=default
OS_PROJECT_DOMAIN_ID=default
VOLUME_BACKING_FILE_SIZE=62000M
'
args:
executable: /bin/bash

roles:
- clone-devstack-gate-to-workspace
- install-devstack

tasks:
- name: Run validation tests of cf-openstack-validator aganist devstack
shell: |
set -ex
# Install bosh client and dependencies
curl -Lo ./bosh https://s3.amazonaws.com/bosh-cli-artifacts/bosh-cli-3.0.1-linux-amd64
chmod +x ./bosh
mv ./bosh /usr/local/bin/bosh
apt-get install -y build-essential zlibc zlib1g-dev ruby ruby-dev openssl libxslt-dev libxml2-dev libssl-dev libreadline6 libreadline6-dev libyaml-dev libsqlite3-dev sqlite3
gem install bundler
# Create latest cpi release
bosh create-release --force --tarball bosh-openstack-cpi.tgz
# Git clone cf-openstack-validator
git clone https://github.com/cloudfoundry-incubator/cf-openstack-validator '{{ ansible_user_dir }}/src/github.com/cloudfoundry-incubator/cf-openstack-validator'
cp bosh-openstack-cpi.tgz '{{ ansible_user_dir }}/src/github.com/cloudfoundry-incubator/cf-openstack-validator'
pushd '{{ ansible_user_dir }}/src/github.com/cloudfoundry-incubator/cf-openstack-validator'
source /opt/stack/new/devstack/openrc admin admin
INSTANCE_TYPE=m1.cf
openstack flavor create --ram 512 --disk 4 --vcpu 1 --id 99 "$INSTANCE_TYPE"
source /opt/stack/new/devstack/openrc demo demo
FLOATING_IP=$(openstack floating ip create public -f value -c floating_ip_address)
STATIC_IP=10.0.0.50
# Allow ssh access in the default security group
openstack security group rule create --ingress --protocol tcp --dst-port 22 default
ssh-keygen -t rsa -b 4096 -N '' -f cf-validator.rsa_id
openstack keypair create cf-validator --public-key cf-validator.rsa_id.pub
NETWORK_ID=$(openstack network show private -f value -c id)
# Update subnet dns to allow access to internet
neutron subnet-update --dns-nameserver 8.8.8.8 private-subnet
# Populate validator.yml
cp validator.template.yml validator.yml
sed -i "/auth_url/ s|<replace-me>|$OS_AUTH_URL|" validator.yml
sed -i "/username/ s|<replace-me>|$OS_USERNAME|" validator.yml
sed -i "/password/ s|<replace-me>|$OS_PASSWORD|" validator.yml
sed -i "/domain/ s|<replace-me>|$OS_PROJECT_DOMAIN_ID|" validator.yml
sed -i "/project/ s|<replace-me>|$OS_PROJECT_NAME|" validator.yml
sed -i "/network_id/ s|<replace-me>|$NETWORK_ID|" validator.yml
sed -i "/floating_ip/ s|<replace-me>|$FLOATING_IP|" validator.yml
sed -i "/static_ip/ s|<replace-me>|$STATIC_IP|" validator.yml
sed -i "/instance_type/ s|<replace-me>|$INSTANCE_TYPE|" validator.yml
sed -i "/use_external_ip/ s|false|true|" validator.yml
# Download stemcell and change the hypervisor to qemu
mkdir bosh-openstack-kvm-ubuntu-trusty-go_agent
pushd bosh-openstack-kvm-ubuntu-trusty-go_agent
wget --content-disposition https://bosh.io/d/stemcells/bosh-openstack-kvm-ubuntu-trusty-go_agent -O bosh-openstack-kvm-ubuntu-trusty-go_agent.tgz
tar -zxvf bosh-openstack-kvm-ubuntu-trusty-go_agent.tgz
rm bosh-openstack-kvm-ubuntu-trusty-go_agent.tgz
sed -i 's/kvm/qemu/g' stemcell.MF
tar -zcvf bosh-openstack-qemu-ubuntu-trusty-go_agent.tgz *
mv bosh-openstack-qemu-ubuntu-trusty-go_agent.tgz ../
popd
# Collect cpi logs
mkdir -p ~/.cf-openstack-validator/logs
ln -s ~/.cf-openstack-validator/logs '{{ ansible_user_dir }}/workspace/logs/cpi-logs'
# Run test
bundle install
./validate -s bosh-openstack-qemu-ubuntu-trusty-go_agent.tgz -c validator.yml -r bosh-openstack-cpi.tgz --tag cpi_api
popd
args:
executable: /bin/bash
chdir: '{{ zuul.project.src_dir }}'

0 comments on commit 707f240

Please sign in to comment.