xci: Set up the basics for xci developer sandbox 05/31705/3
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>
Fri, 24 Mar 2017 14:06:16 +0000 (15:06 +0100)
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>
Fri, 24 Mar 2017 16:12:03 +0000 (17:12 +0100)
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>
19 files changed:
prototypes/xci/config/pinned-versions [new file with mode: 0755]
prototypes/xci/config/user-vars [new file with mode: 0755]
prototypes/xci/file/configure-xci-aio.yml [new file with mode: 0644]
prototypes/xci/file/configure-xci-ha.yml [new file with mode: 0644]
prototypes/xci/file/configure-xci-mini.yml [new file with mode: 0644]
prototypes/xci/file/configure-xci-noha.yml [new file with mode: 0644]
prototypes/xci/file/xci-aio-inventory [new file with mode: 0644]
prototypes/xci/file/xci-aio-vars.yml [new file with mode: 0644]
prototypes/xci/file/xci-ha-inventory [new file with mode: 0644]
prototypes/xci/file/xci-ha-vars.yml [new file with mode: 0644]
prototypes/xci/file/xci-mini-inventory [new file with mode: 0644]
prototypes/xci/file/xci-mini-vars.yml [new file with mode: 0644]
prototypes/xci/file/xci-noha-inventory [new file with mode: 0644]
prototypes/xci/file/xci-noha-vars.yml [new file with mode: 0644]
prototypes/xci/flavors/xci-aio.sh [new file with mode: 0644]
prototypes/xci/flavors/xci-ha.sh [new file with mode: 0644]
prototypes/xci/flavors/xci-mini.sh [new file with mode: 0644]
prototypes/xci/flavors/xci-noha.sh [new file with mode: 0644]
prototypes/xci/xci-deploy.sh [new file with mode: 0755]

diff --git a/prototypes/xci/config/pinned-versions b/prototypes/xci/config/pinned-versions
new file mode 100755 (executable)
index 0000000..c81fcc3
--- /dev/null
@@ -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 (executable)
index 0000000..bb2bfe1
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/configure-xci-ha.yml b/prototypes/xci/file/configure-xci-ha.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/configure-xci-mini.yml b/prototypes/xci/file/configure-xci-mini.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/configure-xci-noha.yml b/prototypes/xci/file/configure-xci-noha.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-aio-inventory b/prototypes/xci/file/xci-aio-inventory
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-aio-vars.yml b/prototypes/xci/file/xci-aio-vars.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-ha-inventory b/prototypes/xci/file/xci-ha-inventory
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-ha-vars.yml b/prototypes/xci/file/xci-ha-vars.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-mini-inventory b/prototypes/xci/file/xci-mini-inventory
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-mini-vars.yml b/prototypes/xci/file/xci-mini-vars.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-noha-inventory b/prototypes/xci/file/xci-noha-inventory
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/file/xci-noha-vars.yml b/prototypes/xci/file/xci-noha-vars.yml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/prototypes/xci/flavors/xci-aio.sh b/prototypes/xci/flavors/xci-aio.sh
new file mode 100644 (file)
index 0000000..9f9ea1b
--- /dev/null
@@ -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 (file)
index 0000000..442432f
--- /dev/null
@@ -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 (file)
index 0000000..11048f6
--- /dev/null
@@ -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 (file)
index 0000000..6a83f99
--- /dev/null
@@ -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 (executable)
index 0000000..34149f2
--- /dev/null
@@ -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