summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-20 15:01:52 +0100
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-20 22:31:42 +0100
commita88b258312d3c858b1b1167dfd03a09a6e28cacd (patch)
tree247d1b20e1c68565f7497dff5289492f0fe2669e
parent6eff820d35e78a9d8ffb2d35cef50e5125179e36 (diff)
xci: Enable VM provisioning using bifrost for daily runs
- create script to provision VMs (log upload is not enabled yet) - remove leftover inventory files (baremetal.csv, baremetal.json) - set BIFROST_INVENTORY_SOURCE as needed by stable/ocata - rename playbook used during bifrost and adjust scripts using it - remove puppet-infracloud stuff Change-Id: I1c4412d0725c00ab9a1b3497e358d33998b4e7e6 Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rwxr-xr-xjjb/xci/bifrost-verify.sh10
-rw-r--r--jjb/xci/xci-daily-jobs.yml48
-rwxr-xr-xjjb/xci/xci-provision.sh73
-rw-r--r--prototypes/bifrost/playbooks/opnfv-virtual.yaml (renamed from prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml)2
-rwxr-xr-xprototypes/bifrost/scripts/destroy-env.sh3
-rwxr-xr-xprototypes/bifrost/scripts/osa-bifrost-deployment.sh15
-rwxr-xr-xprototypes/bifrost/scripts/test-bifrost-deployment.sh5
7 files changed, 102 insertions, 54 deletions
diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh
index 4115ffcc4..e0c50907a 100755
--- a/jjb/xci/bifrost-verify.sh
+++ b/jjb/xci/bifrost-verify.sh
@@ -95,14 +95,13 @@ if [[ ! "$DISTRO" =~ (trusty|centos7|suse) ]]; then
fi
# remove previously cloned repos
-sudo /bin/rm -rf /opt/bifrost /opt/puppet-infracloud /opt/stack /opt/releng
+sudo /bin/rm -rf /opt/bifrost /opt/stack /opt/releng
# Fix up permissions
fix_ownership
# clone all the repos first and checkout the patch afterwards
sudo git clone https://git.openstack.org/openstack/bifrost /opt/bifrost
-sudo git clone https://git.openstack.org/openstack-infra/puppet-infracloud /opt/puppet-infracloud
sudo git clone https://gerrit.opnfv.org/gerrit/releng /opt/releng
# checkout the patch
@@ -112,13 +111,6 @@ sudo git fetch $PROJECT_REPO $GERRIT_REFSPEC && sudo git checkout FETCH_HEAD
# combine opnfv and upstream scripts/playbooks
sudo /bin/cp -rf /opt/releng/prototypes/bifrost/* /opt/bifrost/
-# place bridge creation file on the right path
-sudo mkdir -p /opt/puppet-infracloud/files/elements/infra-cloud-bridge/static/opt
-sudo cp /opt/puppet-infracloud/templates/bifrost/create_bridge.py.erb /opt/puppet-infracloud/files/elements/infra-cloud-bridge/static/opt/create_bridge.py
-
-# replace bridge name
-sudo sed -i s/"<%= @bridge_name -%>"/br_opnfv/g /opt/puppet-infracloud/files/elements/infra-cloud-bridge/static/opt/create_bridge.py
-
# cleanup remnants of previous deployment
cd /opt/bifrost
sudo -E ./scripts/destroy-env.sh
diff --git a/jjb/xci/xci-daily-jobs.yml b/jjb/xci/xci-daily-jobs.yml
index a71b9b783..c685aa974 100644
--- a/jjb/xci/xci-daily-jobs.yml
+++ b/jjb/xci/xci-daily-jobs.yml
@@ -5,11 +5,13 @@
#--------------------------------
master: &master
stream: master
- branch: '{stream}'
+ openstack-branch: '{stream}'
+ opnfv-branch: 'master'
gs-pathname: ''
ocata: &ocata
stream: ocata
- branch: 'stable/{stream}'
+ openstack-branch: 'stable/{stream}'
+ opnfv-branch: 'master'
gs-pathname: '/{stream}'
#--------------------------------
# scenarios
@@ -55,21 +57,9 @@
# Phases
#--------------------------------
phase:
- - 'provision':
- project: 'openstack'
- project-repo: 'https://git.openstack.org/openstack/bifrost'
- project-branch: '{branch}'
- clone-location: '/opt/bifrost'
- - 'deploy':
- project: 'openstack'
- project-repo: 'https://git.openstack.org/openstack/openstack-ansible'
- project-branch: '{branch}'
- clone-location: '/opt/openstack-ansible'
- - 'functest':
- project: 'opnfv'
- project-repo: 'https://gerrit.opnfv.org/gerrit/functest'
- project-branch: 'master'
- clone-location: '/opt/functest'
+ - 'provision'
+ - 'deploy'
+ - 'functest'
#--------------------------------
# jobs
#--------------------------------
@@ -158,17 +148,17 @@
parameters:
- string:
- name: PROJECT
- default: '{project}'
+ name: OPENSTACK_BRANCH
+ default: '{openstack-branch}'
- string:
- name: PROJECT_REPO
- default: '{project-repo}'
+ name: OPNFV_BRANCH
+ default: '{opnfv-branch}'
- string:
- name: DEPLOY_SCENARIO
- default: '{scenario}'
+ name: USE_PROMOTED_VERSIONS
+ default: 'true'
- string:
- name: CLONE_LOCATION
- default: '{clone-location}'
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
- string:
name: DISTRO
default: '{distro}'
@@ -188,14 +178,6 @@
name: CLEAN_DIB_IMAGES
default: 'true'
- scm:
- - git:
- url: '$PROJECT_REPO'
- branches:
- - 'origin/{project-branch}'
- wipe-workspace: true
- timeout: 15
-
builders:
- description-setter:
description: "Built on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
diff --git a/jjb/xci/xci-provision.sh b/jjb/xci/xci-provision.sh
index b77c79caa..4308c7ef8 100755
--- a/jjb/xci/xci-provision.sh
+++ b/jjb/xci/xci-provision.sh
@@ -1,3 +1,74 @@
#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o nounset
+set -o pipefail
-echo "Provisioning via bifrost"
+trap cleanup_and_upload EXIT
+
+function fix_ownership() {
+ if [ -z "${JOB_URL+x}" ]; then
+ echo "Not running as part of Jenkins. Handle the logs manually."
+ else
+ # Make sure cache exists
+ [[ ! -d ${HOME}/.cache ]] && mkdir ${HOME}/.cache
+
+ sudo chown -R jenkins:jenkins $WORKSPACE
+ sudo chown -R jenkins:jenkins ${HOME}/.cache
+ fi
+}
+
+function cleanup_and_upload() {
+ original_exit=$?
+ fix_ownership
+ exit $original_exit
+}
+
+# check distro to see if we support it
+if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then
+ echo "Distro $DISTRO is not supported!"
+ exit 1
+fi
+
+# remove previously cloned repos
+sudo /bin/rm -rf /opt/bifrost /opt/openstack-ansible /opt/stack /opt/releng /opt/functest
+
+# Fix up permissions
+fix_ownership
+
+# clone all the repos first and checkout the patch afterwards
+OPENSTACK_BRANCH=${OPENSTACK_BRANCH:-master}
+OPNFV_BRANCH=${OPNFV_BRANCH:-master}
+sudo git clone -b $OPENSTACK_BRANCH https://git.openstack.org/openstack/bifrost /opt/bifrost
+sudo git clone -b $OPNFV_BRANCH https://gerrit.opnfv.org/gerrit/releng /opt/releng
+
+# this script will be reused for promoting bifrost versions and using
+# promoted bifrost versions as part of xci daily.
+USE_PROMOTED_VERSIONS=${USE_PROMOTED_VERSIONS:-false}
+if [ $USE_PROMOTED_VERSIONS = "true" ]; then
+ echo "TBD: Will use the promoted versions of openstack/opnfv projects"
+fi
+
+# combine opnfv and upstream scripts/playbooks
+sudo /bin/cp -rf /opt/releng/prototypes/bifrost/* /opt/bifrost/
+
+# cleanup remnants of previous deployment
+cd /opt/bifrost
+sudo -E ./scripts/destroy-env.sh
+
+# provision 6 VMs; jumphost, controller00, controller01, controller02, compute00, and compute01
+cd /opt/bifrost
+sudo -E ./scripts/osa-bifrost-deployment.sh
+
+# list the provisioned VMs
+cd /opt/bifrost
+source env-vars
+ironic node-list
+virsh list
diff --git a/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml b/prototypes/bifrost/playbooks/opnfv-virtual.yaml
index 07d5e245b..310eca864 100644
--- a/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml
+++ b/prototypes/bifrost/playbooks/opnfv-virtual.yaml
@@ -54,7 +54,7 @@
dib_os_element: "{{ lookup('env','DIB_OS_ELEMENT') }}"
dib_os_release: "{{ lookup('env', 'DIB_OS_RELEASE') }}"
extra_dib_elements: "{{ lookup('env', 'EXTRA_DIB_ELEMENTS') | default('') }}"
- dib_elements: "vm enable-serial-console simple-init devuser infra-cloud-bridge puppet growroot {{ extra_dib_elements }}"
+ dib_elements: "vm enable-serial-console simple-init devuser growroot {{ extra_dib_elements }}"
dib_packages: "{{ lookup('env', 'DIB_OS_PACKAGES') }}"
when: create_image_via_dib | bool == true and transform_boot_image | bool == false
environment:
diff --git a/prototypes/bifrost/scripts/destroy-env.sh b/prototypes/bifrost/scripts/destroy-env.sh
index 1138da904..7d3db90b0 100755
--- a/prototypes/bifrost/scripts/destroy-env.sh
+++ b/prototypes/bifrost/scripts/destroy-env.sh
@@ -27,6 +27,9 @@ done
service ironic-conductor stop || true
+echo "removing inventory files created by previous builds"
+rm -rf /tmp/baremetal.*
+
echo "removing ironic database"
if $(which mysql &> /dev/null); then
mysql -u root ironic --execute "drop database ironic;"
diff --git a/prototypes/bifrost/scripts/osa-bifrost-deployment.sh b/prototypes/bifrost/scripts/osa-bifrost-deployment.sh
index cca30c2fc..bd6e54383 100755
--- a/prototypes/bifrost/scripts/osa-bifrost-deployment.sh
+++ b/prototypes/bifrost/scripts/osa-bifrost-deployment.sh
@@ -18,7 +18,8 @@ ENABLE_VENV="false"
USE_DHCP="false"
USE_VENV="false"
BUILD_IMAGE=true
-BAREMETAL_DATA_FILE=${BAREMETAL_DATA_FILE:-'/tmp/baremetal.json'}
+export BAREMETAL_DATA_FILE=${BAREMETAL_DATA_FILE:-'/tmp/baremetal.json'}
+export BIFROST_INVENTORY_SOURCE=${BIFROST_INVENTORY_SOURCE:-'/tmp/baremetal.csv'}
PROVISION_WAIT_TIMEOUT=${PROVISION_WAIT_TIMEOUT:-3600}
# Set defaults for ansible command-line options to drive the different
@@ -39,7 +40,7 @@ export VM_DOMAIN_TYPE="kvm"
export VM_CPU=${VM_CPU:-8}
export VM_DISK=${VM_DISK:-100}
export VM_DISK_CACHE=${VM_DISK_CACHE:-unsafe}
-TEST_PLAYBOOK="test-bifrost-infracloud.yaml"
+TEST_PLAYBOOK="opnfv-virtual.yaml"
USE_INSPECTOR=true
USE_CIRROS=false
TESTING_USER=root
@@ -53,8 +54,6 @@ INVENTORY_DHCP=false
INVENTORY_DHCP_STATIC_IP=false
WRITE_INTERFACES_FILE=true
-# Set BIFROST_INVENTORY_SOURCE
-export BIFROST_INVENTORY_SOURCE=/tmp/baremetal.json
# DIB custom elements path
export ELEMENTS_PATH=/opt/puppet-infracloud/files/elements
@@ -93,11 +92,11 @@ cd $BIFROST_HOME/playbooks
# Syntax check of dynamic inventory test path
for task in syntax-check list-tasks; do
- ${ANSIBLE} -vvvv \
+ ${ANSIBLE} \
-i inventory/localhost \
test-bifrost-create-vm.yaml \
--${task}
- ${ANSIBLE} -vvvv \
+ ${ANSIBLE} \
-i inventory/localhost \
${TEST_PLAYBOOK} \
--${task} \
@@ -105,7 +104,7 @@ for task in syntax-check list-tasks; do
done
# Create the test VMS
-${ANSIBLE} -vvvv \
+${ANSIBLE} \
-i inventory/localhost \
test-bifrost-create-vm.yaml \
-e test_vm_num_nodes=${TEST_VM_NUM_NODES} \
@@ -115,7 +114,7 @@ ${ANSIBLE} -vvvv \
-e baremetal_json_file=${BAREMETAL_DATA_FILE}
# Execute the installation and VM startup test.
-${ANSIBLE} -vvvv \
+${ANSIBLE} \
-i inventory/bifrost_inventory.py \
${TEST_PLAYBOOK} \
-e use_cirros=${USE_CIRROS} \
diff --git a/prototypes/bifrost/scripts/test-bifrost-deployment.sh b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
index b7165ffd1..3c3b6bacb 100755
--- a/prototypes/bifrost/scripts/test-bifrost-deployment.sh
+++ b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
@@ -18,7 +18,8 @@ ENABLE_VENV="false"
USE_DHCP="false"
USE_VENV="false"
BUILD_IMAGE=true
-BAREMETAL_DATA_FILE=${BAREMETAL_DATA_FILE:-'/tmp/baremetal.json'}
+export BAREMETAL_DATA_FILE=${BAREMETAL_DATA_FILE:-'/tmp/baremetal.json'}
+export BIFROST_INVENTORY_SOURCE=${BIFROST_INVENTORY_SOURCE:-'/tmp/baremetal.csv'}
PROVISION_WAIT_TIMEOUT=${PROVISION_WAIT_TIMEOUT:-3600}
# Set defaults for ansible command-line options to drive the different
@@ -38,7 +39,7 @@ export VM_DOMAIN_TYPE="kvm"
export VM_CPU=${VM_CPU:-4}
export VM_DISK=${VM_DISK:-100}
export VM_DISK_CACHE=${VM_DISK_CACHE:-unsafe}
-TEST_PLAYBOOK="test-bifrost-infracloud.yaml"
+TEST_PLAYBOOK="opnfv-virtual.yaml"
USE_INSPECTOR=true
USE_CIRROS=false
TESTING_USER=root