summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xprototypes/xci/config/env-vars12
-rwxr-xr-xprototypes/xci/config/pinned-versions8
-rwxr-xr-xprototypes/xci/config/user-vars40
-rw-r--r--prototypes/xci/file/aio/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/configure-xci-aio.yml)0
-rw-r--r--prototypes/xci/file/aio/playbooks/inventory2
-rw-r--r--prototypes/xci/file/aio/var/ubuntu.yml7
-rw-r--r--prototypes/xci/file/ha/configure-targethosts.yml (renamed from prototypes/xci/file/configure-xci-ha.yml)0
-rw-r--r--prototypes/xci/file/ha/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/configure-xci-mini.yml)0
-rw-r--r--prototypes/xci/file/ha/playbooks/inventory (renamed from prototypes/xci/file/configure-xci-noha.yml)0
-rw-r--r--prototypes/xci/file/ha/var/ubuntu.yml (renamed from prototypes/xci/file/xci-aio-inventory)0
-rw-r--r--prototypes/xci/file/mini/configure-targethosts.yml (renamed from prototypes/xci/file/xci-aio-vars.yml)0
-rw-r--r--prototypes/xci/file/mini/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/xci-ha-inventory)0
-rw-r--r--prototypes/xci/file/mini/playbooks/inventory (renamed from prototypes/xci/file/xci-ha-vars.yml)0
-rw-r--r--prototypes/xci/file/mini/var/ubuntu.yml (renamed from prototypes/xci/file/xci-mini-inventory)0
-rw-r--r--prototypes/xci/file/noha/configure-targethosts.yml (renamed from prototypes/xci/file/xci-mini-vars.yml)0
-rw-r--r--prototypes/xci/file/noha/playbooks/configure-xcihost.yml (renamed from prototypes/xci/file/xci-noha-inventory)0
-rw-r--r--prototypes/xci/file/noha/playbooks/inventory (renamed from prototypes/xci/file/xci-noha-vars.yml)0
-rw-r--r--prototypes/xci/file/noha/var/ubuntu.yml0
-rw-r--r--prototypes/xci/flavors/aio (renamed from prototypes/xci/flavors/xci-aio.sh)13
-rw-r--r--prototypes/xci/flavors/ha (renamed from prototypes/xci/flavors/xci-ha.sh)13
-rw-r--r--prototypes/xci/flavors/mini (renamed from prototypes/xci/flavors/xci-mini.sh)15
-rw-r--r--prototypes/xci/flavors/noha (renamed from prototypes/xci/flavors/xci-noha.sh)15
-rwxr-xr-xprototypes/xci/xci-deploy.sh61
23 files changed, 115 insertions, 71 deletions
diff --git a/prototypes/xci/config/env-vars b/prototypes/xci/config/env-vars
new file mode 100755
index 000000000..106a17930
--- /dev/null
+++ b/prototypes/xci/config/env-vars
@@ -0,0 +1,12 @@
+#-------------------------------------------------------------------------------
+# Do not change these settings if you are not developing for XCI Sandbox!
+#-------------------------------------------------------------------------------
+export OPNFV_RELENG_GIT_URL=https://gerrit.opnfv.org/gerrit/releng.git
+export OPENSTACK_BIFROST_GIT_URL=https://git.openstack.org/openstack/bifrost
+export OPENSTACK_OSA_GIT_URL=https://git.openstack.org/openstack/openstack-ansible
+export OPENSTACK_OSA_ETC_PATH=/etc/openstack_deploy
+export CLEAN_DIB_IMAGES=false
+export XCI_IP=192.168.122.2
+export XCI_ANSIBLE_PLAYBOOKS_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR/playbooks
+export XCI_ANSIBLE_VARS_PATH=$OPNFV_RELENG_PATH/prototypes/xci/file/$XCI_FLAVOR/var
+export JOB_NAME=${JOB_NAME:-false}
diff --git a/prototypes/xci/config/pinned-versions b/prototypes/xci/config/pinned-versions
index c81fcc36b..2fe9eee42 100755
--- a/prototypes/xci/config/pinned-versions
+++ b/prototypes/xci/config/pinned-versions
@@ -20,7 +20,7 @@
#-------------------------------------------------------------------------------
# use releng from master until the development work with the sandbox is complete
export OPNFV_RELENG_VERSION="master"
-# HEAD of "stable/ocata" as of 24.03.2017 - verified by OPNFV CI
-export OPENSTACK_BIFROST_VERSION="a87f7ce6c8725b3bbffec7b2efa1e466796848a9"
-# HEAD of "stable/ocata" as of 24.03.2017 - verified by OPNFV CI
-export OPENSTACK_OSA_VERSION="4713cf45e11b4ebca9fbed25d1389854602213d8"
+# HEAD of "master" as of 27.03.2017 - verified by OPNFV CI
+export OPENSTACK_BIFROST_VERSION="7417ff36e4b5fc4e2a6ee7d9dddb7287be20c37d"
+# HEAD of "master" as of 27.03.2017 - verified by OPNFV CI
+export OPENSTACK_OSA_VERSION="baba7b317a5898cd73b4a11c4ce364c7e2d3d77f"
diff --git a/prototypes/xci/config/user-vars b/prototypes/xci/config/user-vars
index bb2bfe1d3..f29dda66f 100755
--- a/prototypes/xci/config/user-vars
+++ b/prototypes/xci/config/user-vars
@@ -1,36 +1,36 @@
#-------------------------------------------------------------------------------
-# Set Paths to where git repositories of XCI Components will be cloned
-#-------------------------------------------------------------------------------
-# OPNFV XCI Sandbox is not verified to be used as non-root user as of yet so
-# changing these paths might break things.
-#-------------------------------------------------------------------------------
-export OPNFV_RELENG_PATH=/opt/releng
-export OPENSTACK_BIFROST_PATH=/opt/bifrost
-export OPENSTACK_OSA_PATH=/opt/openstack-ansible
-
-#-------------------------------------------------------------------------------
# Set Deployment Flavor
#-------------------------------------------------------------------------------
# OPNFV XCI currently supports 4 different types of flavors:
-# - all in one (aio) - xci-aio.sh: 1 VM which acts as controller and compute node
-# - mini opnfv: 3 VMs, 1 xcimaster, 1 controller, and 1 compute nodes
-# - noha: 4 VMs, 1 xcimaster, 1 controller, and 2 compute nodes
-# - ha: 6 VMs, 1 xcimaster, 3 controllers, and 2 compute nodes
+# - all in one (aio): 1 xci VM which acts as controller and compute node
+# - mini: 3 VMs, 1 xci VM, 1 controller, and 1 compute nodes
+# - noha: 4 VMs, 1 xci VM, 1 controller, and 2 compute nodes
+# - ha: 6 VMs, 1 xci VM, 3 controllers, and 2 compute nodes
#
# Apart from having different number of nodes, CPU, RAM, and disk allocations
# also differ from each other. Please take a look at the env-vars files for
# each of these flavors.
#
# Examples:
-# export XCI_FLAVOR="xci-aio"
+# export XCI_FLAVOR="aio"
# or
-# export XCI_FLAVOR="xci-mini"
+# export XCI_FLAVOR="mini"
# or
-# export XCI_FLAVOR="xci-noha"
+# export XCI_FLAVOR="noha"
# or
-# export XCI_FLAVOR="xci-ha"
+# export XCI_FLAVOR="ha"
#-------------------------------------------------------------------------------
-export XCI_FLAVOR=${XCI_FLAVOR:-xci-mini}
+export XCI_FLAVOR=${XCI_FLAVOR:-aio}
+
+#-------------------------------------------------------------------------------
+# Set Paths to where git repositories of XCI Components will be cloned
+#-------------------------------------------------------------------------------
+# OPNFV XCI Sandbox is not verified to be used as non-root user as of yet so
+# changing these paths might break things.
+#-------------------------------------------------------------------------------
+export OPNFV_RELENG_PATH=/opt/releng
+export OPENSTACK_BIFROST_PATH=/opt/bifrost
+export OPENSTACK_OSA_PATH=/opt/openstack-ansible
#-------------------------------------------------------------------------------
# Configure some other stuff
@@ -41,4 +41,4 @@ export XCI_FLAVOR=${XCI_FLAVOR:-xci-mini}
# ANSIBLE_VERBOSITY="-v"
# or
# ANSIBLE_VERBOSITY="-vvvv"
-export ANSIBLE_VERBOSITY=${ANSIBLE_VERBOSITY:-""}
+export ANSIBLE_VERBOSITY=${ANSIBLE_VERBOSITY-""}
diff --git a/prototypes/xci/file/configure-xci-aio.yml b/prototypes/xci/file/aio/playbooks/configure-xcihost.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/configure-xci-aio.yml
+++ b/prototypes/xci/file/aio/playbooks/configure-xcihost.yml
diff --git a/prototypes/xci/file/aio/playbooks/inventory b/prototypes/xci/file/aio/playbooks/inventory
new file mode 100644
index 000000000..9283e516d
--- /dev/null
+++ b/prototypes/xci/file/aio/playbooks/inventory
@@ -0,0 +1,2 @@
+[xciaio]
+xciaio ansible_ssh_host=192.168.122.2
diff --git a/prototypes/xci/file/aio/var/ubuntu.yml b/prototypes/xci/file/aio/var/ubuntu.yml
new file mode 100644
index 000000000..3a041b1cb
--- /dev/null
+++ b/prototypes/xci/file/aio/var/ubuntu.yml
@@ -0,0 +1,7 @@
+---
+OPENSTACK_OSA_GIT_URL: "{{ lookup('env','OPENSTACK_OSA_GIT_URL') }}"
+OPENSTACK_OSA_PATH: "{{ lookup('env','OPENSTACK_OSA_PATH') }}"
+OPENSTACK_OSA_VERSION: "{{ lookup('env','OPENSTACK_OSA_VERSION') }}"
+OPENSTACK_OSA_ETC_PATH: "{{ lookup('env','OPENSTACK_OSA_ETC_PATH') }}"
+XCI_IP: "{{ lookup('env','XCI_IP') }}"
+multi_host: "False"
diff --git a/prototypes/xci/file/configure-xci-ha.yml b/prototypes/xci/file/ha/configure-targethosts.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/configure-xci-ha.yml
+++ b/prototypes/xci/file/ha/configure-targethosts.yml
diff --git a/prototypes/xci/file/configure-xci-mini.yml b/prototypes/xci/file/ha/playbooks/configure-xcihost.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/configure-xci-mini.yml
+++ b/prototypes/xci/file/ha/playbooks/configure-xcihost.yml
diff --git a/prototypes/xci/file/configure-xci-noha.yml b/prototypes/xci/file/ha/playbooks/inventory
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/configure-xci-noha.yml
+++ b/prototypes/xci/file/ha/playbooks/inventory
diff --git a/prototypes/xci/file/xci-aio-inventory b/prototypes/xci/file/ha/var/ubuntu.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-aio-inventory
+++ b/prototypes/xci/file/ha/var/ubuntu.yml
diff --git a/prototypes/xci/file/xci-aio-vars.yml b/prototypes/xci/file/mini/configure-targethosts.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-aio-vars.yml
+++ b/prototypes/xci/file/mini/configure-targethosts.yml
diff --git a/prototypes/xci/file/xci-ha-inventory b/prototypes/xci/file/mini/playbooks/configure-xcihost.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-ha-inventory
+++ b/prototypes/xci/file/mini/playbooks/configure-xcihost.yml
diff --git a/prototypes/xci/file/xci-ha-vars.yml b/prototypes/xci/file/mini/playbooks/inventory
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-ha-vars.yml
+++ b/prototypes/xci/file/mini/playbooks/inventory
diff --git a/prototypes/xci/file/xci-mini-inventory b/prototypes/xci/file/mini/var/ubuntu.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-mini-inventory
+++ b/prototypes/xci/file/mini/var/ubuntu.yml
diff --git a/prototypes/xci/file/xci-mini-vars.yml b/prototypes/xci/file/noha/configure-targethosts.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-mini-vars.yml
+++ b/prototypes/xci/file/noha/configure-targethosts.yml
diff --git a/prototypes/xci/file/xci-noha-inventory b/prototypes/xci/file/noha/playbooks/configure-xcihost.yml
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-noha-inventory
+++ b/prototypes/xci/file/noha/playbooks/configure-xcihost.yml
diff --git a/prototypes/xci/file/xci-noha-vars.yml b/prototypes/xci/file/noha/playbooks/inventory
index e69de29bb..e69de29bb 100644
--- a/prototypes/xci/file/xci-noha-vars.yml
+++ b/prototypes/xci/file/noha/playbooks/inventory
diff --git a/prototypes/xci/file/noha/var/ubuntu.yml b/prototypes/xci/file/noha/var/ubuntu.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/noha/var/ubuntu.yml
diff --git a/prototypes/xci/flavors/xci-aio.sh b/prototypes/xci/flavors/aio
index 9f9ea1be6..48754e507 100644
--- a/prototypes/xci/flavors/xci-aio.sh
+++ b/prototypes/xci/flavors/aio
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=1
-export TEST_VM_NODE_NAMES=xciaio
+export TEST_VM_NODE_NAMES=xci
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
export VM_DISK=80
-export VM_MEMORY_SIZE=12288
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-aio.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-aio-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-aio-vars.yml
diff --git a/prototypes/xci/flavors/xci-ha.sh b/prototypes/xci/flavors/ha
index 442432fea..8a045a3dd 100644
--- a/prototypes/xci/flavors/xci-ha.sh
+++ b/prototypes/xci/flavors/ha
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=6
-export TEST_VM_NODE_NAMES="xcimaster controller00 controller01 controller02 compute00 compute01"
+export TEST_VM_NODE_NAMES="xci controller00 controller01 controller02 compute00 compute01"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
+export VM_DISK=80
export VM_MEMORY_SIZE=16384
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-ha.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-ha-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-ha-vars.yml
diff --git a/prototypes/xci/flavors/xci-mini.sh b/prototypes/xci/flavors/mini
index 11048f6be..44b015d9f 100644
--- a/prototypes/xci/flavors/xci-mini.sh
+++ b/prototypes/xci/flavors/mini
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=3
-export TEST_VM_NODE_NAMES="xcimaster controller00 compute00"
+export TEST_VM_NODE_NAMES="xci controller00 compute00"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
-export VM_MEMORY_SIZE=12288
+export VM_DISK=80
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-mini.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-vars.yml
diff --git a/prototypes/xci/flavors/xci-noha.sh b/prototypes/xci/flavors/noha
index 6a83f9962..7f686e5e5 100644
--- a/prototypes/xci/flavors/xci-noha.sh
+++ b/prototypes/xci/flavors/noha
@@ -1,8 +1,6 @@
#-------------------------------------------------------------------------------
# XCI Flavor Configuration
#-------------------------------------------------------------------------------
-# This is the configuration for xci-aio.
-#
# You are free to modify parts of the configuration to fit into your environment.
# But before doing that, please ensure you checked other flavors to see if one
# them can be used instead, saving you some time.
@@ -12,16 +10,9 @@
# Configure VM Nodes
#-------------------------------------------------------------------------------
export TEST_VM_NUM_NODES=4
-export TEST_VM_NODE_NAMES="xcimaster controller00 compute00 compute01"
+export TEST_VM_NODE_NAMES="xci controller00 compute00 compute01"
export VM_DOMAIN_TYPE=kvm
export VM_CPU=8
-export VM_DISK=100
-export VM_MEMORY_SIZE=12288
+export VM_DISK=80
+export VM_MEMORY_SIZE=8192
export VM_DISK_CACHE=unsafe
-
-#-------------------------------------------------------------------------------
-# Ansible Files for the Flavor
-#-------------------------------------------------------------------------------
-XCI_ANSIBLE_PLAYBOOK=$OPNFV_RELENG_PATH/prototypes/xci/file/configure-xci-mini.yml
-XCI_ANSIBLE_INVENTORY=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-inventory
-XCI_ANSIBLE_VARS=$OPNFV_RELENG_PATH/prototypes/xci/file/xci-mini-vars.yml
diff --git a/prototypes/xci/xci-deploy.sh b/prototypes/xci/xci-deploy.sh
index 34149f22f..401c098c6 100755
--- a/prototypes/xci/xci-deploy.sh
+++ b/prototypes/xci/xci-deploy.sh
@@ -4,6 +4,12 @@ set -o nounset
set -o pipefail
set -o xtrace
+# This script must run as root
+if [[ $(whoami) != "root" ]]; then
+ echo "Error: This script must be run as root!"
+ exit 1
+fi
+
# find where are we
XCI_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@@ -14,4 +20,57 @@ source $XCI_PATH/config/pinned-versions
source $XCI_PATH/config/user-vars
# source flavor configuration
-source $XCI_PATH/flavors/$XCI_FLAVOR.sh
+source $XCI_PATH/flavors/$XCI_FLAVOR
+
+# source xci configuration
+source $XCI_PATH/config/env-vars
+
+# log info to console
+echo "Info: Starting XCI Deployment"
+echo "Info: Deployment parameters"
+echo "-------------------------------------------------------------------------"
+echo "xci flavor: $XCI_FLAVOR"
+echo "opnfv/releng version: $OPNFV_RELENG_VERSION"
+echo "openstack/bifrost version: $OPENSTACK_BIFROST_VERSION"
+echo "openstack/openstack-ansible version: $OPENSTACK_OSA_VERSION"
+echo "-------------------------------------------------------------------------"
+
+#-------------------------------------------------------------------------------
+# Cleanup the leftovers from the previous deployment
+#-------------------------------------------------------------------------------
+echo "Info: Cleaning up the previous deployment"
+$XCI_PATH/../bifrost/scripts/destroy-env.sh > /dev/null 2>&1
+/bin/rm -rf /opt/releng /opt/bifrost /opt/openstack-ansible /opt/stack
+
+#-------------------------------------------------------------------------------
+# Clone the repositories and checkout the versions
+#-------------------------------------------------------------------------------
+echo "Info: Cloning repositories and checking out versions"
+git clone --quiet $OPNFV_RELENG_GIT_URL $OPNFV_RELENG_PATH && \
+ cd $OPNFV_RELENG_PATH
+echo "Info: Cloned opnfv/releng. HEAD currently points at"
+echo " $(git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>')"
+git clone --quiet $OPENSTACK_BIFROST_GIT_URL $OPENSTACK_BIFROST_PATH && \
+ cd $OPENSTACK_BIFROST_PATH
+echo "Info: Cloned openstack/bifrost. HEAD currently points at"
+echo " $(git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>')"
+
+#-------------------------------------------------------------------------------
+# Combine opnfv and upstream scripts/playbooks
+#-------------------------------------------------------------------------------
+echo "Info: Combining opnfv/releng and opestack/bifrost scripts/playbooks"
+/bin/cp -rf $OPNFV_RELENG_PATH/prototypes/bifrost/* $OPENSTACK_BIFROST_PATH/
+
+#-------------------------------------------------------------------------------
+# Start provisioning VM nodes
+#-------------------------------------------------------------------------------
+echo "Info: Starting provisining VM nodes using openstack/bifrost"
+echo " This might take between 10 to 20 minutes depending on the flavor and the host"
+echo "-------------------------------------------------------------------------"
+cd $OPENSTACK_BIFROST_PATH
+STARTTIME=$(date +%s)
+./scripts/bifrost-provision.sh
+ENDTIME=$(date +%s)
+echo "-----------------------------------------------------------------------"
+echo "Info: VM nodes are provisioned!"
+echo "Info: It took $(($ENDTIME - $STARTTIME)) seconds to provising the VM nodes"