Skip to content
Snippets Groups Projects
Commit 820f9f29 authored by Mark Goddard's avatar Mark Goddard
Browse files

Address dev environment review comments

Improves shell script quoting, and adds

set -u
set -o pipefail
parent 6beb8804
No related branches found
No related tags found
No related merge requests found
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# This script can be used to prepare the environment for use with kayobe. This # This script can be used to prepare the environment for use with kayobe. This
# includes setting environment variables and activating the python virtual # includes setting environment variables and activating the python virtual
...@@ -9,7 +10,7 @@ set -e ...@@ -9,7 +10,7 @@ set -e
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/functions source "${PARENT}/functions"
function main { function main {
......
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# Library of functions for the kayobe development environment. # Library of functions for the kayobe development environment.
...@@ -13,18 +14,18 @@ function config_defaults { ...@@ -13,18 +14,18 @@ function config_defaults {
if [[ -e /vagrant ]]; then if [[ -e /vagrant ]]; then
KAYOBE_SOURCE_PATH_DEFAULT=/vagrant KAYOBE_SOURCE_PATH_DEFAULT=/vagrant
else else
KAYOBE_SOURCE_PATH_DEFAULT=$(pwd) KAYOBE_SOURCE_PATH_DEFAULT="$(pwd)"
fi fi
# Path to the kayobe source code repository. Typically this will be the # Path to the kayobe source code repository. Typically this will be the
# Vagrant shared directory. # Vagrant shared directory.
export KAYOBE_SOURCE_PATH=${KAYOBE_SOURCE_PATH:-$KAYOBE_SOURCE_PATH_DEFAULT} export KAYOBE_SOURCE_PATH="${KAYOBE_SOURCE_PATH:-$KAYOBE_SOURCE_PATH_DEFAULT}"
# Path to the kayobe-config repository checkout. # Path to the kayobe-config repository checkout.
export KAYOBE_CONFIG_SOURCE_PATH=${KAYOBE_CONFIG_SOURCE_PATH:-${KAYOBE_SOURCE_PATH}/config/src/kayobe-config} export KAYOBE_CONFIG_SOURCE_PATH="${KAYOBE_CONFIG_SOURCE_PATH:-${KAYOBE_SOURCE_PATH}/config/src/kayobe-config}"
# Path to the kayobe virtual environment. # Path to the kayobe virtual environment.
export KAYOBE_VENV_PATH=${KAYOBE_VENV_PATH:-~/kayobe-venv} export KAYOBE_VENV_PATH="${KAYOBE_VENV_PATH:-~/kayobe-venv}"
# Whether to build container images for the seed services. If 0, they will # Whether to build container images for the seed services. If 0, they will
# be pulled. # be pulled.
...@@ -40,20 +41,20 @@ function config_set { ...@@ -40,20 +41,20 @@ function config_set {
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/config.sh source "${PARENT}/config.sh"
} }
function config_check { function config_check {
# Check the configuration environment variables. # Check the configuration environment variables.
if [[ ! -e $KAYOBE_CONFIG_SOURCE_PATH ]]; then if [[ ! -e "$KAYOBE_CONFIG_SOURCE_PATH" ]]; then
if [[ ${KAYOBE_CONFIG_REQUIRED:-1} -eq 1 ]]; then if [[ ${KAYOBE_CONFIG_REQUIRED:-1} -eq 1 ]]; then
echo "Kayobe configuration path $KAYOBE_CONFIG_SOURCE_PATH does not exist" echo "Kayobe configuration path $KAYOBE_CONFIG_SOURCE_PATH does not exist"
return 1 return 1
fi fi
fi fi
if [[ ! -e $KAYOBE_SOURCE_PATH ]]; then if [[ ! -e "$KAYOBE_SOURCE_PATH" ]]; then
echo "Kayobe source path $KAYOBE_SOURCE_PATH does not exist" echo "Kayobe source path $KAYOBE_SOURCE_PATH does not exist"
return 1 return 1
fi fi
...@@ -77,17 +78,21 @@ function install_dependencies { ...@@ -77,17 +78,21 @@ function install_dependencies {
} }
function install_venv { function install_venv {
local venv_parent=$(dirname ${KAYOBE_VENV_PATH}) local venv_parent="$(dirname ${KAYOBE_VENV_PATH})"
if [[ ! -d $venv_parent ]]; then if [[ ! -d "$venv_parent" ]]; then
mkdir -p $venv_parent mkdir -p "$venv_parent"
fi fi
if [[ ! -f ${KAYOBE_VENV_PATH}/bin/activate ]]; then if [[ ! -f "${KAYOBE_VENV_PATH}/bin/activate" ]]; then
echo "Creating kayobe virtual environment in ${KAYOBE_VENV_PATH}" echo "Creating kayobe virtual environment in ${KAYOBE_VENV_PATH}"
virtualenv ${KAYOBE_VENV_PATH} virtualenv "${KAYOBE_VENV_PATH}"
source ${KAYOBE_VENV_PATH}/bin/activate # NOTE: Virtualenv's activate and deactivate scripts reference an
# unbound variable.
set +u
source "${KAYOBE_VENV_PATH}/bin/activate"
pip install -U pip pip install -U pip
pip install ${KAYOBE_SOURCE_PATH} pip install "${KAYOBE_SOURCE_PATH}"
deactivate deactivate
set -u
else else
echo "Using existing kayobe virtual environment in ${KAYOBE_VENV_PATH}" echo "Using existing kayobe virtual environment in ${KAYOBE_VENV_PATH}"
fi fi
...@@ -101,10 +106,13 @@ function is_deploy_image_built_locally { ...@@ -101,10 +106,13 @@ function is_deploy_image_built_locally {
} }
function environment_setup { function environment_setup {
source ${KAYOBE_VENV_PATH}/bin/activate # NOTE: Virtualenv's activate script references an unbound variable.
source ${KAYOBE_CONFIG_SOURCE_PATH}/kayobe-env set +u
source "${KAYOBE_VENV_PATH}/bin/activate"
set -u
source "${KAYOBE_CONFIG_SOURCE_PATH}/kayobe-env"
cd ${KAYOBE_SOURCE_PATH} cd "${KAYOBE_SOURCE_PATH}"
} }
function seed_hypervisor_deploy { function seed_hypervisor_deploy {
...@@ -188,7 +196,7 @@ function overcloud_deploy { ...@@ -188,7 +196,7 @@ function overcloud_deploy {
kayobe overcloud service deploy kayobe overcloud service deploy
echo "Performing post-deployment configuration" echo "Performing post-deployment configuration"
source ${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh source "${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh"
kayobe overcloud post configure kayobe overcloud post configure
echo "Control plane deployment complete" echo "Control plane deployment complete"
......
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# Install kayobe and its dependencies in a virtual environment. # Install kayobe and its dependencies in a virtual environment.
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/functions source "${PARENT}/functions"
function main { function main {
......
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# Simple script to stand up a development environment for an OpenStack # Simple script to stand up a development environment for an OpenStack
# controller in a Vagrant VM using kayobe. This should be executed from within # controller in a Vagrant VM using kayobe. This should be executed from within
...@@ -8,7 +9,7 @@ set -e ...@@ -8,7 +9,7 @@ set -e
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/functions source "${PARENT}/functions"
function main { function main {
......
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# Simple script to stand up a development environment for a seed VM using # Simple script to stand up a development environment for a seed VM using
# kayobe. This should be executed from the hypervisor. # kayobe. This should be executed from the hypervisor.
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/functions source "${PARENT}/functions"
function main { function main {
......
#!/bin/bash #!/bin/bash
set -e set -eu
set -o pipefail
# Simple script to stand up a development environment for a seed hypervisor # Simple script to stand up a development environment for a seed hypervisor
# using kayobe. This should be executed from the hypervisor. # using kayobe. This should be executed from the hypervisor.
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source ${PARENT}/functions source "${PARENT}/functions"
function main { function main {
......
...@@ -19,11 +19,14 @@ Preparation ...@@ -19,11 +19,14 @@ Preparation
=========== ===========
First, ensure that Vagrant is installed and correctly configured to use First, ensure that Vagrant is installed and correctly configured to use
virtual box. Also install the following vagrant plugins:: the required provider. Also install the following vagrant plugin::
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-reload vagrant plugin install vagrant-reload
If using the VirtualBox provider, install the following vagrant plugin::
vagrant plugin install vagrant-vbguest
Note: if using Ubuntu 16.04 LTS, you may be unable to install any plugins. To Note: if using Ubuntu 16.04 LTS, you may be unable to install any plugins. To
work around this install the upstream version from www.virtualbox.org. work around this install the upstream version from www.virtualbox.org.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment