summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-24 15:06:16 +0100
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2017-03-24 17:12:03 +0100
commitaf43f43798ccb6a012dcb072f84c116f7e3ca46a (patch)
treedc8fca350d2d76ac50fd78590df7a201a92c9f96
parent33ad7e23e1d76011a574f709c0d2bb915983e6d1 (diff)
xci: Set up the basics for xci developer sandbox
This change creates - initial version of the script to initiate the VM node creation and provisioning with bifrost and OpenStack installation with openstack-ansible - pinned-versions to hold the "known working" versions. releng will use master until the development is complete. - user-vars to hold user variables - configuration files to keep settings for different flavors - ansible files (playbooks, inventory files, variables) per flavor. These files are empty at the moment in order to save the chosen path makes sense. Once the way is agreed on, these will be similar to the files listed below with different content per flavor. https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=prototypes/openstack-ansible/playbooks/inventory https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=prototypes/openstack-ansible/playbooks/configure-xcimaster.yml https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=prototypes/openstack-ansible/var/ubuntu.yml These new files will be the ones used when the actual deployment is done with openstack-ansible based on the flavor chosen by developer (or CI). Change-Id: Ia2f38416a161abd186cbcca61e105c6a68f78b54 Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rwxr-xr-xprototypes/xci/config/pinned-versions26
-rwxr-xr-xprototypes/xci/config/user-vars44
-rw-r--r--prototypes/xci/file/configure-xci-aio.yml0
-rw-r--r--prototypes/xci/file/configure-xci-ha.yml0
-rw-r--r--prototypes/xci/file/configure-xci-mini.yml0
-rw-r--r--prototypes/xci/file/configure-xci-noha.yml0
-rw-r--r--prototypes/xci/file/xci-aio-inventory0
-rw-r--r--prototypes/xci/file/xci-aio-vars.yml0
-rw-r--r--prototypes/xci/file/xci-ha-inventory0
-rw-r--r--prototypes/xci/file/xci-ha-vars.yml0
-rw-r--r--prototypes/xci/file/xci-mini-inventory0
-rw-r--r--prototypes/xci/file/xci-mini-vars.yml0
-rw-r--r--prototypes/xci/file/xci-noha-inventory0
-rw-r--r--prototypes/xci/file/xci-noha-vars.yml0
-rw-r--r--prototypes/xci/flavors/xci-aio.sh27
-rw-r--r--prototypes/xci/flavors/xci-ha.sh27
-rw-r--r--prototypes/xci/flavors/xci-mini.sh27
-rw-r--r--prototypes/xci/flavors/xci-noha.sh27
-rwxr-xr-xprototypes/xci/xci-deploy.sh17
19 files changed, 195 insertions, 0 deletions
diff --git a/prototypes/xci/config/pinned-versions b/prototypes/xci/config/pinned-versions
new file mode 100755
index 000000000..c81fcc36b
--- /dev/null
+++ b/prototypes/xci/config/pinned-versions
@@ -0,0 +1,26 @@
+#-------------------------------------------------------------------------------
+# Pinned Component Versions
+#-------------------------------------------------------------------------------
+# You are free to override these versions in user-vars to experiment with
+# different branches or with different commits but be aware that things might
+# not work as expected.
+#
+# It is important to be consistent between branches you use for OpenStack
+# projects OPNFV XCI uses.
+#
+# Examples:
+# export OPENSTACK_BIFROST_VERSION="stable/ocata"
+# export OPENSTACK_OSA_VERSION="stable/ocata"
+# or
+# export OPENSTACK_BIFROST_VERSION="master"
+# export OPENSTACK_OSA_VERSION="master"
+# or
+# export OPENSTACK_BIFROST_VERSION="a87f7ce6c8725b3bbffec7b2efa1e466796848a9"
+# export OPENSTACK_OSA_VERSION="4713cf45e11b4ebca9fbed25d1389854602213d8"
+#-------------------------------------------------------------------------------
+# 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"
diff --git a/prototypes/xci/config/user-vars b/prototypes/xci/config/user-vars
new file mode 100755
index 000000000..bb2bfe1d3
--- /dev/null
+++ b/prototypes/xci/config/user-vars
@@ -0,0 +1,44 @@
+#-------------------------------------------------------------------------------
+# 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
+#
+# 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"
+# or
+# export XCI_FLAVOR="xci-mini"
+# or
+# export XCI_FLAVOR="xci-noha"
+# or
+# export XCI_FLAVOR="xci-ha"
+#-------------------------------------------------------------------------------
+export XCI_FLAVOR=${XCI_FLAVOR:-xci-mini}
+
+#-------------------------------------------------------------------------------
+# Configure some other stuff
+#-------------------------------------------------------------------------------
+# Set the verbosity for ansible
+#
+# Examples:
+# ANSIBLE_VERBOSITY="-v"
+# or
+# ANSIBLE_VERBOSITY="-vvvv"
+export ANSIBLE_VERBOSITY=${ANSIBLE_VERBOSITY:-""}
diff --git a/prototypes/xci/file/configure-xci-aio.yml b/prototypes/xci/file/configure-xci-aio.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/configure-xci-aio.yml
diff --git a/prototypes/xci/file/configure-xci-ha.yml b/prototypes/xci/file/configure-xci-ha.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/configure-xci-ha.yml
diff --git a/prototypes/xci/file/configure-xci-mini.yml b/prototypes/xci/file/configure-xci-mini.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/configure-xci-mini.yml
diff --git a/prototypes/xci/file/configure-xci-noha.yml b/prototypes/xci/file/configure-xci-noha.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/configure-xci-noha.yml
diff --git a/prototypes/xci/file/xci-aio-inventory b/prototypes/xci/file/xci-aio-inventory
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-aio-inventory
diff --git a/prototypes/xci/file/xci-aio-vars.yml b/prototypes/xci/file/xci-aio-vars.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-aio-vars.yml
diff --git a/prototypes/xci/file/xci-ha-inventory b/prototypes/xci/file/xci-ha-inventory
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-ha-inventory
diff --git a/prototypes/xci/file/xci-ha-vars.yml b/prototypes/xci/file/xci-ha-vars.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-ha-vars.yml
diff --git a/prototypes/xci/file/xci-mini-inventory b/prototypes/xci/file/xci-mini-inventory
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-mini-inventory
diff --git a/prototypes/xci/file/xci-mini-vars.yml b/prototypes/xci/file/xci-mini-vars.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-mini-vars.yml
diff --git a/prototypes/xci/file/xci-noha-inventory b/prototypes/xci/file/xci-noha-inventory
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-noha-inventory
diff --git a/prototypes/xci/file/xci-noha-vars.yml b/prototypes/xci/file/xci-noha-vars.yml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/prototypes/xci/file/xci-noha-vars.yml
diff --git a/prototypes/xci/flavors/xci-aio.sh b/prototypes/xci/flavors/xci-aio.sh
new file mode 100644
index 000000000..9f9ea1be6
--- /dev/null
+++ b/prototypes/xci/flavors/xci-aio.sh
@@ -0,0 +1,27 @@
+#-------------------------------------------------------------------------------
+# 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.
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# Configure VM Nodes
+#-------------------------------------------------------------------------------
+export TEST_VM_NUM_NODES=1
+export TEST_VM_NODE_NAMES=xciaio
+export VM_DOMAIN_TYPE=kvm
+export VM_CPU=8
+export VM_DISK=80
+export VM_MEMORY_SIZE=12288
+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/xci-ha.sh
new file mode 100644
index 000000000..442432fea
--- /dev/null
+++ b/prototypes/xci/flavors/xci-ha.sh
@@ -0,0 +1,27 @@
+#-------------------------------------------------------------------------------
+# 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.
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# Configure VM Nodes
+#-------------------------------------------------------------------------------
+export TEST_VM_NUM_NODES=6
+export TEST_VM_NODE_NAMES="xcimaster controller00 controller01 controller02 compute00 compute01"
+export VM_DOMAIN_TYPE=kvm
+export VM_CPU=8
+export VM_DISK=100
+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/xci-mini.sh
new file mode 100644
index 000000000..11048f6be
--- /dev/null
+++ b/prototypes/xci/flavors/xci-mini.sh
@@ -0,0 +1,27 @@
+#-------------------------------------------------------------------------------
+# 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.
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# Configure VM Nodes
+#-------------------------------------------------------------------------------
+export TEST_VM_NUM_NODES=3
+export TEST_VM_NODE_NAMES="xcimaster controller00 compute00"
+export VM_DOMAIN_TYPE=kvm
+export VM_CPU=8
+export VM_DISK=100
+export VM_MEMORY_SIZE=12288
+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/xci-noha.sh
new file mode 100644
index 000000000..6a83f9962
--- /dev/null
+++ b/prototypes/xci/flavors/xci-noha.sh
@@ -0,0 +1,27 @@
+#-------------------------------------------------------------------------------
+# 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.
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+# Configure VM Nodes
+#-------------------------------------------------------------------------------
+export TEST_VM_NUM_NODES=4
+export TEST_VM_NODE_NAMES="xcimaster controller00 compute00 compute01"
+export VM_DOMAIN_TYPE=kvm
+export VM_CPU=8
+export VM_DISK=100
+export VM_MEMORY_SIZE=12288
+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
new file mode 100755
index 000000000..34149f22f
--- /dev/null
+++ b/prototypes/xci/xci-deploy.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+set -o xtrace
+
+# find where are we
+XCI_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# source pinned versions
+source $XCI_PATH/config/pinned-versions
+
+# source user vars
+source $XCI_PATH/config/user-vars
+
+# source flavor configuration
+source $XCI_PATH/flavors/$XCI_FLAVOR.sh