From 147f7eeee446c318a2e952f2e768f57988646cf7 Mon Sep 17 00:00:00 2001 From: Vlad Iovanov Date: Fri, 11 Aug 2017 10:25:29 +0300 Subject: [PATCH 01/27] Initialize a BOSH release dir structure --- stratos-ui-release/config/blobs.yml | 1 + stratos-ui-release/jobs/stratos-ui/monit | 0 stratos-ui-release/jobs/stratos-ui/spec | 5 +++++ stratos-ui-release/packages/nginx/packaging | 2 ++ stratos-ui-release/packages/nginx/pre_packaging | 2 ++ stratos-ui-release/packages/nginx/spec | 6 ++++++ stratos-ui-release/packages/nodejs/packaging | 2 ++ stratos-ui-release/packages/nodejs/pre_packaging | 2 ++ stratos-ui-release/packages/nodejs/spec | 6 ++++++ stratos-ui-release/packages/stratos-ui/packaging | 2 ++ stratos-ui-release/packages/stratos-ui/pre_packaging | 2 ++ stratos-ui-release/packages/stratos-ui/spec | 6 ++++++ 12 files changed, 36 insertions(+) create mode 100644 stratos-ui-release/config/blobs.yml create mode 100644 stratos-ui-release/jobs/stratos-ui/monit create mode 100644 stratos-ui-release/jobs/stratos-ui/spec create mode 100644 stratos-ui-release/packages/nginx/packaging create mode 100644 stratos-ui-release/packages/nginx/pre_packaging create mode 100644 stratos-ui-release/packages/nginx/spec create mode 100644 stratos-ui-release/packages/nodejs/packaging create mode 100644 stratos-ui-release/packages/nodejs/pre_packaging create mode 100644 stratos-ui-release/packages/nodejs/spec create mode 100644 stratos-ui-release/packages/stratos-ui/packaging create mode 100644 stratos-ui-release/packages/stratos-ui/pre_packaging create mode 100644 stratos-ui-release/packages/stratos-ui/spec diff --git a/stratos-ui-release/config/blobs.yml b/stratos-ui-release/config/blobs.yml new file mode 100644 index 0000000000..2fbf0ffd71 --- /dev/null +++ b/stratos-ui-release/config/blobs.yml @@ -0,0 +1 @@ +--- {} diff --git a/stratos-ui-release/jobs/stratos-ui/monit b/stratos-ui-release/jobs/stratos-ui/monit new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stratos-ui-release/jobs/stratos-ui/spec b/stratos-ui-release/jobs/stratos-ui/spec new file mode 100644 index 0000000000..5a97c2c9d8 --- /dev/null +++ b/stratos-ui-release/jobs/stratos-ui/spec @@ -0,0 +1,5 @@ +--- +name: stratos-ui +templates: + +packages: diff --git a/stratos-ui-release/packages/nginx/packaging b/stratos-ui-release/packages/nginx/packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/nginx/packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/nginx/pre_packaging b/stratos-ui-release/packages/nginx/pre_packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/nginx/pre_packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/nginx/spec b/stratos-ui-release/packages/nginx/spec new file mode 100644 index 0000000000..60951bf08f --- /dev/null +++ b/stratos-ui-release/packages/nginx/spec @@ -0,0 +1,6 @@ +--- +name: nginx + +dependencies: + +files: diff --git a/stratos-ui-release/packages/nodejs/packaging b/stratos-ui-release/packages/nodejs/packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/nodejs/packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/nodejs/pre_packaging b/stratos-ui-release/packages/nodejs/pre_packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/nodejs/pre_packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/nodejs/spec b/stratos-ui-release/packages/nodejs/spec new file mode 100644 index 0000000000..bc5ea753b8 --- /dev/null +++ b/stratos-ui-release/packages/nodejs/spec @@ -0,0 +1,6 @@ +--- +name: nodejs + +dependencies: + +files: diff --git a/stratos-ui-release/packages/stratos-ui/packaging b/stratos-ui-release/packages/stratos-ui/packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/stratos-ui/packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/stratos-ui/pre_packaging b/stratos-ui-release/packages/stratos-ui/pre_packaging new file mode 100644 index 0000000000..b38f9ff0fd --- /dev/null +++ b/stratos-ui-release/packages/stratos-ui/pre_packaging @@ -0,0 +1,2 @@ +# abort script on any command that exits with a non zero value +set -e diff --git a/stratos-ui-release/packages/stratos-ui/spec b/stratos-ui-release/packages/stratos-ui/spec new file mode 100644 index 0000000000..113f479791 --- /dev/null +++ b/stratos-ui-release/packages/stratos-ui/spec @@ -0,0 +1,6 @@ +--- +name: stratos-ui + +dependencies: + +files: From 7bf585691a64adb83e5a05afc7ba5d00bd350c03 Mon Sep 17 00:00:00 2001 From: Vlad Iovanov Date: Fri, 11 Aug 2017 12:18:04 +0300 Subject: [PATCH 02/27] Add bosh config files --- stratos-ui-release/config/blobs.yml | 10 +++++++++- stratos-ui-release/config/final.yml | 7 +++++++ .../jobs/{stratos-ui => backend}/monit | 0 .../jobs/{stratos-ui => backend}/spec | 2 +- stratos-ui-release/jobs/frontend/monit | 0 stratos-ui-release/jobs/frontend/spec | 5 +++++ .../{stratos-ui => backend}/packaging | 0 .../packages/{nginx => backend}/pre_packaging | 0 .../packages/{stratos-ui => backend}/spec | 3 ++- .../pre_packaging => frontend/packaging} | 0 .../packages/frontend/pre_packaging | 14 +++++++++++++ stratos-ui-release/packages/frontend/spec | 10 ++++++++++ stratos-ui-release/packages/golang/packaging | 4 ++++ stratos-ui-release/packages/golang/spec | 5 +++++ stratos-ui-release/packages/nginx/README.md | 14 +++++++++++++ stratos-ui-release/packages/nginx/packaging | 20 +++++++++++++++++-- stratos-ui-release/packages/nginx/spec | 4 +--- stratos-ui-release/src/stratos-ui | 1 + 18 files changed, 91 insertions(+), 8 deletions(-) create mode 100644 stratos-ui-release/config/final.yml rename stratos-ui-release/jobs/{stratos-ui => backend}/monit (100%) rename stratos-ui-release/jobs/{stratos-ui => backend}/spec (60%) create mode 100644 stratos-ui-release/jobs/frontend/monit create mode 100644 stratos-ui-release/jobs/frontend/spec rename stratos-ui-release/packages/{stratos-ui => backend}/packaging (100%) rename stratos-ui-release/packages/{nginx => backend}/pre_packaging (100%) rename stratos-ui-release/packages/{stratos-ui => backend}/spec (55%) rename stratos-ui-release/packages/{stratos-ui/pre_packaging => frontend/packaging} (100%) create mode 100644 stratos-ui-release/packages/frontend/pre_packaging create mode 100644 stratos-ui-release/packages/frontend/spec create mode 100644 stratos-ui-release/packages/golang/packaging create mode 100644 stratos-ui-release/packages/golang/spec create mode 100644 stratos-ui-release/packages/nginx/README.md create mode 120000 stratos-ui-release/src/stratos-ui diff --git a/stratos-ui-release/config/blobs.yml b/stratos-ui-release/config/blobs.yml index 2fbf0ffd71..b1a9a81303 100644 --- a/stratos-ui-release/config/blobs.yml +++ b/stratos-ui-release/config/blobs.yml @@ -1 +1,9 @@ ---- {} +--- +nginx/nginx-1.11.13.tar.gz: + size: 980784 + object_id: 214aec6b-e095-4b21-7155-d038f699eaae + sha: 84f27729754796181dc39d47da761c7e85eb3ae2 +golang/go1.8.3.linux-amd64.tar.gz: + size: 90029041 + object_id: 53346f1f-edfc-40d5-54b9-04126e05fdf3 + sha: sha256:1862f4c3d3907e59b04a757cfda0ea7aa9ef39274af99a784f5be843c80c6772 diff --git a/stratos-ui-release/config/final.yml b/stratos-ui-release/config/final.yml new file mode 100644 index 0000000000..d47c1df585 --- /dev/null +++ b/stratos-ui-release/config/final.yml @@ -0,0 +1,7 @@ +--- +name: stratos-ui +min_cli_version: 1.5.0.pre.1001 +blobstore: + provider: s3 + options: + bucket_name: capi-release-blobs diff --git a/stratos-ui-release/jobs/stratos-ui/monit b/stratos-ui-release/jobs/backend/monit similarity index 100% rename from stratos-ui-release/jobs/stratos-ui/monit rename to stratos-ui-release/jobs/backend/monit diff --git a/stratos-ui-release/jobs/stratos-ui/spec b/stratos-ui-release/jobs/backend/spec similarity index 60% rename from stratos-ui-release/jobs/stratos-ui/spec rename to stratos-ui-release/jobs/backend/spec index 5a97c2c9d8..28397e37df 100644 --- a/stratos-ui-release/jobs/stratos-ui/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -1,5 +1,5 @@ --- -name: stratos-ui +name: backend templates: packages: diff --git a/stratos-ui-release/jobs/frontend/monit b/stratos-ui-release/jobs/frontend/monit new file mode 100644 index 0000000000..e69de29bb2 diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec new file mode 100644 index 0000000000..0576606c4b --- /dev/null +++ b/stratos-ui-release/jobs/frontend/spec @@ -0,0 +1,5 @@ +--- +name: frontend +templates: + +packages: diff --git a/stratos-ui-release/packages/stratos-ui/packaging b/stratos-ui-release/packages/backend/packaging similarity index 100% rename from stratos-ui-release/packages/stratos-ui/packaging rename to stratos-ui-release/packages/backend/packaging diff --git a/stratos-ui-release/packages/nginx/pre_packaging b/stratos-ui-release/packages/backend/pre_packaging similarity index 100% rename from stratos-ui-release/packages/nginx/pre_packaging rename to stratos-ui-release/packages/backend/pre_packaging diff --git a/stratos-ui-release/packages/stratos-ui/spec b/stratos-ui-release/packages/backend/spec similarity index 55% rename from stratos-ui-release/packages/stratos-ui/spec rename to stratos-ui-release/packages/backend/spec index 113f479791..e16bfbe51f 100644 --- a/stratos-ui-release/packages/stratos-ui/spec +++ b/stratos-ui-release/packages/backend/spec @@ -1,6 +1,7 @@ --- -name: stratos-ui +name: backend dependencies: +- nginx files: diff --git a/stratos-ui-release/packages/stratos-ui/pre_packaging b/stratos-ui-release/packages/frontend/packaging similarity index 100% rename from stratos-ui-release/packages/stratos-ui/pre_packaging rename to stratos-ui-release/packages/frontend/packaging diff --git a/stratos-ui-release/packages/frontend/pre_packaging b/stratos-ui-release/packages/frontend/pre_packaging new file mode 100644 index 0000000000..e3b639cd79 --- /dev/null +++ b/stratos-ui-release/packages/frontend/pre_packaging @@ -0,0 +1,14 @@ +# abort script on any command that exits with a non zero value +set -e -x + +cd ${BUILD_DIR}/stratos-ui + +npm install +export PATH=$PATH:$PWD/node_modules/.bin +bower install +npm run build + +# remove things we don't need +find /space ! -iregex '(dist)' | xargs rm -f +mv dist/* . +rm -rf dist diff --git a/stratos-ui-release/packages/frontend/spec b/stratos-ui-release/packages/frontend/spec new file mode 100644 index 0000000000..bdde7ced3a --- /dev/null +++ b/stratos-ui-release/packages/frontend/spec @@ -0,0 +1,10 @@ +--- +name: frontend + +dependencies: +- nginx +#- nodejs + +files: +- stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} +- stratos-ui/{build,components}/**/* diff --git a/stratos-ui-release/packages/golang/packaging b/stratos-ui-release/packages/golang/packaging new file mode 100644 index 0000000000..1974f235f9 --- /dev/null +++ b/stratos-ui-release/packages/golang/packaging @@ -0,0 +1,4 @@ +set -e + +tar xzf golang/go1.8.3.linux-amd64.tar.gz +cp -R go/* ${BOSH_INSTALL_TARGET} diff --git a/stratos-ui-release/packages/golang/spec b/stratos-ui-release/packages/golang/spec new file mode 100644 index 0000000000..1087c543fd --- /dev/null +++ b/stratos-ui-release/packages/golang/spec @@ -0,0 +1,5 @@ +--- +name: golang + +files: + - golang/go1.8.3.linux-amd64.tar.gz diff --git a/stratos-ui-release/packages/nginx/README.md b/stratos-ui-release/packages/nginx/README.md new file mode 100644 index 0000000000..20e73c5b8d --- /dev/null +++ b/stratos-ui-release/packages/nginx/README.md @@ -0,0 +1,14 @@ +nginx-package +============ + +TODO: update this readme + +This repo is used for nginx and nginx-webdav packaging in BOSH deployments. + +The files can be downloaded from the following locations: + +| Filename | Download URL | +| -------- | ------------ | +| nginx-1.11.13.tar.gz | [nginx.org](http://nginx.org/download/nginx-1.11.13.tar.gz) | +| headers-more-nginx-module-0.32.tar.gz | [github.com/openresty/headers-more-nginx-module](https://github.com/openresty/headers-more-nginx-module/archive/v0.32.tar.gz) | +| pcre-8.40.tar.gz | [pcre.org](ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz) | diff --git a/stratos-ui-release/packages/nginx/packaging b/stratos-ui-release/packages/nginx/packaging index b38f9ff0fd..38750fa971 100644 --- a/stratos-ui-release/packages/nginx/packaging +++ b/stratos-ui-release/packages/nginx/packaging @@ -1,2 +1,18 @@ -# abort script on any command that exits with a non zero value -set -e +set -e -x + +echo "Extracting nginx..." +tar xzvf nginx/nginx-1.11.13.tar.gz + +echo "Building nginx..." +pushd nginx-1.11.13 + ./configure \ + --prefix=${BOSH_INSTALL_TARGET} \ + --with-pcre=../pcre-8.40 \ + --add-module=../headers-more-nginx-module-0.32 \ + --add-module=../nginx-upload-module-2.2 \ + --with-http_stub_status_module \ + --with-http_ssl_module + + make + make install +popd diff --git a/stratos-ui-release/packages/nginx/spec b/stratos-ui-release/packages/nginx/spec index 60951bf08f..432112895a 100644 --- a/stratos-ui-release/packages/nginx/spec +++ b/stratos-ui-release/packages/nginx/spec @@ -1,6 +1,4 @@ --- name: nginx - -dependencies: - files: +- nginx/nginx-1.11.13.tar.gz diff --git a/stratos-ui-release/src/stratos-ui b/stratos-ui-release/src/stratos-ui new file mode 120000 index 0000000000..6581736d62 --- /dev/null +++ b/stratos-ui-release/src/stratos-ui @@ -0,0 +1 @@ +../../ \ No newline at end of file From 25a5b18a59eed11207e00d7a440747cdc252daa3 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 15 Aug 2017 09:08:53 +0100 Subject: [PATCH 03/27] Updated pre-packaging scripts --- .../packages/backend/pre_packaging | 19 ++++++++++++++++++- stratos-ui-release/packages/backend/spec | 4 +++- .../packages/frontend/pre_packaging | 5 ++++- stratos-ui-release/packages/frontend/spec | 1 - stratos-ui-release/packages/nodejs/packaging | 2 -- .../packages/nodejs/pre_packaging | 2 -- stratos-ui-release/packages/nodejs/spec | 6 ------ 7 files changed, 25 insertions(+), 14 deletions(-) delete mode 100644 stratos-ui-release/packages/nodejs/packaging delete mode 100644 stratos-ui-release/packages/nodejs/pre_packaging delete mode 100644 stratos-ui-release/packages/nodejs/spec diff --git a/stratos-ui-release/packages/backend/pre_packaging b/stratos-ui-release/packages/backend/pre_packaging index b38f9ff0fd..c2f2b3a56e 100644 --- a/stratos-ui-release/packages/backend/pre_packaging +++ b/stratos-ui-release/packages/backend/pre_packaging @@ -1,2 +1,19 @@ # abort script on any command that exits with a non zero value -set -e +set -ex + +cd ${BUILD_DIR}/stratos-ui +# Install Glide +build/tools/get-glide.sh + +# Build backend +npm install +export PATH=$PATH:$PWD/node_modules/.bin +npm run build-backend + +find ../stratos-ui -type d ! -path '*/outputs*' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf +# Delete top level files +rm -f * +mv outputs/* . +rm -rf outputs + + diff --git a/stratos-ui-release/packages/backend/spec b/stratos-ui-release/packages/backend/spec index e16bfbe51f..81d11be0f9 100644 --- a/stratos-ui-release/packages/backend/spec +++ b/stratos-ui-release/packages/backend/spec @@ -2,6 +2,8 @@ name: backend dependencies: -- nginx +- golang files: +- stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} +- stratos-ui/{build,components}/**/* diff --git a/stratos-ui-release/packages/frontend/pre_packaging b/stratos-ui-release/packages/frontend/pre_packaging index e3b639cd79..fb02f7fdb4 100644 --- a/stratos-ui-release/packages/frontend/pre_packaging +++ b/stratos-ui-release/packages/frontend/pre_packaging @@ -9,6 +9,9 @@ bower install npm run build # remove things we don't need -find /space ! -iregex '(dist)' | xargs rm -f +find ../stratos-ui -type d ! -path '*/dist*' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf +# Delete top level files +rm -f * +# Move dist to top level mv dist/* . rm -rf dist diff --git a/stratos-ui-release/packages/frontend/spec b/stratos-ui-release/packages/frontend/spec index bdde7ced3a..ae7f0b823b 100644 --- a/stratos-ui-release/packages/frontend/spec +++ b/stratos-ui-release/packages/frontend/spec @@ -3,7 +3,6 @@ name: frontend dependencies: - nginx -#- nodejs files: - stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} diff --git a/stratos-ui-release/packages/nodejs/packaging b/stratos-ui-release/packages/nodejs/packaging deleted file mode 100644 index b38f9ff0fd..0000000000 --- a/stratos-ui-release/packages/nodejs/packaging +++ /dev/null @@ -1,2 +0,0 @@ -# abort script on any command that exits with a non zero value -set -e diff --git a/stratos-ui-release/packages/nodejs/pre_packaging b/stratos-ui-release/packages/nodejs/pre_packaging deleted file mode 100644 index b38f9ff0fd..0000000000 --- a/stratos-ui-release/packages/nodejs/pre_packaging +++ /dev/null @@ -1,2 +0,0 @@ -# abort script on any command that exits with a non zero value -set -e diff --git a/stratos-ui-release/packages/nodejs/spec b/stratos-ui-release/packages/nodejs/spec deleted file mode 100644 index bc5ea753b8..0000000000 --- a/stratos-ui-release/packages/nodejs/spec +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: nodejs - -dependencies: - -files: From e029f374d860a59ca22c90d0985a56461dbacd44 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 15 Aug 2017 14:58:37 +0100 Subject: [PATCH 04/27] Updated .gitignore --- .gitignore | 4 ++ build/tools/get-glide.sh | 121 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100755 build/tools/get-glide.sh diff --git a/.gitignore b/.gitignore index f0d4bc2f65..0c270b819d 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,7 @@ deploy/development.rc deploy/ci/secrets.yml deploy/kubernetes/values.yaml outputs/ + +stratos-ui-release/.dev_builds +stratos-ui-release/blobs +stratos-ui-release/dev_releases/ diff --git a/build/tools/get-glide.sh b/build/tools/get-glide.sh new file mode 100755 index 0000000000..cb21e4575b --- /dev/null +++ b/build/tools/get-glide.sh @@ -0,0 +1,121 @@ +#!/bin/sh + +# The install script is licensed under the MIT license Glide itself is under. +# See https://github.com/Masterminds/glide/blob/master/LICENSE for more details. + +# To run this script execute: +# `curl https://glide.sh/get | sh` + +PROJECT_NAME="glide" + +# LGOBIN represents the local bin location. This can be either the GOBIN, if set, +# or the GOPATH/bin. + +LGOBIN="" + +verifyGoInstallation() { + GO=$(which go) + if [ "$?" = "1" ]; then + echo "$PROJECT_NAME needs go. Please intall it first." + exit 1 + fi + if [ -z "$GOPATH" ]; then + echo "$PROJECT_NAME needs environment variable "'$GOPATH'". Set it before continue." + exit 1 + fi + if [ -n "$GOBIN" ]; then + if [ ! -d "$GOBIN" ]; then + echo "$GOBIN "'($GOBIN)'" folder not found. Please create it before continue." + exit 1 + fi + LGOBIN="$GOBIN" + else + if [ ! -d "$GOPATH/bin" ]; then + echo "$GOPATH/bin "'($GOPATH/bin)'" folder not found. Please create it before continue." + exit 1 + fi + LGOBIN="$GOPATH/bin" + fi + +} + +initArch() { + ARCH=$(uname -m) + case $ARCH in + armv5*) ARCH="armv5";; + armv6*) ARCH="armv6";; + armv7*) ARCH="armv7";; + aarch64) ARCH="arm64";; + x86) ARCH="386";; + x86_64) ARCH="amd64";; + i686) ARCH="386";; + i386) ARCH="386";; + esac +} + +initOS() { + OS=$(echo `uname`|tr '[:upper:]' '[:lower:]') + + case "$OS" in + # Minimalist GNU for Windows + mingw*) OS='windows';; + esac +} + +downloadFile() { + TAG=$(wget -q -O - https://glide.sh/version) + LATEST_RELEASE_URL="https://api.github.com/repos/Masterminds/$PROJECT_NAME/releases/tags/$TAG" + LATEST_RELEASE_JSON=$(wget -q -O - "$LATEST_RELEASE_URL") + GLIDE_DIST="glide-$TAG-$OS-$ARCH.tar.gz" + # || true forces this command to not catch error if grep does not find anything + DOWNLOAD_URL=$(echo "$LATEST_RELEASE_JSON" | grep 'browser_' | cut -d\" -f4 | grep "$GLIDE_DIST") || true + if [ -z "$DOWNLOAD_URL" ]; then + echo "Sorry, we dont have a dist for your system: $OS $ARCH" + echo "You can ask one here: https://github.com/Masterminds/$PROJECT_NAME/issues" + exit 1 + else + GLIDE_TMP_FILE="/tmp/$GLIDE_DIST" + echo "Downloading $DOWNLOAD_URL" + wget -q -O "$GLIDE_TMP_FILE" "$DOWNLOAD_URL" + fi +} + +installFile() { + GLIDE_TMP="/tmp/$PROJECT_NAME" + mkdir -p "$GLIDE_TMP" + tar xf "$GLIDE_TMP_FILE" -C "$GLIDE_TMP" + GLIDE_TMP_BIN="$GLIDE_TMP/$OS-$ARCH/$PROJECT_NAME" + cp "$GLIDE_TMP_BIN" "$LGOBIN" +} + +bye() { + result=$? + if [ "$result" != "0" ]; then + echo "Fail to install $PROJECT_NAME" + fi + exit $result +} + +testVersion() { + set +e + GLIDE="$(which $PROJECT_NAME)" + if [ "$?" = "1" ]; then + echo "$PROJECT_NAME not found. Did you add "'$LGOBIN'" to your "'$PATH?' + exit 1 + fi + set -e + GLIDE_VERSION=$($PROJECT_NAME -v) + echo "$GLIDE_VERSION installed successfully" +} + +# Execution + +#Stop execution on any error +trap "bye" EXIT +verifyGoInstallation +set -e +initArch +initOS +downloadFile +installFile +testVersion From 47e315aa87d46909d3d277c423780e6fe5756dd5 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 15 Aug 2017 14:58:37 +0100 Subject: [PATCH 05/27] Minor update to pre-packaging --- stratos-ui-release/packages/backend/pre_packaging | 2 +- stratos-ui-release/packages/frontend/pre_packaging | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/stratos-ui-release/packages/backend/pre_packaging b/stratos-ui-release/packages/backend/pre_packaging index c2f2b3a56e..f300537e7b 100644 --- a/stratos-ui-release/packages/backend/pre_packaging +++ b/stratos-ui-release/packages/backend/pre_packaging @@ -12,7 +12,7 @@ npm run build-backend find ../stratos-ui -type d ! -path '*/outputs*' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf # Delete top level files -rm -f * +rm -f *.* mv outputs/* . rm -rf outputs diff --git a/stratos-ui-release/packages/frontend/pre_packaging b/stratos-ui-release/packages/frontend/pre_packaging index fb02f7fdb4..6217001326 100644 --- a/stratos-ui-release/packages/frontend/pre_packaging +++ b/stratos-ui-release/packages/frontend/pre_packaging @@ -11,7 +11,7 @@ npm run build # remove things we don't need find ../stratos-ui -type d ! -path '*/dist*' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf # Delete top level files -rm -f * +rm -f *.* # Move dist to top level mv dist/* . rm -rf dist From 0fc42dab18f8539c518debb5c68fcd96374f099b Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 09:06:06 +0100 Subject: [PATCH 06/27] Added templates --- .../jobs/backend/templates/config.properties | 31 ++++++++ .../jobs/frontend/templates/nginx.conf | 75 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 stratos-ui-release/jobs/backend/templates/config.properties create mode 100644 stratos-ui-release/jobs/frontend/templates/nginx.conf diff --git a/stratos-ui-release/jobs/backend/templates/config.properties b/stratos-ui-release/jobs/backend/templates/config.properties new file mode 100644 index 0000000000..61c9f385a3 --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/config.properties @@ -0,0 +1,31 @@ +HTTP_CONNECTION_TIMEOUT_IN_SECS=10 +HTTP_CLIENT_TIMEOUT_IN_SECS=20 +SKIP_SSL_VALIDATION=<%= @skip_ssl_validation %> +CONSOLE_PROXY_TLS_ADDRESS=:=<%= @backend_port %> +CF_CLIENT=cf +CF_ADMIN_ROLE=cloud_controller.admin + +UAA_ENDPOINT=<%= @uaa_address %> +CONSOLE_ADMIN_SCOPE=<%= @console_admin_scope %> +CONSOLE_CLIENT=<%= @console_uaa_client %> +ALLOWED_ORIGINS==<%= @frontend_origin_address %> + +SESSION_STORE_SECRET=wheeee! +CONSOLE_PROXY_CERT_KEY=<%= @ssl_cert_key %> +CONSOLE_PROXY_CERT==<%= @ssl_cert %> +ENCRYPTION_KEY=<%= @encryption_key %> + +<% if @use_postgres -%> +DATABASE_PROVIDER=postgres +PGSQL_USER=<%= @postgres_user %> +PGSQL_PASSWORD=<%= @postgres_user_passwd %> +PGSQL_DATABASE=<%= @postgres_db %> +PGSQL_HOST=<%= @postgres_host %> +PGSQL_PORT=<%= @postgres_port %> +PGSQL_CONNECT_TIMEOUT_IN_SECS=100 +PGSQL_SSL_MODE=<%= @postgres_enable_ssl %> +<% end -%> + +<% if @use_sqlite -%> +DATABASE_PROVIDER=sqlite +<% end -%> \ No newline at end of file diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf b/stratos-ui-release/jobs/frontend/templates/nginx.conf new file mode 100644 index 0000000000..9424b86e9a --- /dev/null +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf @@ -0,0 +1,75 @@ +worker_processes 2; + +events { + worker_connections 4096; + use epoll; +} + +http { + + upstream portalproxy { + least_conn; + server <%= @backend_url %>:<%= @backend_port %>; + keepalive 32; + } + + add_header X-Frame-Options DENY; + + include mime.types; + default_type application/octet-stream; + keepalive_timeout 70; + proxy_read_timeout 200; + sendfile off; + tcp_nopush on; + tcp_nodelay on; + gzip on; + gzip_min_length 1000; + gzip_proxied any; + gzip_types text/plain text/html text/css text/xml + application/x-javascript application/xml + application/atom+xml text/javascript; + + proxy_next_upstream error; + + map $http_upgrade $connection_upgrade { + default upgrade; + '' ''; + } + + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + server { + listen 80; + return 301 https://$host$request_uri; + } + + server { + listen 443 ssl; + + ssl_certificate <%= @ssl_cert_path %>; + ssl_certificate_key <%= @ssl_cert_key_path %>; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers HIGH:!aNULL:!MD5; + + client_max_body_size 50M; + + location /pp/ { + proxy_pass_header Server; + proxy_set_header Host $http_host; + proxy_redirect off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_pass https://portalproxy/; + proxy_intercept_errors on; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + } + + location / { + root /usr/share/nginx/html; + add_header Cache-Control no-cache; + } + } +} From 0471eb0c9718ad82d3911f163d1b58a8c30d89ab Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 09:10:58 +0100 Subject: [PATCH 07/27] Add frontend spec --- stratos-ui-release/jobs/frontend/spec | 15 +++++++++++++++ .../jobs/frontend/templates/nginx.conf | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 0576606c4b..d223f103ed 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -1,5 +1,20 @@ --- name: frontend templates: + nginx.conf: /etc/nginx/nginx.conf packages: +- nginx +- frontend + +properties: + backend_host: + description: "Host deploying the backend" + default: localhost + backend_port: + description: "Port the backend is listening on" + default: 443 + ssl_cert_path: + description: "SSL certificate path" + ssl_cert_key_path: + description: "SSL certificate key path" \ No newline at end of file diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf b/stratos-ui-release/jobs/frontend/templates/nginx.conf index 9424b86e9a..35ff1181d0 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx.conf +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf @@ -9,7 +9,7 @@ http { upstream portalproxy { least_conn; - server <%= @backend_url %>:<%= @backend_port %>; + server <%= @backend_host %>:<%= @backend_port %>; keepalive 32; } From 3bf80a1772ebc2ed3b2f9590d587def755e7d64f Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 09:21:56 +0100 Subject: [PATCH 08/27] spec updates --- stratos-ui-release/jobs/backend/spec | 44 +++++++++++++++++++++++++++ stratos-ui-release/jobs/frontend/spec | 20 ++++++------ 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index 28397e37df..1974f1f08c 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -1,5 +1,49 @@ --- name: backend templates: + config.properties: ./config.properties packages: + - backend + + properties: + skip_ssl_validation: + description: "Skip SSL validation" + default: false + backend_port: + description: "Port the backend is listening on" + default: 443 + uaa_address: + description: "UAA server address" + console_admin_scope: + description: "UAA scope identifying Stratos UI Console admin" + console_admin_scope: + description: "UAA scope identifying Stratos UI Console admin" + console_uaa_client: + description: "UAA client for Stratos UI Console" + frontend_origin_address: + description: "Frontend origin address" + ssl_cert_key: + description: "SSL Certificate key body" + ssl_cert: + description: "SSL Certificate body" + encryption_key: + description: "Hex encoded encryption key" + use_postgres: + description: "Use postgres, need to specify relevant postgres settings" + postgres_user: + description: "Postgres User" + postgres_user_passwd: + description: "Postgres user password" + postgres_db: + description: "Stratos UI Console DB name" + postgres_host: + description: "Postgres host" + postgres_port: + description: "Postgres port" + postgres_enable_ssl: + description: "Enable SSL for postgres" + default: false + use_sqlite: + description: "USe SQLLite" + default: true \ No newline at end of file diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index d223f103ed..96c9b10a4d 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -8,13 +8,13 @@ packages: - frontend properties: - backend_host: - description: "Host deploying the backend" - default: localhost - backend_port: - description: "Port the backend is listening on" - default: 443 - ssl_cert_path: - description: "SSL certificate path" - ssl_cert_key_path: - description: "SSL certificate key path" \ No newline at end of file + backend_host: + description: "Host deploying the backend" + default: localhost + backend_port: + description: "Port the backend is listening on" + default: 443 + ssl_cert_path: + description: "SSL certificate path" + ssl_cert_key_path: + description: "SSL certificate key path" \ No newline at end of file From b438de31090c0c11685359552a9fe4011ae31c28 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 09:24:28 +0100 Subject: [PATCH 09/27] Fix indentation issues --- stratos-ui-release/jobs/backend/spec | 4 ++-- stratos-ui-release/jobs/frontend/spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index 1974f1f08c..64fada0604 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -4,9 +4,9 @@ templates: config.properties: ./config.properties packages: - - backend +- backend - properties: +properties: skip_ssl_validation: description: "Skip SSL validation" default: false diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 96c9b10a4d..5adb333dfa 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -9,7 +9,7 @@ packages: properties: backend_host: - description: "Host deploying the backend" + description: "Host deploying the backend" default: localhost backend_port: description: "Port the backend is listening on" From 0ec52094032d1c8ad690317ebd3cc26622722d9e Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 09:37:48 +0100 Subject: [PATCH 10/27] Add SSL certs --- stratos-ui-release/jobs/backend/spec | 5 +++-- stratos-ui-release/jobs/backend/templates/ssl_cert | 1 + stratos-ui-release/jobs/backend/templates/ssl_cert_key | 1 + stratos-ui-release/jobs/frontend/spec | 2 ++ stratos-ui-release/jobs/frontend/templates/nginx.conf | 4 ++-- stratos-ui-release/jobs/frontend/templates/ssl_cert | 1 + stratos-ui-release/jobs/frontend/templates/ssl_cert_key | 1 + 7 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 stratos-ui-release/jobs/backend/templates/ssl_cert create mode 100644 stratos-ui-release/jobs/backend/templates/ssl_cert_key create mode 100644 stratos-ui-release/jobs/frontend/templates/ssl_cert create mode 100644 stratos-ui-release/jobs/frontend/templates/ssl_cert_key diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index 64fada0604..4d5406fbd6 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -1,8 +1,9 @@ --- name: backend templates: - config.properties: ./config.properties - + config.properties: /var/vcap/jobs/backend/config.properties + ssl_cert: /var/vcap/jobs/backend/dev_certs/pproxy.crt + ssl_cert_key: /var/vcap/jobs/backend/dev_certs/pproxy.key packages: - backend diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert b/stratos-ui-release/jobs/backend/templates/ssl_cert new file mode 100644 index 0000000000..dd7e4c491a --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/ssl_cert @@ -0,0 +1 @@ +<%= @ssl_cert %> \ No newline at end of file diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert_key b/stratos-ui-release/jobs/backend/templates/ssl_cert_key new file mode 100644 index 0000000000..4e58a3a50b --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/ssl_cert_key @@ -0,0 +1 @@ +<%= @ssl_cert_key %> \ No newline at end of file diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 5adb333dfa..78ee11fa00 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -2,6 +2,8 @@ name: frontend templates: nginx.conf: /etc/nginx/nginx.conf + ssl_cert: /etc/nginx/nginx.crt + ssl_cert_key: /etc/nginx/nginx.key packages: - nginx diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf b/stratos-ui-release/jobs/frontend/templates/nginx.conf index 35ff1181d0..eb4e8dcb30 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx.conf +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf @@ -47,8 +47,8 @@ http { server { listen 443 ssl; - ssl_certificate <%= @ssl_cert_path %>; - ssl_certificate_key <%= @ssl_cert_key_path %>; + ssl_certificate /etc/nginx/nginx.crt; + ssl_certificate_key /etc/nginx/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert b/stratos-ui-release/jobs/frontend/templates/ssl_cert new file mode 100644 index 0000000000..dd7e4c491a --- /dev/null +++ b/stratos-ui-release/jobs/frontend/templates/ssl_cert @@ -0,0 +1 @@ +<%= @ssl_cert %> \ No newline at end of file diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert_key b/stratos-ui-release/jobs/frontend/templates/ssl_cert_key new file mode 100644 index 0000000000..4e58a3a50b --- /dev/null +++ b/stratos-ui-release/jobs/frontend/templates/ssl_cert_key @@ -0,0 +1 @@ +<%= @ssl_cert_key %> \ No newline at end of file From d6c2ff60b34cfa7635a71864a9c3d40d67edf05b Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 10:15:53 +0100 Subject: [PATCH 11/27] Nginx conf update --- stratos-ui-release/jobs/frontend/templates/nginx.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf b/stratos-ui-release/jobs/frontend/templates/nginx.conf index eb4e8dcb30..ba97a638cc 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx.conf +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf @@ -47,8 +47,8 @@ http { server { listen 443 ssl; - ssl_certificate /etc/nginx/nginx.crt; - ssl_certificate_key /etc/nginx/nginx.key; + ssl_certificate /var/vcap/jobs/nginx/nginx.crt; + ssl_certificate_key /var/vcap/jobs/nginx/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; @@ -68,7 +68,7 @@ http { } location / { - root /usr/share/nginx/html; + root /var/vcap/packages/frontend; add_header Cache-Control no-cache; } } From b0066116c46bb132f731c3fd76ba47cfa430d620 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 10:18:58 +0100 Subject: [PATCH 12/27] Updated spec --- stratos-ui-release/jobs/frontend/spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 78ee11fa00..7fb9087dcd 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -1,9 +1,9 @@ --- name: frontend templates: - nginx.conf: /etc/nginx/nginx.conf - ssl_cert: /etc/nginx/nginx.crt - ssl_cert_key: /etc/nginx/nginx.key + nginx.conf: /var/vcap/jobs/nginx/nginx.conf + ssl_cert: /var/vcap/jobs/nginx/nginx.crt + ssl_cert_key: /var/vcap/jobs/nginx/nginx.key packages: - nginx From 21644efc7aa3ddef1b88de9de5e6f06504ee3e2e Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 16 Aug 2017 10:21:15 +0100 Subject: [PATCH 13/27] Add erb to templates --- stratos-ui-release/jobs/backend/spec | 6 +++--- .../templates/{config.properties => config.properties.erb} | 0 .../jobs/backend/templates/{ssl_cert => ssl_cert.erb} | 0 .../backend/templates/{ssl_cert_key => ssl_cert_key.erb} | 0 stratos-ui-release/jobs/frontend/spec | 6 +++--- .../jobs/frontend/templates/{nginx.conf => nginx.conf.erb} | 0 .../jobs/frontend/templates/{ssl_cert => ssl_cert.erb} | 0 .../frontend/templates/{ssl_cert_key => ssl_cert_key.erb} | 0 8 files changed, 6 insertions(+), 6 deletions(-) rename stratos-ui-release/jobs/backend/templates/{config.properties => config.properties.erb} (100%) rename stratos-ui-release/jobs/backend/templates/{ssl_cert => ssl_cert.erb} (100%) rename stratos-ui-release/jobs/backend/templates/{ssl_cert_key => ssl_cert_key.erb} (100%) rename stratos-ui-release/jobs/frontend/templates/{nginx.conf => nginx.conf.erb} (100%) rename stratos-ui-release/jobs/frontend/templates/{ssl_cert => ssl_cert.erb} (100%) rename stratos-ui-release/jobs/frontend/templates/{ssl_cert_key => ssl_cert_key.erb} (100%) diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index 4d5406fbd6..3e6353fe35 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -1,9 +1,9 @@ --- name: backend templates: - config.properties: /var/vcap/jobs/backend/config.properties - ssl_cert: /var/vcap/jobs/backend/dev_certs/pproxy.crt - ssl_cert_key: /var/vcap/jobs/backend/dev_certs/pproxy.key + config.properties.erb: /var/vcap/jobs/backend/config.properties + ssl_cert.erb: /var/vcap/jobs/backend/dev_certs/pproxy.crt + ssl_cert_key.erb: /var/vcap/jobs/backend/dev_certs/pproxy.key packages: - backend diff --git a/stratos-ui-release/jobs/backend/templates/config.properties b/stratos-ui-release/jobs/backend/templates/config.properties.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/config.properties rename to stratos-ui-release/jobs/backend/templates/config.properties.erb diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert b/stratos-ui-release/jobs/backend/templates/ssl_cert.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/ssl_cert rename to stratos-ui-release/jobs/backend/templates/ssl_cert.erb diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert_key b/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/ssl_cert_key rename to stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 7fb9087dcd..7a2acfb1bd 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -1,9 +1,9 @@ --- name: frontend templates: - nginx.conf: /var/vcap/jobs/nginx/nginx.conf - ssl_cert: /var/vcap/jobs/nginx/nginx.crt - ssl_cert_key: /var/vcap/jobs/nginx/nginx.key + nginx.conf.erb: /var/vcap/jobs/nginx/nginx.conf + ssl_cert.erb: /var/vcap/jobs/nginx/nginx.crt + ssl_cert_key.erb: /var/vcap/jobs/nginx/nginx.key packages: - nginx diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf b/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/nginx.conf rename to stratos-ui-release/jobs/frontend/templates/nginx.conf.erb diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert b/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/ssl_cert rename to stratos-ui-release/jobs/frontend/templates/ssl_cert.erb diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert_key b/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/ssl_cert_key rename to stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb From 4d463b5582beb04ca54adfa37b840c23dbe3459e Mon Sep 17 00:00:00 2001 From: Vlad Iovanov Date: Wed, 16 Aug 2017 14:32:48 +0300 Subject: [PATCH 14/27] Complete BOSH deployment configurations and example deployment manifest --- stratos-ui-release/bosh-lite/deployment.yml | 185 ++++++++++++++++++ stratos-ui-release/config/blobs.yml | 4 + stratos-ui-release/jobs/backend/monit | 7 + stratos-ui-release/jobs/backend/spec | 58 +++--- .../jobs/backend/templates/backend_ctl.erb | 44 +++++ .../backend/templates/config.properties.erb | 40 ++-- .../jobs/backend/templates/ssl_cert.erb | 2 +- .../jobs/backend/templates/ssl_cert_key.erb | 2 +- stratos-ui-release/jobs/frontend/monit | 7 + stratos-ui-release/jobs/frontend/spec | 20 +- .../jobs/frontend/templates/nginx.conf.erb | 6 +- .../jobs/frontend/templates/nginx_ctl.erb | 41 ++++ .../jobs/frontend/templates/ssl_cert.erb | 2 +- .../jobs/frontend/templates/ssl_cert_key.erb | 2 +- stratos-ui-release/packages/backend/packaging | 2 + .../packages/frontend/packaging | 2 + stratos-ui-release/packages/nginx/packaging | 5 +- stratos-ui-release/packages/nginx/spec | 1 + stratos-ui-release/packages/utils/packaging | 3 + stratos-ui-release/packages/utils/spec | 5 + stratos-ui-release/src/utils/pid_utils.sh | 123 ++++++++++++ stratos-ui-release/src/utils/syslog_utils.sh | 32 +++ 22 files changed, 532 insertions(+), 61 deletions(-) create mode 100644 stratos-ui-release/bosh-lite/deployment.yml create mode 100644 stratos-ui-release/jobs/backend/templates/backend_ctl.erb create mode 100644 stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb create mode 100644 stratos-ui-release/packages/utils/packaging create mode 100644 stratos-ui-release/packages/utils/spec create mode 100644 stratos-ui-release/src/utils/pid_utils.sh create mode 100644 stratos-ui-release/src/utils/syslog_utils.sh diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/stratos-ui-release/bosh-lite/deployment.yml new file mode 100644 index 0000000000..3ca67c38f0 --- /dev/null +++ b/stratos-ui-release/bosh-lite/deployment.yml @@ -0,0 +1,185 @@ +--- +name: stratos + +networks: +- name: stratos-net + type: manual + subnets: + - range: 10.0.16.0/24 + gateway: 10.0.16.1 + dns: [8.8.8.8] + reserved: ["10.0.16.2 - 10.0.16.3"] + static: ["10.0.16.100 - 10.0.16.105"] + +resource_pools: +- name: stratos_rp1 + network: stratos-net + stemcell: + name: bosh-warden-boshlite-ubuntu-trusty-go_agent + version: latest + cloud_properties: + availability_zone: az1 + +compilation: + workers: 6 + network: stratos-net + reuse_compilation_vms: true + cloud_properties: + availability_zone: az1 + +releases: +- name: stratos-ui + version: latest + +update: + canaries: 2 + max_in_flight: 1 + canary_watch_time: 5000-60000 + update_watch_time: 5000-60000 + +instance_groups: +- name: frontend + instances: 1 + resource_pool: stratos_rp1 + jobs: + - name: frontend + release: stratos-ui + properties: + stratos_ui: + frontend: + ssl_cert_key: | + -----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 + Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP + XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ + 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz + dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai + cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w + gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q + A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T + /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA + +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 + M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 + 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep + 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk + x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp + u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV + k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd + 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH + pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P + sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 + 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb + nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF + ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 + PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z + 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr + 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd + mEVvEQxyBz3V1fZ0Yz246W60 + -----END PRIVATE KEY----- + ssl_cert: | + -----BEGIN CERTIFICATE----- + MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV + BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX + aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF + MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 + ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB + CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy + gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx + 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK + qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ + iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA + Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh + 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw + DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU + WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh + N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 + 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid + uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa + LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm + fw== + -----END CERTIFICATE----- + backend: + host: 10.0.16.103 + port: 443 + networks: + - name: stratos-net +- name: backend + instances: 1 + resource_pool: stratos_rp1 + jobs: + - name: backend + release: stratos-ui + properties: + stratos_ui: + backend: + skip_ssl_validation: true + address: 10.0.16.103 + port: 443 + # uaa_address: + # console_admin_scope: + # console_uaa_client: + frontend_origin_address: '' + ssl_cert_key: | + -----BEGIN PRIVATE KEY----- + MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV9+ySh0xZzM41 + Salbfmk1cWwUP9QYS/MKxceZ7rh/rYloRZiIr9agOHKCNSdFTSb9RTTf7mcFGPdP + XQ42uOrzlVu/PeK1Hlv2tEf7zFBMmy0dEWB3PkH2kvHjcYTHIHC4Cpy7t9KRlRCQ + 3yAGPLFzCspgz1Kj8gEu1/tGF6ODr+qvdY2d8BVRCEqrLAFefEKADiQhEkrFtBjz + dc8FcgFx1EfnGwENfR31Oyt7+/0b8FqJT/8K+GlXMQmJPNEONxrYL+/xDszFw/Ai + cAUz1XP6Iqy7r6CsMWiI2HeGqX6Z4RPWeZITur50g4BnnwSeTkFiw7Ek39+bK56w + gvRLcIpLAgMBAAECggEBANNJuycGy/JxN7+POdnLfoDzu9JTJVHIzft5Sp1LCo2q + A+Ift3xihwI4O3swmdLpWPMJACmQ9dIm0TBhp8OJ3xkiCDNVHSXVEOMRK3QOUc0T + /vyRSDz4EZM3j/0VABTSh/x1HkiQQTLZjD5C1xDRpjkAEtB+ahDSzTBAvzR761AA + +y3fQz59jUwEoC1fOmzd333brgUGG3rwaqdg5qyXQBQH3k2RC10r9GXoc5fvkwO7 + M2n2rW3WdytT3Yhb+Cvv+EZsJVs6lX8dyQcdfFLP9ivBjzRbNTxm6sA1vnmq0xf4 + 7ixC8MJk/N9ZRRGTcohxS97AfsnFqwqOTeGPrsdqFqECgYEA/5IHgr8ubnmTJ0ep + 0+n69jqVQkfMJ0/sPlXP/+1yywYxkf6kSm8JXboa1W+j3vsRMRYUWAQVLp8ALrLk + x3aQG024CayryabcdFPrfdbdQV1Ik+8RYae34uKiOgyOJVyy96YuqM4QCvqY5GYp + u+rthafJq4kGAzU6Pli7yI3ZsM8CgYEA1lP+YBHotCR993jXGa0OIwmqI7+n9EWV + k/ubNxutEqXE+VL4hXrWWn9mLD4MJ9y+umppTdzEawUcM9MoVD7eeQUwkgMiDlUd + 2c62pHHStYyKHaY85Zp1yovFDDjtROErXT9+fXcDAxSP0MOapEC9tToY1seVfJLH + pj/U52ONlcUCgYEAnCUzU43NJ5A9+QzO1Puq6k/Gq9VEBWzOUROK3rnLngFtvd5P + sG6A0XQIOwlXnL/WtB/iVBhCfNaGfQGtx7RHvXbRj4+g8bZyENzJD3x8eBgvZLr2 + 6qxXLFb9eOv82RT2/1nYPiiQIrUTPtCwhPC3KCboj1ZLhyA5MqhyKsmIDH8CgYAb + nV7dCfGtpDYGuK8eQ8nagdhGGt+M/Zo0IurwwsQd7vXeGe6jZBxSNK/5a1UtnaeF + ZUiEG7nDADmOA9riX+dSOHT1mym8JwNdmOC3d2LquVziTRTzkF805aVR2dPYWBq6 + PQATMk5VC0UsZMd7+kt3GjExGy4Liu3mYbsQxSbs8QKBgDPoTR3a39cjp4KgMS4z + 9nRT5DV72/GE5N7EDrDHrhpUyW0qkM4UcJ5Vi+c4EywzOgtYbFknSsXbYnVAkFDr + 42qv5Z0qoLTOch+GVuj0ZF1UgJh+RJWom7lPhTS0UP+VZFBc++nGl7PGTRflm3Zd + mEVvEQxyBz3V1fZ0Yz246W60 + -----END PRIVATE KEY----- + ssl_cert: | + -----BEGIN CERTIFICATE----- + MIIDXTCCAkWgAwIBAgIJAJooOiQWl1v1MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV + BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX + aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjIzMTQ1MDM5WhcNMTgwNjIzMTQ1MDM5WjBF + MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 + ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB + CgKCAQEA1ffskodMWczONUmpW35pNXFsFD/UGEvzCsXHme64f62JaEWYiK/WoDhy + gjUnRU0m/UU03+5nBRj3T10ONrjq85Vbvz3itR5b9rRH+8xQTJstHRFgdz5B9pLx + 43GExyBwuAqcu7fSkZUQkN8gBjyxcwrKYM9So/IBLtf7Rhejg6/qr3WNnfAVUQhK + qywBXnxCgA4kIRJKxbQY83XPBXIBcdRH5xsBDX0d9Tsre/v9G/BaiU//CvhpVzEJ + iTzRDjca2C/v8Q7MxcPwInAFM9Vz+iKsu6+grDFoiNh3hql+meET1nmSE7q+dIOA + Z58Enk5BYsOxJN/fmyuesIL0S3CKSwIDAQABo1AwTjAdBgNVHQ4EFgQUXucATEFh + 8s94Mg1+J/aP8potwhMwHwYDVR0jBBgwFoAUXucATEFh8s94Mg1+J/aP8potwhMw + DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAGroqi6rKMjw3mCtr6dAU + WgGXiO96ADRzRchdp+gpHTVtybKAa1n13MAs/tl7HKUBQWwvDqPlqAAmBtCDKhfh + N8SiI8PxScaCE2NcJCJDHwxs2CucUSAIf99w+WIZ0pF2IC+73GTCR+p9Kwb5bN04 + 8vN/7YQTMwNk7GxkKas9QPR9/6rvPHLGPYvPx8mOW6HbYaWdPavJAI/XAYPxnfid + uQuNfXXbhJyxN1BUi1Kt+KkVCyG+CY0jJNbO7lTsiJSzcstLykSxTX1bw0jIvEWa + LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm + fw== + -----END CERTIFICATE----- + encryption_key: B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF + session_store_secret: foo + use_postgres: false + use_sqlite: true + # postgres_user: + # postgres_user_passwd: + # postgres_db: + # postgres_host: + # postgres_port: + # postgres_enable_ssl: + networks: + - name: stratos-net + static_ips: [10.0.16.103] diff --git a/stratos-ui-release/config/blobs.yml b/stratos-ui-release/config/blobs.yml index b1a9a81303..ec72c2d999 100644 --- a/stratos-ui-release/config/blobs.yml +++ b/stratos-ui-release/config/blobs.yml @@ -3,6 +3,10 @@ nginx/nginx-1.11.13.tar.gz: size: 980784 object_id: 214aec6b-e095-4b21-7155-d038f699eaae sha: 84f27729754796181dc39d47da761c7e85eb3ae2 +nginx/pcre-8.40.tar.gz: + size: 2065161 + object_id: 44706e8c-255c-4ff3-9737-23ab55a1a214 + sha: sha256:1d75ce90ea3f81ee080cdc04e68c9c25a9fb984861a0618be7bbf676b18eda3e golang/go1.8.3.linux-amd64.tar.gz: size: 90029041 object_id: 53346f1f-edfc-40d5-54b9-04126e05fdf3 diff --git a/stratos-ui-release/jobs/backend/monit b/stratos-ui-release/jobs/backend/monit index e69de29bb2..c76a1a23bc 100644 --- a/stratos-ui-release/jobs/backend/monit +++ b/stratos-ui-release/jobs/backend/monit @@ -0,0 +1,7 @@ +check process backend + with pidfile /var/vcap/sys/run/backend/backend.pid + start program "/var/vcap/jobs/backend/bin/backend_ctl start" + as uid vcap and gid vcap + stop program "/var/vcap/jobs/bin/backend_ctl stop" + as uid vcap and gid vcap + group vcap diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index 3e6353fe35..e9e67ec847 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -1,50 +1,62 @@ --- name: backend templates: - config.properties.erb: /var/vcap/jobs/backend/config.properties - ssl_cert.erb: /var/vcap/jobs/backend/dev_certs/pproxy.crt - ssl_cert_key.erb: /var/vcap/jobs/backend/dev_certs/pproxy.key + config.properties.erb: config/config.properties + ssl_cert.erb: config/dev_certs/pproxy.crt + ssl_cert_key.erb: config/dev_certs/pproxy.key + backend_ctl.erb: bin/backend_ctl + packages: - backend +- utils properties: - skip_ssl_validation: - description: "Skip SSL validation" + stratos_ui.backend.skip_ssl_validation: + description: "Skip SSL validation for connections to UAA" default: false - backend_port: + stratos_ui.backend.address: + description: "Address the backend is binding to" + default: 0.0.0.0 + stratos_ui.backend.port: description: "Port the backend is listening on" default: 443 - uaa_address: + stratos_ui.backend.uaa_address: description: "UAA server address" - console_admin_scope: + default: '' + stratos_ui.backend.console_admin_scope: description: "UAA scope identifying Stratos UI Console admin" - console_admin_scope: + default: '' + stratos_ui.backend.console_admin_scope: description: "UAA scope identifying Stratos UI Console admin" - console_uaa_client: + default: '' + stratos_ui.backend.console_uaa_client: description: "UAA client for Stratos UI Console" - frontend_origin_address: + default: '' + stratos_ui.backend.frontend_origin_address: description: "Frontend origin address" - ssl_cert_key: + stratos_ui.backend.ssl_cert_key: description: "SSL Certificate key body" - ssl_cert: + stratos_ui.backend.ssl_cert: description: "SSL Certificate body" - encryption_key: + stratos_ui.backend.encryption_key: description: "Hex encoded encryption key" - use_postgres: + stratos_ui.backend.session_store_secret: + description: "Secret used to encrypt the backend session store" + stratos_ui.backend.use_postgres: description: "Use postgres, need to specify relevant postgres settings" - postgres_user: + stratos_ui.backend.postgres_user: description: "Postgres User" - postgres_user_passwd: + stratos_ui.backend.postgres_user_passwd: description: "Postgres user password" - postgres_db: + stratos_ui.backend.postgres_db: description: "Stratos UI Console DB name" - postgres_host: + stratos_ui.backend.postgres_host: description: "Postgres host" - postgres_port: + stratos_ui.backend.postgres_port: description: "Postgres port" - postgres_enable_ssl: + stratos_ui.backend.postgres_enable_ssl: description: "Enable SSL for postgres" default: false - use_sqlite: + stratos_ui.backend.use_sqlite: description: "USe SQLLite" - default: true \ No newline at end of file + default: true diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb new file mode 100644 index 0000000000..74952fdbd0 --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -0,0 +1,44 @@ +#!/bin/bash + +RUN_DIR="/var/vcap/sys/run/backend" +LOG_DIR="/var/vcap/sys/log/backend" +PIDFILE="${RUN_DIR}/backend.pid" +CONFIG_DIR="/var/vcap/jobs/backend/config" + +source /var/vcap/packages/utils/syslog_utils.sh +source /var/vcap/packages/utils/pid_utils.sh + +tee_output_to_sys_log_and_file "${LOG_DIR}" "$(basename "$0")" + +function setup_environment() { + mkdir -p "${RUN_DIR}" +} + +case $1 in + + start) + setup_environment + pid_guard "$PIDFILE" "Nginx" + + cp -r $CONFIG_DIR/* /var/vcap/packages/backend/ + cd /var/vcap/packages/backend/ + + echo $$ > "$PIDFILE" + + exec /var/vcap/packages/backend/portal-proxy + + ;; + + stop) + sigkill_on_timeout=0 + timeout=0 + kill_and_wait "${PIDFILE}" "${timeout}" "${sigkill_on_timeout}" + + ;; + + *) + echo "Usage: backend_ctl {start|stop}" + + ;; + +esac diff --git a/stratos-ui-release/jobs/backend/templates/config.properties.erb b/stratos-ui-release/jobs/backend/templates/config.properties.erb index 61c9f385a3..914239bec3 100644 --- a/stratos-ui-release/jobs/backend/templates/config.properties.erb +++ b/stratos-ui-release/jobs/backend/templates/config.properties.erb @@ -1,31 +1,31 @@ HTTP_CONNECTION_TIMEOUT_IN_SECS=10 HTTP_CLIENT_TIMEOUT_IN_SECS=20 -SKIP_SSL_VALIDATION=<%= @skip_ssl_validation %> -CONSOLE_PROXY_TLS_ADDRESS=:=<%= @backend_port %> +SKIP_SSL_VALIDATION=<%= p('stratos_ui.backend.skip_ssl_validation') %> +CONSOLE_PROXY_TLS_ADDRESS=<%= p('stratos_ui.backend.address') %>:<%= p('stratos_ui.backend.port') %> CF_CLIENT=cf CF_ADMIN_ROLE=cloud_controller.admin -UAA_ENDPOINT=<%= @uaa_address %> -CONSOLE_ADMIN_SCOPE=<%= @console_admin_scope %> -CONSOLE_CLIENT=<%= @console_uaa_client %> -ALLOWED_ORIGINS==<%= @frontend_origin_address %> +UAA_ENDPOINT=<%= p('stratos_ui.backend.uaa_address') %> +CONSOLE_ADMIN_SCOPE=<%= p('stratos_ui.backend.console_admin_scope') %> +CONSOLE_CLIENT=<%= p('stratos_ui.backend.console_uaa_client') %> +ALLOWED_ORIGINS=<%= p('stratos_ui.backend.frontend_origin_address') %> -SESSION_STORE_SECRET=wheeee! -CONSOLE_PROXY_CERT_KEY=<%= @ssl_cert_key %> -CONSOLE_PROXY_CERT==<%= @ssl_cert %> -ENCRYPTION_KEY=<%= @encryption_key %> +SESSION_STORE_SECRET=<%= p('stratos_ui.backend.session_store_secret') %> +CONSOLE_PROXY_CERT_KEY=<%= p('stratos_ui.backend.ssl_cert_key') %> +CONSOLE_PROXY_CERT=<%= p('stratos_ui.backend.ssl_cert') %> +ENCRYPTION_KEY=<%= p('stratos_ui.backend.encryption_key') %> -<% if @use_postgres -%> +<% if p('stratos_ui.backend.use_postgres') == true %> DATABASE_PROVIDER=postgres -PGSQL_USER=<%= @postgres_user %> -PGSQL_PASSWORD=<%= @postgres_user_passwd %> -PGSQL_DATABASE=<%= @postgres_db %> -PGSQL_HOST=<%= @postgres_host %> -PGSQL_PORT=<%= @postgres_port %> +PGSQL_USER=<%= p('stratos_ui.backend.postgres_user') %> +PGSQL_PASSWORD=<%= p('stratos_ui.backend.postgres_user_passwd') %> +PGSQL_DATABASE=<%= p('stratos_ui.backend.postgres_db') %> +PGSQL_HOST=<%= p('stratos_ui.backend.postgres_host') %> +PGSQL_PORT=<%= p('stratos_ui.backend.postgres_port') %> PGSQL_CONNECT_TIMEOUT_IN_SECS=100 -PGSQL_SSL_MODE=<%= @postgres_enable_ssl %> -<% end -%> +PGSQL_SSL_MODE=<%= p('stratos_ui.backend.postgres_enable_ssl') %> +<% end %> -<% if @use_sqlite -%> +<% if p('stratos_ui.backend.use_sqlite') == true %> DATABASE_PROVIDER=sqlite -<% end -%> \ No newline at end of file +<% end %> diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert.erb b/stratos-ui-release/jobs/backend/templates/ssl_cert.erb index dd7e4c491a..38180c2263 100644 --- a/stratos-ui-release/jobs/backend/templates/ssl_cert.erb +++ b/stratos-ui-release/jobs/backend/templates/ssl_cert.erb @@ -1 +1 @@ -<%= @ssl_cert %> \ No newline at end of file +<%= p('stratos_ui.backend.ssl_cert') %> diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb b/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb index 4e58a3a50b..4badf77826 100644 --- a/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb +++ b/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb @@ -1 +1 @@ -<%= @ssl_cert_key %> \ No newline at end of file +<%= p('stratos_ui.backend.ssl_cert_key') %> diff --git a/stratos-ui-release/jobs/frontend/monit b/stratos-ui-release/jobs/frontend/monit index e69de29bb2..e861e57a38 100644 --- a/stratos-ui-release/jobs/frontend/monit +++ b/stratos-ui-release/jobs/frontend/monit @@ -0,0 +1,7 @@ +check process nginx + with pidfile /var/vcap/sys/run/nginx/nginx.pid + start program "/var/vcap/jobs/frontend/bin/nginx_ctl start" + as uid vcap and gid vcap + stop program "/var/vcap/jobs/bin/frontend/nginx_ctl stop" + as uid vcap and gid vcap + group vcap diff --git a/stratos-ui-release/jobs/frontend/spec b/stratos-ui-release/jobs/frontend/spec index 7a2acfb1bd..040a9c0cd5 100644 --- a/stratos-ui-release/jobs/frontend/spec +++ b/stratos-ui-release/jobs/frontend/spec @@ -1,22 +1,24 @@ --- name: frontend templates: - nginx.conf.erb: /var/vcap/jobs/nginx/nginx.conf - ssl_cert.erb: /var/vcap/jobs/nginx/nginx.crt - ssl_cert_key.erb: /var/vcap/jobs/nginx/nginx.key + nginx.conf.erb: config/nginx.conf + ssl_cert.erb: config/nginx.crt + ssl_cert_key.erb: config/nginx.key + nginx_ctl.erb: bin/nginx_ctl packages: - nginx - frontend +- utils properties: - backend_host: + stratos_ui.backend.host: description: "Host deploying the backend" default: localhost - backend_port: + stratos_ui.backend.port: description: "Port the backend is listening on" default: 443 - ssl_cert_path: - description: "SSL certificate path" - ssl_cert_key_path: - description: "SSL certificate key path" \ No newline at end of file + stratos_ui.frontend.ssl_cert: + description: "SSL certificate" + stratos_ui.frontend.ssl_cert_key: + description: "SSL certificate key" diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb b/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb index ba97a638cc..209669e7c4 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb @@ -9,7 +9,7 @@ http { upstream portalproxy { least_conn; - server <%= @backend_host %>:<%= @backend_port %>; + server <%= p('stratos_ui.backend.host') %>:<%= p('stratos_ui.backend.port') %>; keepalive 32; } @@ -47,8 +47,8 @@ http { server { listen 443 ssl; - ssl_certificate /var/vcap/jobs/nginx/nginx.crt; - ssl_certificate_key /var/vcap/jobs/nginx/nginx.key; + ssl_certificate /var/vcap/jobs/nginx/config/nginx.crt; + ssl_certificate_key /var/vcap/jobs/nginx/config/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; diff --git a/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb b/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb new file mode 100644 index 0000000000..9c6fecf43c --- /dev/null +++ b/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb @@ -0,0 +1,41 @@ +#!/bin/bash + +RUN_DIR="/var/vcap/sys/run/nginx" +LOG_DIR="/var/vcap/sys/log/nginx" +PIDFILE="${RUN_DIR}/nginx.pid" +CONFIG_DIR="/var/vcap/jobs/frontend/config" + +source /var/vcap/packages/utils/syslog_utils.sh +source /var/vcap/packages/utils/pid_utils.sh + +tee_output_to_sys_log_and_file "${LOG_DIR}" "$(basename "$0")" + +function setup_environment() { + mkdir -p "${RUN_DIR}" +} + +case $1 in + + start) + setup_environment + pid_guard "$PIDFILE" "Nginx" + + echo $$ > "$PIDFILE" + + exec /var/vcap/packages/nginx/sbin/nginx \ + -c "${CONFIG_DIR}/nginx.conf" + ;; + + stop) + sigkill_on_timeout=0 + timeout=0 + kill_and_wait "${PIDFILE}" "${timeout}" "${sigkill_on_timeout}" + + ;; + + *) + echo "Usage: nginx_ctl {start|stop}" + + ;; + +esac diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb b/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb index dd7e4c491a..081bdf03dc 100644 --- a/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb +++ b/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb @@ -1 +1 @@ -<%= @ssl_cert %> \ No newline at end of file +<%= p('stratos_ui.frontend.ssl_cert') %> diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb b/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb index 4e58a3a50b..8b41d9db5c 100644 --- a/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb +++ b/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb @@ -1 +1 @@ -<%= @ssl_cert_key %> \ No newline at end of file +<%= p('stratos_ui.frontend.ssl_cert_key') %> diff --git a/stratos-ui-release/packages/backend/packaging b/stratos-ui-release/packages/backend/packaging index b38f9ff0fd..07dd36979c 100644 --- a/stratos-ui-release/packages/backend/packaging +++ b/stratos-ui-release/packages/backend/packaging @@ -1,2 +1,4 @@ # abort script on any command that exits with a non zero value set -e + +cp -a ./stratos-ui/* ${BOSH_INSTALL_TARGET} diff --git a/stratos-ui-release/packages/frontend/packaging b/stratos-ui-release/packages/frontend/packaging index b38f9ff0fd..07dd36979c 100644 --- a/stratos-ui-release/packages/frontend/packaging +++ b/stratos-ui-release/packages/frontend/packaging @@ -1,2 +1,4 @@ # abort script on any command that exits with a non zero value set -e + +cp -a ./stratos-ui/* ${BOSH_INSTALL_TARGET} diff --git a/stratos-ui-release/packages/nginx/packaging b/stratos-ui-release/packages/nginx/packaging index 38750fa971..883bdca118 100644 --- a/stratos-ui-release/packages/nginx/packaging +++ b/stratos-ui-release/packages/nginx/packaging @@ -1,5 +1,8 @@ set -e -x +echo "Extracting pcre..." +tar xzvf nginx/pcre-8.40.tar.gz + echo "Extracting nginx..." tar xzvf nginx/nginx-1.11.13.tar.gz @@ -8,8 +11,6 @@ pushd nginx-1.11.13 ./configure \ --prefix=${BOSH_INSTALL_TARGET} \ --with-pcre=../pcre-8.40 \ - --add-module=../headers-more-nginx-module-0.32 \ - --add-module=../nginx-upload-module-2.2 \ --with-http_stub_status_module \ --with-http_ssl_module diff --git a/stratos-ui-release/packages/nginx/spec b/stratos-ui-release/packages/nginx/spec index 432112895a..ed312aab0f 100644 --- a/stratos-ui-release/packages/nginx/spec +++ b/stratos-ui-release/packages/nginx/spec @@ -2,3 +2,4 @@ name: nginx files: - nginx/nginx-1.11.13.tar.gz +- nginx/pcre-8.40.tar.gz diff --git a/stratos-ui-release/packages/utils/packaging b/stratos-ui-release/packages/utils/packaging new file mode 100644 index 0000000000..743f62e2c2 --- /dev/null +++ b/stratos-ui-release/packages/utils/packaging @@ -0,0 +1,3 @@ +set -e -x + +cp -a ./utils/* ${BOSH_INSTALL_TARGET} diff --git a/stratos-ui-release/packages/utils/spec b/stratos-ui-release/packages/utils/spec new file mode 100644 index 0000000000..ae2e9f971b --- /dev/null +++ b/stratos-ui-release/packages/utils/spec @@ -0,0 +1,5 @@ +--- +name: utils +files: +- utils/pid_utils.sh +- utils/syslog_utils.sh diff --git a/stratos-ui-release/src/utils/pid_utils.sh b/stratos-ui-release/src/utils/pid_utils.sh new file mode 100644 index 0000000000..5bfa4325fc --- /dev/null +++ b/stratos-ui-release/src/utils/pid_utils.sh @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +function pid_is_running() { + declare pid="$1" + ps -p "${pid}" >/dev/null 2>&1 +} + +# pid_guard +# +# @param pidfile +# @param name [String] an arbitrary name that might show up in STDOUT on errors +# +# Run this before attempting to start new processes that may use the same :pidfile:. +# If an old process is running on the pid found in the :pidfile:, exit 1. Otherwise, +# remove the stale :pidfile: if it exists. +# +function pid_guard() { + declare pidfile="$1" name="$2" + + echo "------------ STARTING $(basename "$0") at $(date) --------------" | tee /dev/stderr + + if [ ! -f "${pidfile}" ]; then + return 0 + fi + + local pid + pid=$(head -1 "${pidfile}") + + if pid_is_running "${pid}"; then + echo "${name} is already running, please stop it first" + exit 1 + fi + + echo "Removing stale pidfile" + rm "${pidfile}" +} + +# wait_pid_death +# +# @param pid +# @param timeout +# +# Watch a :pid: for :timeout: seconds, waiting for it to die. +# If it dies before :timeout:, exit 0. If not, exit 1. +# +# Note that this should be run in a subshell, so that the current +# shell does not exit. +# +function wait_pid_death() { + declare pid="$1" timeout="$2" + + local countdown + countdown=$(( timeout * 10 )) + + while true; do + if ! pid_is_running "${pid}"; then + return 0 + fi + + if [ ${countdown} -le 0 ]; then + return 1 + fi + + countdown=$(( countdown - 1 )) + sleep 0.1 + done +} + +# kill_and_wait +# +# @param pidfile +# @param timeout [default 25s] +# +# For a pid found in :pidfile:, send a `kill -15` TERM, then wait for :timeout: seconds to +# see if it dies on its own. If not, send it a `kill -9`. If the process does die, +# exit 0 and remove the :pidfile:. If after all of this, the process does not actually +# die, exit 1. +# +# Note: +# Monit default timeout for start/stop is 30s +# Append 'with timeout {n} seconds' to monit start/stop program configs +# +function kill_and_wait() { + declare pidfile="$1" timeout="${2:-25}" sigkill_on_timeout="${3:-1}" + + if [ ! -f "${pidfile}" ]; then + echo "Pidfile ${pidfile} doesn't exist" + exit 0 + fi + + local pid + pid=$(head -1 "${pidfile}") + + if [ -z "${pid}" ]; then + echo "Unable to get pid from ${pidfile}" + exit 1 + fi + + if ! pid_is_running "${pid}"; then + echo "Process ${pid} is not running" + rm -f "${pidfile}" + exit 0 + fi + + echo "Killing ${pidfile}: ${pid} " + kill "${pid}" + + if ! wait_pid_death "${pid}" "${timeout}"; then + if [ "${sigkill_on_timeout}" = "1" ]; then + echo "Kill timed out, using kill -9 on ${pid}" + kill -9 "${pid}" + sleep 0.5 + fi + fi + + if pid_is_running "${pid}"; then + echo "Timed Out" + exit 1 + else + echo "Stopped" + rm -f "${pidfile}" + fi +} diff --git a/stratos-ui-release/src/utils/syslog_utils.sh b/stratos-ui-release/src/utils/syslog_utils.sh new file mode 100644 index 0000000000..94b968edd7 --- /dev/null +++ b/stratos-ui-release/src/utils/syslog_utils.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# tee_output_to_sys_log_and_file +# +# @param log_dir [String] the directory where the log file should be written +# @param log_name [String] used to name the log files eg: log_name.log and log_name.err.log +# used to tag the syslog message eg: vcap.log_name.stdout and vcap.log_name.stderr +# +# Send stdout and stderr to syslog as well as a specified file. Prepends datetime to output in the log file. +function tee_output_to_sys_log_and_file { + declare log_dir="$1" log_name="$2" + + exec > >(tee -a >(logger -p user.info -t "vcap.${log_name}.stdout") | prepend_datetime >>"${log_dir}/${log_name}.log") + exec 2> >(tee -a >(logger -p user.error -t "vcap.${log_name}.stderr") | prepend_datetime >>"${log_dir}/${log_name}.err.log") +} + +# tee_output_to_sys_log +# +# @param log_name [String] used to name the log files eg: log_name.log and log_name.err.log +# used to tag the syslog message eg: vcap.log_name.stdout and vcap.log_name.stderr +# +# Send stdout and stderr to syslog . Prepends datetime to stdout and stderr. +function tee_output_to_sys_log { + declare log_name="$1" + + exec > >(tee -a >(logger -p user.info -t "vcap.${log_name}.stdout") | prepend_datetime >> /dev/stdout) + exec 2> >(tee -a >(logger -p user.error -t "vcap.${log_name}.stderr") | prepend_datetime >> /dev/stderr) +} + +function prepend_datetime { + awk -W interactive '{ system("echo -n [$(date +\"%Y-%m-%d %H:%M:%S%z\")]"); print " " $0 }' +} From 15ee4c3856b4b5dc78036f79129e4e63a1db0578 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 17 Aug 2017 10:00:30 +0100 Subject: [PATCH 15/27] Initial bosh release --- stratos-ui-release/deploy.sh | 10 +++++++ stratos-ui-release/jobs/backend/monit | 6 ++-- stratos-ui-release/jobs/backend/spec | 4 +-- .../jobs/backend/templates/backend_ctl.erb | 8 ++++- .../backend/templates/config.properties.erb | 4 +-- stratos-ui-release/jobs/frontend/monit | 6 ++-- .../jobs/frontend/templates/nginx.conf.erb | 6 ++-- .../jobs/frontend/templates/nginx_ctl.erb | 29 +++++-------------- 8 files changed, 35 insertions(+), 38 deletions(-) create mode 100755 stratos-ui-release/deploy.sh diff --git a/stratos-ui-release/deploy.sh b/stratos-ui-release/deploy.sh new file mode 100755 index 0000000000..a2a5e0f53d --- /dev/null +++ b/stratos-ui-release/deploy.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +bosh create-release --force + +bosh -e vbox upload-release -d stratos-ui + +bosh -e vbox -d stratos deploy bosh-lite/deployment.yml + +#bosh -e vbox -d stratos instances +#bosh -e vbox -d stratos ssh frontend/ \ No newline at end of file diff --git a/stratos-ui-release/jobs/backend/monit b/stratos-ui-release/jobs/backend/monit index c76a1a23bc..10ba7609a3 100644 --- a/stratos-ui-release/jobs/backend/monit +++ b/stratos-ui-release/jobs/backend/monit @@ -1,7 +1,5 @@ check process backend with pidfile /var/vcap/sys/run/backend/backend.pid - start program "/var/vcap/jobs/backend/bin/backend_ctl start" - as uid vcap and gid vcap - stop program "/var/vcap/jobs/bin/backend_ctl stop" - as uid vcap and gid vcap + start program = "/bin/bash -c '/var/vcap/jobs/backend/bin/backend_ctl start'" + stop program = "/bin/bash -c '/var/vcap/jobs/backend/bin/backend_ctl stop'" group vcap diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index e9e67ec847..d4c20bc947 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -2,8 +2,8 @@ name: backend templates: config.properties.erb: config/config.properties - ssl_cert.erb: config/dev_certs/pproxy.crt - ssl_cert_key.erb: config/dev_certs/pproxy.key + ssl_cert.erb: config/dev-certs/pproxy.crt + ssl_cert_key.erb: config/dev-certs/pproxy.key backend_ctl.erb: bin/backend_ctl packages: diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb index 74952fdbd0..920c173f1e 100644 --- a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb +++ b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -8,6 +8,9 @@ CONFIG_DIR="/var/vcap/jobs/backend/config" source /var/vcap/packages/utils/syslog_utils.sh source /var/vcap/packages/utils/pid_utils.sh +if [ ! -d ${LOG_DIR} ]; then + mkdir ${LOG_DIR} +fi tee_output_to_sys_log_and_file "${LOG_DIR}" "$(basename "$0")" function setup_environment() { @@ -22,7 +25,10 @@ case $1 in cp -r $CONFIG_DIR/* /var/vcap/packages/backend/ cd /var/vcap/packages/backend/ - + mkdir -p deploy/db + touch deploy/db/sqlite_schema.sql + + chmod +x portal-proxy echo $$ > "$PIDFILE" exec /var/vcap/packages/backend/portal-proxy diff --git a/stratos-ui-release/jobs/backend/templates/config.properties.erb b/stratos-ui-release/jobs/backend/templates/config.properties.erb index 914239bec3..fd260b84c4 100644 --- a/stratos-ui-release/jobs/backend/templates/config.properties.erb +++ b/stratos-ui-release/jobs/backend/templates/config.properties.erb @@ -11,8 +11,8 @@ CONSOLE_CLIENT=<%= p('stratos_ui.backend.console_uaa_client') %> ALLOWED_ORIGINS=<%= p('stratos_ui.backend.frontend_origin_address') %> SESSION_STORE_SECRET=<%= p('stratos_ui.backend.session_store_secret') %> -CONSOLE_PROXY_CERT_KEY=<%= p('stratos_ui.backend.ssl_cert_key') %> -CONSOLE_PROXY_CERT=<%= p('stratos_ui.backend.ssl_cert') %> +# CONSOLE_PROXY_CERT_KEY=<%= p('stratos_ui.backend.ssl_cert_key') %> +# CONSOLE_PROXY_CERT=<%= p('stratos_ui.backend.ssl_cert') %> ENCRYPTION_KEY=<%= p('stratos_ui.backend.encryption_key') %> <% if p('stratos_ui.backend.use_postgres') == true %> diff --git a/stratos-ui-release/jobs/frontend/monit b/stratos-ui-release/jobs/frontend/monit index e861e57a38..7395a7ab46 100644 --- a/stratos-ui-release/jobs/frontend/monit +++ b/stratos-ui-release/jobs/frontend/monit @@ -1,7 +1,5 @@ check process nginx with pidfile /var/vcap/sys/run/nginx/nginx.pid - start program "/var/vcap/jobs/frontend/bin/nginx_ctl start" - as uid vcap and gid vcap - stop program "/var/vcap/jobs/bin/frontend/nginx_ctl stop" - as uid vcap and gid vcap + start program = "/bin/bash -c '/var/vcap/jobs/frontend/bin/nginx_ctl start'" + stop program = "/bin/bash -c '/var/vcap/jobs/frontend/bin/nginx_ctl stop'" group vcap diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb b/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb index 209669e7c4..e770455b9b 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb +++ b/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb @@ -15,7 +15,7 @@ http { add_header X-Frame-Options DENY; - include mime.types; + include /var/vcap/packages/nginx/conf/mime.types; default_type application/octet-stream; keepalive_timeout 70; proxy_read_timeout 200; @@ -47,8 +47,8 @@ http { server { listen 443 ssl; - ssl_certificate /var/vcap/jobs/nginx/config/nginx.crt; - ssl_certificate_key /var/vcap/jobs/nginx/config/nginx.key; + ssl_certificate /var/vcap/jobs/frontend/config/nginx.crt; + ssl_certificate_key /var/vcap/jobs/frontend/config/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; diff --git a/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb b/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb index 9c6fecf43c..0ab5b92174 100644 --- a/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb +++ b/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb @@ -1,41 +1,26 @@ -#!/bin/bash + +#!/bin/bash -e RUN_DIR="/var/vcap/sys/run/nginx" LOG_DIR="/var/vcap/sys/log/nginx" PIDFILE="${RUN_DIR}/nginx.pid" CONFIG_DIR="/var/vcap/jobs/frontend/config" +mkdir -p $RUN_DIR $LOG_DIR $CONFIG_DIR + source /var/vcap/packages/utils/syslog_utils.sh source /var/vcap/packages/utils/pid_utils.sh - tee_output_to_sys_log_and_file "${LOG_DIR}" "$(basename "$0")" -function setup_environment() { - mkdir -p "${RUN_DIR}" -} - case $1 in start) - setup_environment - pid_guard "$PIDFILE" "Nginx" - - echo $$ > "$PIDFILE" - - exec /var/vcap/packages/nginx/sbin/nginx \ - -c "${CONFIG_DIR}/nginx.conf" + /var/vcap/packages/nginx/sbin/nginx -g "pid $PIDFILE;" -c "${CONFIG_DIR}/nginx.conf" ;; - stop) - sigkill_on_timeout=0 - timeout=0 - kill_and_wait "${PIDFILE}" "${timeout}" "${sigkill_on_timeout}" - + kill $(cat $PIDFILE) ;; - *) echo "Usage: nginx_ctl {start|stop}" - ;; - -esac +esac \ No newline at end of file From a0dd94b45f4abb2db82e2e96a2506f5295f3c863 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Wed, 23 Aug 2017 09:46:12 +0100 Subject: [PATCH 16/27] Add README.md --- stratos-ui-release/README.md | 57 ++++++++++++++++++++++++++++++++++++ stratos-ui-release/deploy.sh | 10 ------- 2 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 stratos-ui-release/README.md delete mode 100755 stratos-ui-release/deploy.sh diff --git a/stratos-ui-release/README.md b/stratos-ui-release/README.md new file mode 100644 index 0000000000..ae3f4fc439 --- /dev/null +++ b/stratos-ui-release/README.md @@ -0,0 +1,57 @@ +## Deploying the BOSH release + +To build and deploy the BOSH release you will require a BOSH director. If you don't have one available follow these instructions to setup BOSH lite [here](https://bosh.io/docs/bosh-lite.html). +The rest of the instruction assume that a BOSH lite environment is being used to deploy the chart. + + +### Deploying in a BOSH lite environment + +1. To upload a cloud-config execute the following: +``` +$ bosh -e vbox update-cloud-config ~/workspace/bosh-deployment/warden/cloud-config.yml +``` + +2. Upload a stemcell (using the `bosh-warden-boshlite-ubuntu-trusty`) +``` +bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3421.9 \ + --sha1 1396d7877204e630b9e77ae680f492d26607461d +``` + +3. Build the Stratos UI BOSH release +``` +$ bosh create-release +``` + +If you have outstanding changes locally add the `--force` flag. + +4. After a successful build, upload the release to your director. +``` +bosh -e vbox upload-release -d stratos-ui +``` + +5. Deploy the release +A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. +``` +$ bosh -e vbox -d stratos deploy bosh-lite/deployment.yml +``` + +6. List deployment + +List deployment to get the IP address of the frontend to access the Console. In the following example to access the Console the address is `https://10.0.16.4`. + +``` +09:10 $ bosh -e vbox -d stratos instances +Using environment '192.168.50.6' as client 'admin' + +Task 22. Done + +Deployment 'stratos' + +Instance Process State AZ IPs +backend/68580d76-a241-4de2-b246-82d0a184c9bb running - 10.0.16.103 +frontend/477c94ef-3138-416c-97d7-c09682e6d5dd running - 10.0.16.4 + +2 instances + +Succeeded +``` \ No newline at end of file diff --git a/stratos-ui-release/deploy.sh b/stratos-ui-release/deploy.sh deleted file mode 100755 index a2a5e0f53d..0000000000 --- a/stratos-ui-release/deploy.sh +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/bash - -bosh create-release --force - -bosh -e vbox upload-release -d stratos-ui - -bosh -e vbox -d stratos deploy bosh-lite/deployment.yml - -#bosh -e vbox -d stratos instances -#bosh -e vbox -d stratos ssh frontend/ \ No newline at end of file From c269af1eaafeba62a51ddcec9d57494e35c6fff0 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Thu, 24 Aug 2017 17:05:59 +0100 Subject: [PATCH 17/27] Update BOSH release --- components/app-core/backend/main.go | 3 + .../app-core/backend/repository/crypto/aes.go | 8 +- stratos-ui-release/README.md | 8 +- stratos-ui-release/bosh-lite/deployment.yml | 30 ++++-- stratos-ui-release/jobs/backend/spec | 48 ++++++---- .../backend/templates/config.properties.erb | 23 +++-- .../jobs/backend/templates/post-deploy.erb | 91 +++++++++++++++++++ .../jobs/backend/templates/pre-start.erb | 23 +++++ stratos-ui-release/packages/backend/spec | 1 + 9 files changed, 190 insertions(+), 45 deletions(-) create mode 100644 stratos-ui-release/jobs/backend/templates/post-deploy.erb create mode 100644 stratos-ui-release/jobs/backend/templates/pre-start.erb diff --git a/components/app-core/backend/main.go b/components/app-core/backend/main.go index 8eba804a49..e4834b9dd6 100644 --- a/components/app-core/backend/main.go +++ b/components/app-core/backend/main.go @@ -621,6 +621,9 @@ func isConsoleUpgrading() bool { } upgradeLockPath := fmt.Sprintf("/%s/%s", upgradeVolume, upgradeLockFile) + if string(upgradeVolume[0]) == "/" { + upgradeLockPath = fmt.Sprintf("%s/%s", upgradeVolume, upgradeLockFile) + } if _, err := os.Stat(upgradeLockPath); err == nil { return true diff --git a/components/app-core/backend/repository/crypto/aes.go b/components/app-core/backend/repository/crypto/aes.go index f4759309d9..fb21fcb503 100644 --- a/components/app-core/backend/repository/crypto/aes.go +++ b/components/app-core/backend/repository/crypto/aes.go @@ -73,8 +73,12 @@ func Decrypt(key, ciphertext []byte) (plaintext []byte, err error) { // ReadEncryptionKey - Read the encryption key from the shared volume func ReadEncryptionKey(v, f string) ([]byte, error) { log.Println("ReadEncryptionKey") - fname := fmt.Sprintf("/%s/%s", v, f) - key64chars, err := ioutil.ReadFile(fname) + + encryptionKey := fmt.Sprintf("/%s/%s", v, f) + if string(f[0]) == "/" { + encryptionKey = fmt.Sprintf("%s/%s", v, f) + } + key64chars, err := ioutil.ReadFile(encryptionKey) if err != nil { log.Errorf("Unable to read encryption key file: %+v\n", err) return nil, err diff --git a/stratos-ui-release/README.md b/stratos-ui-release/README.md index ae3f4fc439..57898f0729 100644 --- a/stratos-ui-release/README.md +++ b/stratos-ui-release/README.md @@ -26,13 +26,13 @@ If you have outstanding changes locally add the `--force` flag. 4. After a successful build, upload the release to your director. ``` -bosh -e vbox upload-release -d stratos-ui +$ bosh -e vbox upload-release -d stratos-ui ``` 5. Deploy the release A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. ``` -$ bosh -e vbox -d stratos deploy bosh-lite/deployment.yml +$ bosh -e vbox -d stratos-ui deploy bosh-lite/deployment.yml ``` 6. List deployment @@ -40,12 +40,12 @@ $ bosh -e vbox -d stratos deploy bosh-lite/deployment.yml List deployment to get the IP address of the frontend to access the Console. In the following example to access the Console the address is `https://10.0.16.4`. ``` -09:10 $ bosh -e vbox -d stratos instances +09:10 $ bosh -e vbox -d stratos-ui instances Using environment '192.168.50.6' as client 'admin' Task 22. Done -Deployment 'stratos' +Deployment 'stratos-ui' Instance Process State AZ IPs backend/68580d76-a241-4de2-b246-82d0a184c9bb running - 10.0.16.103 diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/stratos-ui-release/bosh-lite/deployment.yml index 3ca67c38f0..baebe3dd73 100644 --- a/stratos-ui-release/bosh-lite/deployment.yml +++ b/stratos-ui-release/bosh-lite/deployment.yml @@ -1,5 +1,5 @@ --- -name: stratos +name: stratos-ui networks: - name: stratos-net @@ -27,6 +27,11 @@ compilation: cloud_properties: availability_zone: az1 +disk_pools: +- name: upgrade-volume + disk_size: 50 + cloud_properties: {type: standard} + releases: - name: stratos-ui version: latest @@ -106,6 +111,7 @@ instance_groups: - name: backend instances: 1 resource_pool: stratos_rp1 + persistent_disk_pool: upgrade-volume jobs: - name: backend release: stratos-ui @@ -170,16 +176,20 @@ instance_groups: LdXmd/Dyu/EVzgOYnEPiZmHbha4KuVsb0dtAQIT8hmVRXIIOIbndERBduxeVMkLm fw== -----END CERTIFICATE----- - encryption_key: B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF + upgrade_volume_path: /var/vcap/store/backend + upgrade_volume_file: upgrade.lock + encryption_key_volume: /var/vcap/store/backend + encryption_key_filename: key session_store_secret: foo - use_postgres: false - use_sqlite: true - # postgres_user: - # postgres_user_passwd: - # postgres_db: - # postgres_host: - # postgres_port: - # postgres_enable_ssl: + use_mysql: true + use_sqlite: false + mysql_user: stratos + mysql_admin_user: root + mysql_admin_password: changeme + mysql_passwd: strat0s + mysql_db: stratos-db + mysql_host: 10.4.21.245 + mysql_port: 3306 networks: - name: stratos-net static_ips: [10.0.16.103] diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index d4c20bc947..fe3e370b95 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -5,10 +5,13 @@ templates: ssl_cert.erb: config/dev-certs/pproxy.crt ssl_cert_key.erb: config/dev-certs/pproxy.key backend_ctl.erb: bin/backend_ctl + pre-start.erb: bin/pre-start + post-deploy.erb: bin/post-deploy packages: - backend - utils +- golang properties: stratos_ui.backend.skip_ssl_validation: @@ -38,25 +41,36 @@ properties: description: "SSL Certificate key body" stratos_ui.backend.ssl_cert: description: "SSL Certificate body" - stratos_ui.backend.encryption_key: - description: "Hex encoded encryption key" stratos_ui.backend.session_store_secret: description: "Secret used to encrypt the backend session store" - stratos_ui.backend.use_postgres: - description: "Use postgres, need to specify relevant postgres settings" - stratos_ui.backend.postgres_user: - description: "Postgres User" - stratos_ui.backend.postgres_user_passwd: - description: "Postgres user password" - stratos_ui.backend.postgres_db: + stratos_ui.backend.use_mysql: + description: "Use mysql, need to specify relevant mysql settings" + stratos_ui.backend.mysql_user: + description: "mysql User" + stratos_ui.backend.mysql_user_passwd: + description: "mysql user password" + stratos_ui.backend.mysql_db: description: "Stratos UI Console DB name" - stratos_ui.backend.postgres_host: - description: "Postgres host" - stratos_ui.backend.postgres_port: - description: "Postgres port" - stratos_ui.backend.postgres_enable_ssl: - description: "Enable SSL for postgres" - default: false + stratos_ui.backend.mysql_host: + description: "mysql host" + stratos_ui.backend.mysql_port: + description: "mysql port" + stratos_ui.backend.mysql_admin_user: + description: "Mysql Administrator to create DB and user" + stratos_ui.backend.mysql_admin_password: + description: "Mysql Administrator port" stratos_ui.backend.use_sqlite: - description: "USe SQLLite" + description: "Use SQLLite" default: true + stratos_ui.backend.upgrade_volume_path: + description: "Upgrade volume path for pre-start data" + default: "/var/vcap/store/backend" + stratos_ui.backend.upgrade_volume_file: + description: "Upgrade lock file" + default: "upgrade.lock" + stratos_ui.backend.encryption_key_volume: + description: "Encryption key volume" + default: "/var/vcap/store/backend_encryption" + stratos_ui.backend.encryption_key_filename: + description: "Encryption key file name" + default: "key" diff --git a/stratos-ui-release/jobs/backend/templates/config.properties.erb b/stratos-ui-release/jobs/backend/templates/config.properties.erb index fd260b84c4..4b24aadd03 100644 --- a/stratos-ui-release/jobs/backend/templates/config.properties.erb +++ b/stratos-ui-release/jobs/backend/templates/config.properties.erb @@ -11,21 +11,20 @@ CONSOLE_CLIENT=<%= p('stratos_ui.backend.console_uaa_client') %> ALLOWED_ORIGINS=<%= p('stratos_ui.backend.frontend_origin_address') %> SESSION_STORE_SECRET=<%= p('stratos_ui.backend.session_store_secret') %> -# CONSOLE_PROXY_CERT_KEY=<%= p('stratos_ui.backend.ssl_cert_key') %> -# CONSOLE_PROXY_CERT=<%= p('stratos_ui.backend.ssl_cert') %> -ENCRYPTION_KEY=<%= p('stratos_ui.backend.encryption_key') %> -<% if p('stratos_ui.backend.use_postgres') == true %> -DATABASE_PROVIDER=postgres -PGSQL_USER=<%= p('stratos_ui.backend.postgres_user') %> -PGSQL_PASSWORD=<%= p('stratos_ui.backend.postgres_user_passwd') %> -PGSQL_DATABASE=<%= p('stratos_ui.backend.postgres_db') %> -PGSQL_HOST=<%= p('stratos_ui.backend.postgres_host') %> -PGSQL_PORT=<%= p('stratos_ui.backend.postgres_port') %> -PGSQL_CONNECT_TIMEOUT_IN_SECS=100 -PGSQL_SSL_MODE=<%= p('stratos_ui.backend.postgres_enable_ssl') %> +<% if p('stratos_ui.backend.use_mysql') == true %> +DATABASE_PROVIDER=mysql +DB_USER=<%= p('stratos_ui.backend.mysql_user') %> +DB_PASSWORD=<%= p('stratos_ui.backend.mysql_user_passwd') %> +DB_DATABASE_NAME=<%= p('stratos_ui.backend.mysql_db') %> +DB_HOST=<%= p('stratos_ui.backend.mysql_host') %> +DB_PORT=<%= p('stratos_ui.backend.mysql_port') %> <% end %> <% if p('stratos_ui.backend.use_sqlite') == true %> DATABASE_PROVIDER=sqlite <% end %> +UPGRADE_VOLUME=<%= p('stratos_ui.backend.upgrade_volume_path') %> +UPGRADE_LOCK_FILENAME=<%= p('stratos_ui.backend.upgrade_volume_file') %> +ENCRYPTION_KEY_VOLUME=<%= p('stratos_ui.backend.encryption_key_volume') %> +ENCRYPTION_KEY_FILENAME=<%= p('stratos_ui.backend.encryption_key_filename') %> diff --git a/stratos-ui-release/jobs/backend/templates/post-deploy.erb b/stratos-ui-release/jobs/backend/templates/post-deploy.erb new file mode 100644 index 0000000000..d3026fb716 --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/post-deploy.erb @@ -0,0 +1,91 @@ +#!/bin/bash +set -e + + +# Check Git is installed +echo "Installing Git and MariaDB Client" +apt-get update +apt-get install -y git mariadb-client + +echo "PWD: $PWD" +export GOROOT="/var/vcap/packages/golang/" +export GOPATH="/tmp" +export PATH=$GOROOT/bin:$GOPATH/bin:$PATH + +echo "Installing Goose and dependant libraries" +go get bitbucket.org/liamstask/goose/cmd/goose +go get bitbucket.org/liamstask/goose/lib/goose +go get github.com/go-sql-driver/mysql + + +function execStatement { + stmt=$1 + echo "Executing: mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -pxxxxxxxxxxxx -e $stmt" + mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -p<%= p('stratos_ui.backend.mysql_admin_password') %> -e $stmt + +} + +stratosDbExists=$(execStatement "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$DB_DATABASE_NAME';") +DBCONF_KEY=mariadb-k8s + +# Create DB if neccessary +if [ -z "$stratosDbExists" ] ; then + echo "Creating database $DB_DATABASE_NAME" + execStatement "CREATE DATABASE \"$DB_DATABASE_NAME\";" + echo "Creating user $DB_USER" + execStatement "CREATE USER $DB_USER IDENTIFIED BY '$DB_PASSWORD';" + + echo "Granting privs for $DB_DATABASE_NAME to $DB_USER" + execStatement "GRANT ALL PRIVILEGES ON DATABASE \"$DB_DATABASE_NAME\" TO $DB_USER;" + DBCONF_KEY=mariadb-k8s +else + echo "$DB_DATABASE_NAME already exists" +fi + +# Migrate the database if necessary +echo "Checking database to see if migration is necessary." + +echo "DBCONFIG: $DBCONF_KEY" +echo "Connection string: $DB_USER:$DB_PASSWORD@tcp(<%= p('stratos_ui.backend.mysql_host') %>:<%= p('stratos_ui.backend.mysql_port') %>)/$DB_DATABASE_NAME?parseTime=true" +# Check the version +echo "Checking database version." +goose --env=$DBCONF_KEY dbversion + +# Check the status +echo "Checking database status." +goose --env=$DBCONF_KEY status + +# Run migrations +echo "Attempting database migrations." +goose --env=$DBCONF_KEY up + +# CHeck the status +echo "Checking database status." +goose --env=$DBCONF_KEY status + +# Check the version +echo "Checking database version." +goose --env=$DBCONF_KEY dbversion + +echo "Database operation(s) complete." + + +# Check if Upgrade Lock file exists +if [ ! -f "/$UPGRADE_VOLUME/$UPGRADE_LOCK_FILENAME" ]; then + exit 1 +fi +# Remove the lock file on the shared volume +echo "Removing the $UPGRADE_LOCK_FILENAME file from the shared upgrade volume $UPGRADE_VOLUME." +rm /$UPGRADE_VOLUME/$UPGRADE_LOCK_FILENAME || true + +echo "Removed the upgrade lock file." + +# If DO_NOT_QUIT is set, don't quit script +# This is only used in toy kubernetes deployments with no shared volume +if [ "${DO_NOT_QUIT:-false}" = "false" ]; then + echo "Running in shared volume mode, exiting..." + exit 0 +else + echo "Running in 'DO NOT QUIT' mode" + while true; do echo ''; sleep 5; done +fi \ No newline at end of file diff --git a/stratos-ui-release/jobs/backend/templates/pre-start.erb b/stratos-ui-release/jobs/backend/templates/pre-start.erb new file mode 100644 index 0000000000..2686569bc8 --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/pre-start.erb @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +# Step 1 - Set the lock file on the shared volume +mkdir -p <%= p('stratos_ui.backend.upgrade_volume_path') %> +touch <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> +chmod 440 <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> + +echo "Created the upgrade lock file." + +# Step 2 - Create an AES-256 compliant encryption key +# in a file on a shared volume. +echo "Checking to see if we need to generate the encryption key <%= p('stratos_ui.backend.encryption_key_filename') %> file:" +if [ ! -e <%= p('stratos_ui.backend.encryption_key_volume') %>/<%= p('stratos_ui.backend.encryption_key_filename') %> ]; then + echo "-- Adding <%= p('stratos_ui.backend.encryption_key_filename') %> file to the shared volume <%= p('stratos_ui.backend.encryption_key_volume') %>." + keyfile=$(openssl enc -aes-256-cbc -k secret -P -md sha1 | grep key | cut -d '=' -f2) + printf "%s" "$keyfile" > <%= p('stratos_ui.backend.encryption_key_volume') %>/<%= p('stratos_ui.backend.encryption_key_filename') %> + chmod 440 <%= p('stratos_ui.backend.encryption_key_volume') %>/<%= p('stratos_ui.backend.encryption_key_filename') %> + echo "-- Done." +fi + +exit 0 + diff --git a/stratos-ui-release/packages/backend/spec b/stratos-ui-release/packages/backend/spec index 81d11be0f9..d11380062b 100644 --- a/stratos-ui-release/packages/backend/spec +++ b/stratos-ui-release/packages/backend/spec @@ -7,3 +7,4 @@ dependencies: files: - stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} - stratos-ui/{build,components}/**/* +- stratos-ui/deploy/db From af4c518e8288ac87de9b049163096edbdb6437b0 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Fri, 25 Aug 2017 10:49:07 +0100 Subject: [PATCH 18/27] Updated post-deploy script --- stratos-ui-release/bosh-lite/deployment.yml | 2 +- stratos-ui-release/jobs/backend/spec | 3 +- .../jobs/backend/templates/backend_ctl.erb | 3 +- .../backend/templates/config.properties.erb | 2 +- .../jobs/backend/templates/dbconf.yml.erb | 3 + .../jobs/backend/templates/post-deploy.erb | 55 ++++++++----------- .../packages/backend/pre_packaging | 4 +- stratos-ui-release/packages/backend/spec | 2 +- 8 files changed, 35 insertions(+), 39 deletions(-) create mode 100644 stratos-ui-release/jobs/backend/templates/dbconf.yml.erb diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/stratos-ui-release/bosh-lite/deployment.yml index baebe3dd73..d0e2046a66 100644 --- a/stratos-ui-release/bosh-lite/deployment.yml +++ b/stratos-ui-release/bosh-lite/deployment.yml @@ -186,7 +186,7 @@ instance_groups: mysql_user: stratos mysql_admin_user: root mysql_admin_password: changeme - mysql_passwd: strat0s + mysql_user_password: strat0s mysql_db: stratos-db mysql_host: 10.4.21.245 mysql_port: 3306 diff --git a/stratos-ui-release/jobs/backend/spec b/stratos-ui-release/jobs/backend/spec index fe3e370b95..186119617f 100644 --- a/stratos-ui-release/jobs/backend/spec +++ b/stratos-ui-release/jobs/backend/spec @@ -4,6 +4,7 @@ templates: config.properties.erb: config/config.properties ssl_cert.erb: config/dev-certs/pproxy.crt ssl_cert_key.erb: config/dev-certs/pproxy.key + dbconf.yml.erb: /config/dbconf.yml backend_ctl.erb: bin/backend_ctl pre-start.erb: bin/pre-start post-deploy.erb: bin/post-deploy @@ -47,7 +48,7 @@ properties: description: "Use mysql, need to specify relevant mysql settings" stratos_ui.backend.mysql_user: description: "mysql User" - stratos_ui.backend.mysql_user_passwd: + stratos_ui.backend.mysql_user_password: description: "mysql user password" stratos_ui.backend.mysql_db: description: "Stratos UI Console DB name" diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb index 920c173f1e..e73949846b 100644 --- a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb +++ b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -24,9 +24,8 @@ case $1 in pid_guard "$PIDFILE" "Nginx" cp -r $CONFIG_DIR/* /var/vcap/packages/backend/ + cp -f $CONFIG_DIR/dbconf.yml /var/vcap/packages/backend/deploy/db/dbconf.yml cd /var/vcap/packages/backend/ - mkdir -p deploy/db - touch deploy/db/sqlite_schema.sql chmod +x portal-proxy echo $$ > "$PIDFILE" diff --git a/stratos-ui-release/jobs/backend/templates/config.properties.erb b/stratos-ui-release/jobs/backend/templates/config.properties.erb index 4b24aadd03..bb4340d25f 100644 --- a/stratos-ui-release/jobs/backend/templates/config.properties.erb +++ b/stratos-ui-release/jobs/backend/templates/config.properties.erb @@ -15,7 +15,7 @@ SESSION_STORE_SECRET=<%= p('stratos_ui.backend.session_store_secret') %> <% if p('stratos_ui.backend.use_mysql') == true %> DATABASE_PROVIDER=mysql DB_USER=<%= p('stratos_ui.backend.mysql_user') %> -DB_PASSWORD=<%= p('stratos_ui.backend.mysql_user_passwd') %> +DB_PASSWORD=<%= p('stratos_ui.backend.mysql_user_password') %> DB_DATABASE_NAME=<%= p('stratos_ui.backend.mysql_db') %> DB_HOST=<%= p('stratos_ui.backend.mysql_host') %> DB_PORT=<%= p('stratos_ui.backend.mysql_port') %> diff --git a/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb b/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb new file mode 100644 index 0000000000..d16f63c6d1 --- /dev/null +++ b/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb @@ -0,0 +1,3 @@ +bosh-mysql: + driver: mysql + open: <%= p('stratos_ui.backend.mysql_user') %>:<%= p('stratos_ui.backend.mysql_user_password') %>@tcp(<%= p('stratos_ui.backend.mysql_host') %>:<%= p('stratos_ui.backend.mysql_port') %>)/<%= p('stratos_ui.backend.mysql_db') %>?parseTime=true diff --git a/stratos-ui-release/jobs/backend/templates/post-deploy.erb b/stratos-ui-release/jobs/backend/templates/post-deploy.erb index d3026fb716..83f763a334 100644 --- a/stratos-ui-release/jobs/backend/templates/post-deploy.erb +++ b/stratos-ui-release/jobs/backend/templates/post-deploy.erb @@ -1,7 +1,7 @@ #!/bin/bash set -e - +# TODO check if installation is required # Check Git is installed echo "Installing Git and MariaDB Client" apt-get update @@ -20,72 +20,63 @@ go get github.com/go-sql-driver/mysql function execStatement { stmt=$1 - echo "Executing: mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -pxxxxxxxxxxxx -e $stmt" - mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -p<%= p('stratos_ui.backend.mysql_admin_password') %> -e $stmt + echo "Executing: mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -pxxxxxxxxxxxx -e \"$stmt\"" + mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -p<%= p('stratos_ui.backend.mysql_admin_password') %> -e "$stmt" } -stratosDbExists=$(execStatement "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$DB_DATABASE_NAME';") -DBCONF_KEY=mariadb-k8s +echo "Checking if DB exists" + +stratosDbExists=$(execStatement "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '<%= p('stratos_ui.backend.mysql_db') %>';") # Create DB if neccessary if [ -z "$stratosDbExists" ] ; then - echo "Creating database $DB_DATABASE_NAME" - execStatement "CREATE DATABASE \"$DB_DATABASE_NAME\";" - echo "Creating user $DB_USER" - execStatement "CREATE USER $DB_USER IDENTIFIED BY '$DB_PASSWORD';" + echo "Creating database <%= p('stratos_ui.backend.mysql_db') %>" + execStatement "CREATE DATABASE \"<%= p('stratos_ui.backend.mysql_db') %>\";" + echo "Creating user <%= p('stratos_ui.backend.mysql_user') %>" + execStatement "CREATE USER <%= p('stratos_ui.backend.mysql_user') %> IDENTIFIED BY '<%= p('stratos_ui.backend.mysql_user_password') %>';" - echo "Granting privs for $DB_DATABASE_NAME to $DB_USER" - execStatement "GRANT ALL PRIVILEGES ON DATABASE \"$DB_DATABASE_NAME\" TO $DB_USER;" - DBCONF_KEY=mariadb-k8s + echo "Granting privs for <%= p('stratos_ui.backend.mysql_db') %> to <%= p('stratos_ui.backend.mysql_user') %>" + execStatement "GRANT ALL PRIVILEGES ON DATABASE \"<%= p('stratos_ui.backend.mysql_db') %>\" TO <%= p('stratos_ui.backend.mysql_user') %>;" else - echo "$DB_DATABASE_NAME already exists" + echo "<%= p('stratos_ui.backend.mysql_db') %> already exists" fi # Migrate the database if necessary echo "Checking database to see if migration is necessary." -echo "DBCONFIG: $DBCONF_KEY" -echo "Connection string: $DB_USER:$DB_PASSWORD@tcp(<%= p('stratos_ui.backend.mysql_host') %>:<%= p('stratos_ui.backend.mysql_port') %>)/$DB_DATABASE_NAME?parseTime=true" +echo "Connection string: <%= p('stratos_ui.backend.mysql_user') %>:<%= p('stratos_ui.backend.mysql_user_password') %>@tcp(<%= p('stratos_ui.backend.mysql_host') %>:<%= p('stratos_ui.backend.mysql_port') %>)/<%= p('stratos_ui.backend.mysql_db') %>?parseTime=true" # Check the version echo "Checking database version." -goose --env=$DBCONF_KEY dbversion +goose -path=/var/vcap/packages/backend/deploy/db -env=bosh-mysql dbversion # Check the status echo "Checking database status." -goose --env=$DBCONF_KEY status +goose -path=/var/vcap/packages/backend/deploy/db -env=bosh-mysql status # Run migrations echo "Attempting database migrations." -goose --env=$DBCONF_KEY up +goose -path=/var/vcap/packages/backend/deploy/db -env=bosh-mysql up # CHeck the status echo "Checking database status." -goose --env=$DBCONF_KEY status +goose -path=/var/vcap/packages/backend/deploy/db -env=bosh-mysql status # Check the version echo "Checking database version." -goose --env=$DBCONF_KEY dbversion +goose -path /var/vcap/packages/backend/deploy/db -env=bosh-mysql dbversion echo "Database operation(s) complete." # Check if Upgrade Lock file exists -if [ ! -f "/$UPGRADE_VOLUME/$UPGRADE_LOCK_FILENAME" ]; then +if [ ! -f "<%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %>" ]; then exit 1 fi # Remove the lock file on the shared volume -echo "Removing the $UPGRADE_LOCK_FILENAME file from the shared upgrade volume $UPGRADE_VOLUME." -rm /$UPGRADE_VOLUME/$UPGRADE_LOCK_FILENAME || true +echo "Removing the <%= p('stratos_ui.backend.upgrade_volume_file') %> file from the shared upgrade volume <%= p('stratos_ui.backend.upgrade_volume_path') %>." +rm <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> || true echo "Removed the upgrade lock file." -# If DO_NOT_QUIT is set, don't quit script -# This is only used in toy kubernetes deployments with no shared volume -if [ "${DO_NOT_QUIT:-false}" = "false" ]; then - echo "Running in shared volume mode, exiting..." - exit 0 -else - echo "Running in 'DO NOT QUIT' mode" - while true; do echo ''; sleep 5; done -fi \ No newline at end of file +exit 0 \ No newline at end of file diff --git a/stratos-ui-release/packages/backend/pre_packaging b/stratos-ui-release/packages/backend/pre_packaging index f300537e7b..ddc75aa3a8 100644 --- a/stratos-ui-release/packages/backend/pre_packaging +++ b/stratos-ui-release/packages/backend/pre_packaging @@ -10,7 +10,9 @@ npm install export PATH=$PATH:$PWD/node_modules/.bin npm run build-backend -find ../stratos-ui -type d ! -path '*/outputs*' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf +find ../stratos-ui/deploy -type d ! -path '../stratos-ui/deploy' ! -path '*/db' -maxdepth 1 | xargs rm -rf + +find ../stratos-ui -type d ! -path '*/outputs*' ! -path '*/deploy' ! -path '../stratos-ui' -maxdepth 1 | xargs rm -rf # Delete top level files rm -f *.* mv outputs/* . diff --git a/stratos-ui-release/packages/backend/spec b/stratos-ui-release/packages/backend/spec index d11380062b..30f5d14a64 100644 --- a/stratos-ui-release/packages/backend/spec +++ b/stratos-ui-release/packages/backend/spec @@ -7,4 +7,4 @@ dependencies: files: - stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} - stratos-ui/{build,components}/**/* -- stratos-ui/deploy/db +- stratos-ui/deploy/db/migrations/**/*.go From 7f978997b1ae89cd4a82858da8e0ede58b6cb36c Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Fri, 25 Aug 2017 11:48:00 +0100 Subject: [PATCH 19/27] Update templates and README.md --- stratos-ui-release/README.md | 44 ++++++++++++++++++- stratos-ui-release/bosh-lite/deployment.yml | 18 ++++---- .../jobs/backend/templates/backend_ctl.erb | 7 +++ .../jobs/backend/templates/post-deploy.erb | 8 +--- stratos-ui-release/packages/backend/packaging | 2 +- .../packages/backend/pre_packaging | 9 ++++ 6 files changed, 69 insertions(+), 19 deletions(-) diff --git a/stratos-ui-release/README.md b/stratos-ui-release/README.md index 57898f0729..53f459cc56 100644 --- a/stratos-ui-release/README.md +++ b/stratos-ui-release/README.md @@ -1,5 +1,7 @@ ## Deploying the BOSH release +**Note:** BOSH release is currently experimental. It currently has only been tested in a BOSH Lite environment, any suggestions for improvements to support other BOSH environments are welcome. + To build and deploy the BOSH release you will require a BOSH director. If you don't have one available follow these instructions to setup BOSH lite [here](https://bosh.io/docs/bosh-lite.html). The rest of the instruction assume that a BOSH lite environment is being used to deploy the chart. @@ -31,6 +33,44 @@ $ bosh -e vbox upload-release -d stratos-ui 5. Deploy the release A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. + + a. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. + ``` + uaa_address: https://my-uaa:8080 + console_admin_scope: cloud_controller.admin + console_uaa_client: cf + ``` + + b. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The followign are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. + ``` + use_mysql: true + use_sqlite: false + mysql_user: stratos + mysql_admin_user: root + mysql_admin_password: changeme + mysql_user_password: strat0s + mysql_db: stratos-db + mysql_host: 127.0.0.1 + mysql_port: 3306 + + ``` + + To use SQLite, use the following and comment out the mysql parameters. + ``` + # use_mysql: true + use_sqlite: true + # mysql_user: stratos + # mysql_admin_user: root + # mysql_admin_password: changeme + # mysql_user_password: strat0s + # mysql_db: stratos-db + # mysql_host: 127.0.0.1 + # mysql_port: 3306 + + ``` + +To deploy you deployment manifest execute the following. + ``` $ bosh -e vbox -d stratos-ui deploy bosh-lite/deployment.yml ``` @@ -51,7 +91,7 @@ Instance Process State AZ IPs backend/68580d76-a241-4de2-b246-82d0a184c9bb running - 10.0.16.103 frontend/477c94ef-3138-416c-97d7-c09682e6d5dd running - 10.0.16.4 -2 instances +2 instances Succeeded -``` \ No newline at end of file +``` diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/stratos-ui-release/bosh-lite/deployment.yml index d0e2046a66..fc14c3d333 100644 --- a/stratos-ui-release/bosh-lite/deployment.yml +++ b/stratos-ui-release/bosh-lite/deployment.yml @@ -181,15 +181,15 @@ instance_groups: encryption_key_volume: /var/vcap/store/backend encryption_key_filename: key session_store_secret: foo - use_mysql: true - use_sqlite: false - mysql_user: stratos - mysql_admin_user: root - mysql_admin_password: changeme - mysql_user_password: strat0s - mysql_db: stratos-db - mysql_host: 10.4.21.245 - mysql_port: 3306 + use_mysql: false + use_sqlite: true + #mysql_user: + #mysql_admin_user: + #mysql_admin_password: + #mysql_user_password: + #mysql_db: + #mysql_host: + #mysql_port: networks: - name: stratos-net static_ips: [10.0.16.103] diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb index e73949846b..5507dedc80 100644 --- a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb +++ b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -24,7 +24,14 @@ case $1 in pid_guard "$PIDFILE" "Nginx" cp -r $CONFIG_DIR/* /var/vcap/packages/backend/ + + <% if p('stratos_ui.backend.use_mysql') == true %> cp -f $CONFIG_DIR/dbconf.yml /var/vcap/packages/backend/deploy/db/dbconf.yml + <% end %> + + <% if p('stratos_ui.backend.use_sqlite') == true %> + touch deploy/db/sqlite_schema.sql + <% end %> cd /var/vcap/packages/backend/ chmod +x portal-proxy diff --git a/stratos-ui-release/jobs/backend/templates/post-deploy.erb b/stratos-ui-release/jobs/backend/templates/post-deploy.erb index 83f763a334..fa24d8271c 100644 --- a/stratos-ui-release/jobs/backend/templates/post-deploy.erb +++ b/stratos-ui-release/jobs/backend/templates/post-deploy.erb @@ -9,15 +9,9 @@ apt-get install -y git mariadb-client echo "PWD: $PWD" export GOROOT="/var/vcap/packages/golang/" -export GOPATH="/tmp" +export GOPATH="/var/vcap/packages/backend/go" export PATH=$GOROOT/bin:$GOPATH/bin:$PATH -echo "Installing Goose and dependant libraries" -go get bitbucket.org/liamstask/goose/cmd/goose -go get bitbucket.org/liamstask/goose/lib/goose -go get github.com/go-sql-driver/mysql - - function execStatement { stmt=$1 echo "Executing: mysql -u <%= p('stratos_ui.backend.mysql_admin_user') %> -h<%= p('stratos_ui.backend.mysql_host') %> -P <%= p('stratos_ui.backend.mysql_port') %> -pxxxxxxxxxxxx -e \"$stmt\"" diff --git a/stratos-ui-release/packages/backend/packaging b/stratos-ui-release/packages/backend/packaging index 07dd36979c..818ec980f2 100644 --- a/stratos-ui-release/packages/backend/packaging +++ b/stratos-ui-release/packages/backend/packaging @@ -1,4 +1,4 @@ # abort script on any command that exits with a non zero value set -e -cp -a ./stratos-ui/* ${BOSH_INSTALL_TARGET} +cp -ar ./stratos-ui/* ${BOSH_INSTALL_TARGET} diff --git a/stratos-ui-release/packages/backend/pre_packaging b/stratos-ui-release/packages/backend/pre_packaging index ddc75aa3a8..e5d8cd7991 100644 --- a/stratos-ui-release/packages/backend/pre_packaging +++ b/stratos-ui-release/packages/backend/pre_packaging @@ -19,3 +19,12 @@ mv outputs/* . rm -rf outputs +# The following packages are required for the post-deploy task +mkdir go +export GOPATH=${PWD}/go + +# Fetch libraries +go get bitbucket.org/liamstask/goose/cmd/goose +go get bitbucket.org/liamstask/goose/lib/goose +go get github.com/go-sql-driver/mysql + From 9f7698e07cc3005feeefa01c42f0581e724ce521 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Fri, 8 Sep 2017 16:41:56 +0100 Subject: [PATCH 20/27] Update BOSH templates --- stratos-ui-release/bosh-lite/deployment.yml | 14 +++++++------- .../jobs/backend/templates/dbconf.yml.erb | 2 ++ .../jobs/backend/templates/post-deploy.erb | 4 +++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/stratos-ui-release/bosh-lite/deployment.yml index fc14c3d333..6ad968b327 100644 --- a/stratos-ui-release/bosh-lite/deployment.yml +++ b/stratos-ui-release/bosh-lite/deployment.yml @@ -183,13 +183,13 @@ instance_groups: session_store_secret: foo use_mysql: false use_sqlite: true - #mysql_user: - #mysql_admin_user: - #mysql_admin_password: - #mysql_user_password: - #mysql_db: - #mysql_host: - #mysql_port: + # mysql_user: + # mysql_admin_user: + # mysql_admin_password: + # mysql_user_password: + # mysql_db: + # mysql_host: + # mysql_port: networks: - name: stratos-net static_ips: [10.0.16.103] diff --git a/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb b/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb index d16f63c6d1..d042ec7295 100644 --- a/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb +++ b/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb @@ -1,3 +1,5 @@ +<% if p('stratos_ui.backend.use_mysql') == true %> bosh-mysql: driver: mysql open: <%= p('stratos_ui.backend.mysql_user') %>:<%= p('stratos_ui.backend.mysql_user_password') %>@tcp(<%= p('stratos_ui.backend.mysql_host') %>:<%= p('stratos_ui.backend.mysql_port') %>)/<%= p('stratos_ui.backend.mysql_db') %>?parseTime=true +<% end %> \ No newline at end of file diff --git a/stratos-ui-release/jobs/backend/templates/post-deploy.erb b/stratos-ui-release/jobs/backend/templates/post-deploy.erb index fa24d8271c..ed705db9ee 100644 --- a/stratos-ui-release/jobs/backend/templates/post-deploy.erb +++ b/stratos-ui-release/jobs/backend/templates/post-deploy.erb @@ -1,4 +1,5 @@ #!/bin/bash +<% if p('stratos_ui.backend.use_mysql') == true %> set -e # TODO check if installation is required @@ -73,4 +74,5 @@ rm <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend. echo "Removed the upgrade lock file." -exit 0 \ No newline at end of file +exit 0 +<% end %> From 9b8c9dae6f8876d063d645d6526a59325316f041 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 11 Sep 2017 14:01:41 +0100 Subject: [PATCH 21/27] Don't write upgrade-lock file when running with SQLlite --- stratos-ui-release/jobs/backend/templates/pre-start.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stratos-ui-release/jobs/backend/templates/pre-start.erb b/stratos-ui-release/jobs/backend/templates/pre-start.erb index 2686569bc8..9ac3a191ab 100644 --- a/stratos-ui-release/jobs/backend/templates/pre-start.erb +++ b/stratos-ui-release/jobs/backend/templates/pre-start.erb @@ -2,11 +2,13 @@ set -e # Step 1 - Set the lock file on the shared volume +<% if p('stratos_ui.backend.use_mysql') == true %> mkdir -p <%= p('stratos_ui.backend.upgrade_volume_path') %> touch <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> chmod 440 <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> echo "Created the upgrade lock file." +<% end %> # Step 2 - Create an AES-256 compliant encryption key # in a file on a shared volume. From 030a91271464286e0ae427456be487d3e18efdab Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 11 Sep 2017 14:12:52 +0100 Subject: [PATCH 22/27] Create directory --- stratos-ui-release/jobs/backend/templates/pre-start.erb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stratos-ui-release/jobs/backend/templates/pre-start.erb b/stratos-ui-release/jobs/backend/templates/pre-start.erb index 9ac3a191ab..3452e8278a 100644 --- a/stratos-ui-release/jobs/backend/templates/pre-start.erb +++ b/stratos-ui-release/jobs/backend/templates/pre-start.erb @@ -2,11 +2,10 @@ set -e # Step 1 - Set the lock file on the shared volume -<% if p('stratos_ui.backend.use_mysql') == true %> mkdir -p <%= p('stratos_ui.backend.upgrade_volume_path') %> +<% if p('stratos_ui.backend.use_mysql') == true %> touch <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> chmod 440 <%= p('stratos_ui.backend.upgrade_volume_path') %>/<%= p('stratos_ui.backend.upgrade_volume_file') %> - echo "Created the upgrade lock file." <% end %> From 09b91f1a5eade792ac8ffceed423f83a9e03c083 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 11 Sep 2017 14:55:22 +0100 Subject: [PATCH 23/27] Update README.md --- stratos-ui-release/README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/stratos-ui-release/README.md b/stratos-ui-release/README.md index 53f459cc56..74f00310d3 100644 --- a/stratos-ui-release/README.md +++ b/stratos-ui-release/README.md @@ -35,14 +35,14 @@ $ bosh -e vbox upload-release -d stratos-ui A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. a. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. - ``` +``` uaa_address: https://my-uaa:8080 console_admin_scope: cloud_controller.admin console_uaa_client: cf - ``` +``` b. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The followign are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. - ``` +``` use_mysql: true use_sqlite: false mysql_user: stratos @@ -53,10 +53,10 @@ A sample bosh-lite deployment manifest has been provided in `bosh-lite/deploymen mysql_host: 127.0.0.1 mysql_port: 3306 - ``` +``` - To use SQLite, use the following and comment out the mysql parameters. - ``` + To use SQLite, use the following and comment out the mysql parameters. +``` # use_mysql: true use_sqlite: true # mysql_user: stratos @@ -66,7 +66,6 @@ A sample bosh-lite deployment manifest has been provided in `bosh-lite/deploymen # mysql_db: stratos-db # mysql_host: 127.0.0.1 # mysql_port: 3306 - ``` To deploy you deployment manifest execute the following. From 3fb86059db208a7151d9949e04115d0d0a7c3a40 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Mon, 11 Sep 2017 15:00:13 +0100 Subject: [PATCH 24/27] Add Sqlite DB migration script --- stratos-ui-release/jobs/backend/templates/backend_ctl.erb | 3 --- stratos-ui-release/packages/backend/spec | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb index 5507dedc80..0cf43e7572 100644 --- a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb +++ b/stratos-ui-release/jobs/backend/templates/backend_ctl.erb @@ -29,9 +29,6 @@ case $1 in cp -f $CONFIG_DIR/dbconf.yml /var/vcap/packages/backend/deploy/db/dbconf.yml <% end %> - <% if p('stratos_ui.backend.use_sqlite') == true %> - touch deploy/db/sqlite_schema.sql - <% end %> cd /var/vcap/packages/backend/ chmod +x portal-proxy diff --git a/stratos-ui-release/packages/backend/spec b/stratos-ui-release/packages/backend/spec index 30f5d14a64..cc4df55676 100644 --- a/stratos-ui-release/packages/backend/spec +++ b/stratos-ui-release/packages/backend/spec @@ -8,3 +8,4 @@ files: - stratos-ui/{package.json,plugins.json,bower.json,gulpfile.js} - stratos-ui/{build,components}/**/* - stratos-ui/deploy/db/migrations/**/*.go +- stratos-ui/deploy/db/sqlite_schema.sql From 3c5782604ff99265c9f3cfa8a2a6f6dc84e84104 Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 12 Sep 2017 10:57:57 +0100 Subject: [PATCH 25/27] Moved bosh-deploy --- .gitignore | 6 +-- .../stratos-ui-release}/README.md | 51 ++++++++++--------- .../bosh-lite/deployment.yml | 0 .../stratos-ui-release}/config/blobs.yml | 0 .../stratos-ui-release}/config/final.yml | 0 .../stratos-ui-release}/jobs/backend/monit | 0 .../stratos-ui-release}/jobs/backend/spec | 0 .../jobs/backend/templates/backend_ctl.erb | 0 .../backend/templates/config.properties.erb | 0 .../jobs/backend/templates/dbconf.yml.erb | 0 .../jobs/backend/templates/post-deploy.erb | 0 .../jobs/backend/templates/pre-start.erb | 0 .../jobs/backend/templates/ssl_cert.erb | 0 .../jobs/backend/templates/ssl_cert_key.erb | 0 .../stratos-ui-release}/jobs/frontend/monit | 0 .../stratos-ui-release}/jobs/frontend/spec | 0 .../jobs/frontend/templates/nginx.conf.erb | 0 .../jobs/frontend/templates/nginx_ctl.erb | 0 .../jobs/frontend/templates/ssl_cert.erb | 0 .../jobs/frontend/templates/ssl_cert_key.erb | 0 .../packages/backend/packaging | 0 .../packages/backend/pre_packaging | 0 .../stratos-ui-release}/packages/backend/spec | 0 .../packages/frontend/packaging | 0 .../packages/frontend/pre_packaging | 0 .../packages/frontend/spec | 0 .../packages/golang/packaging | 0 .../stratos-ui-release}/packages/golang/spec | 0 .../packages/nginx/README.md | 0 .../packages/nginx/packaging | 0 .../stratos-ui-release}/packages/nginx/spec | 0 .../packages/utils/packaging | 0 .../stratos-ui-release}/packages/utils/spec | 0 .../stratos-ui-release}/src/stratos-ui | 0 .../src/utils/pid_utils.sh | 0 .../src/utils/syslog_utils.sh | 0 36 files changed, 29 insertions(+), 28 deletions(-) rename {stratos-ui-release => deploy/stratos-ui-release}/README.md (83%) rename {stratos-ui-release => deploy/stratos-ui-release}/bosh-lite/deployment.yml (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/config/blobs.yml (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/config/final.yml (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/monit (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/backend_ctl.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/config.properties.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/dbconf.yml.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/post-deploy.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/pre-start.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/ssl_cert.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/backend/templates/ssl_cert_key.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/monit (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/templates/nginx.conf.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/templates/nginx_ctl.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/templates/ssl_cert.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/jobs/frontend/templates/ssl_cert_key.erb (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/backend/packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/backend/pre_packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/backend/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/frontend/packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/frontend/pre_packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/frontend/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/golang/packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/golang/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/nginx/README.md (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/nginx/packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/nginx/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/utils/packaging (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/packages/utils/spec (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/src/stratos-ui (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/src/utils/pid_utils.sh (100%) rename {stratos-ui-release => deploy/stratos-ui-release}/src/utils/syslog_utils.sh (100%) diff --git a/.gitignore b/.gitignore index 0c270b819d..580915809c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,6 @@ deploy/ci/secrets.yml deploy/kubernetes/values.yaml outputs/ -stratos-ui-release/.dev_builds -stratos-ui-release/blobs -stratos-ui-release/dev_releases/ +deploy/stratos-ui-release/.dev_builds +deploy/stratos-ui-release/blobs +deploy/stratos-ui-release/dev_releases/ diff --git a/stratos-ui-release/README.md b/deploy/stratos-ui-release/README.md similarity index 83% rename from stratos-ui-release/README.md rename to deploy/stratos-ui-release/README.md index 74f00310d3..dbf2ae0dd5 100644 --- a/stratos-ui-release/README.md +++ b/deploy/stratos-ui-release/README.md @@ -34,39 +34,40 @@ $ bosh -e vbox upload-release -d stratos-ui 5. Deploy the release A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. - a. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. +5.1. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. ``` - uaa_address: https://my-uaa:8080 - console_admin_scope: cloud_controller.admin - console_uaa_client: cf +uaa_address: https://my-uaa:8080 +console_admin_scope: cloud_controller.admin +console_uaa_client: cf ``` - b. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The followign are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. +5.2. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The followign are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. + ``` - use_mysql: true - use_sqlite: false - mysql_user: stratos - mysql_admin_user: root - mysql_admin_password: changeme - mysql_user_password: strat0s - mysql_db: stratos-db - mysql_host: 127.0.0.1 - mysql_port: 3306 +use_mysql: true +use_sqlite: false +mysql_user: stratos +mysql_admin_user: root +mysql_admin_password: changeme +mysql_user_password: strat0s +mysql_db: stratos-db +mysql_host: 127.0.0.1 +mysql_port: 3306 ``` - To use SQLite, use the following and comment out the mysql parameters. +To use SQLite, use the following and comment out the mysql parameters. +``` +# use_mysql: true +use_sqlite: true +# mysql_user: stratos +# mysql_admin_user: root +# mysql_admin_password: changeme +# mysql_user_password: strat0s +# mysql_db: stratos-db +# mysql_host: 127.0.0.1 +# mysql_port: 3306 ``` - # use_mysql: true - use_sqlite: true - # mysql_user: stratos - # mysql_admin_user: root - # mysql_admin_password: changeme - # mysql_user_password: strat0s - # mysql_db: stratos-db - # mysql_host: 127.0.0.1 - # mysql_port: 3306 - ``` To deploy you deployment manifest execute the following. diff --git a/stratos-ui-release/bosh-lite/deployment.yml b/deploy/stratos-ui-release/bosh-lite/deployment.yml similarity index 100% rename from stratos-ui-release/bosh-lite/deployment.yml rename to deploy/stratos-ui-release/bosh-lite/deployment.yml diff --git a/stratos-ui-release/config/blobs.yml b/deploy/stratos-ui-release/config/blobs.yml similarity index 100% rename from stratos-ui-release/config/blobs.yml rename to deploy/stratos-ui-release/config/blobs.yml diff --git a/stratos-ui-release/config/final.yml b/deploy/stratos-ui-release/config/final.yml similarity index 100% rename from stratos-ui-release/config/final.yml rename to deploy/stratos-ui-release/config/final.yml diff --git a/stratos-ui-release/jobs/backend/monit b/deploy/stratos-ui-release/jobs/backend/monit similarity index 100% rename from stratos-ui-release/jobs/backend/monit rename to deploy/stratos-ui-release/jobs/backend/monit diff --git a/stratos-ui-release/jobs/backend/spec b/deploy/stratos-ui-release/jobs/backend/spec similarity index 100% rename from stratos-ui-release/jobs/backend/spec rename to deploy/stratos-ui-release/jobs/backend/spec diff --git a/stratos-ui-release/jobs/backend/templates/backend_ctl.erb b/deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/backend_ctl.erb rename to deploy/stratos-ui-release/jobs/backend/templates/backend_ctl.erb diff --git a/stratos-ui-release/jobs/backend/templates/config.properties.erb b/deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/config.properties.erb rename to deploy/stratos-ui-release/jobs/backend/templates/config.properties.erb diff --git a/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb b/deploy/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/dbconf.yml.erb rename to deploy/stratos-ui-release/jobs/backend/templates/dbconf.yml.erb diff --git a/stratos-ui-release/jobs/backend/templates/post-deploy.erb b/deploy/stratos-ui-release/jobs/backend/templates/post-deploy.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/post-deploy.erb rename to deploy/stratos-ui-release/jobs/backend/templates/post-deploy.erb diff --git a/stratos-ui-release/jobs/backend/templates/pre-start.erb b/deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/pre-start.erb rename to deploy/stratos-ui-release/jobs/backend/templates/pre-start.erb diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert.erb b/deploy/stratos-ui-release/jobs/backend/templates/ssl_cert.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/ssl_cert.erb rename to deploy/stratos-ui-release/jobs/backend/templates/ssl_cert.erb diff --git a/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb b/deploy/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb similarity index 100% rename from stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb rename to deploy/stratos-ui-release/jobs/backend/templates/ssl_cert_key.erb diff --git a/stratos-ui-release/jobs/frontend/monit b/deploy/stratos-ui-release/jobs/frontend/monit similarity index 100% rename from stratos-ui-release/jobs/frontend/monit rename to deploy/stratos-ui-release/jobs/frontend/monit diff --git a/stratos-ui-release/jobs/frontend/spec b/deploy/stratos-ui-release/jobs/frontend/spec similarity index 100% rename from stratos-ui-release/jobs/frontend/spec rename to deploy/stratos-ui-release/jobs/frontend/spec diff --git a/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb b/deploy/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/nginx.conf.erb rename to deploy/stratos-ui-release/jobs/frontend/templates/nginx.conf.erb diff --git a/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb b/deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb rename to deploy/stratos-ui-release/jobs/frontend/templates/nginx_ctl.erb diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb b/deploy/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/ssl_cert.erb rename to deploy/stratos-ui-release/jobs/frontend/templates/ssl_cert.erb diff --git a/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb b/deploy/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb similarity index 100% rename from stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb rename to deploy/stratos-ui-release/jobs/frontend/templates/ssl_cert_key.erb diff --git a/stratos-ui-release/packages/backend/packaging b/deploy/stratos-ui-release/packages/backend/packaging similarity index 100% rename from stratos-ui-release/packages/backend/packaging rename to deploy/stratos-ui-release/packages/backend/packaging diff --git a/stratos-ui-release/packages/backend/pre_packaging b/deploy/stratos-ui-release/packages/backend/pre_packaging similarity index 100% rename from stratos-ui-release/packages/backend/pre_packaging rename to deploy/stratos-ui-release/packages/backend/pre_packaging diff --git a/stratos-ui-release/packages/backend/spec b/deploy/stratos-ui-release/packages/backend/spec similarity index 100% rename from stratos-ui-release/packages/backend/spec rename to deploy/stratos-ui-release/packages/backend/spec diff --git a/stratos-ui-release/packages/frontend/packaging b/deploy/stratos-ui-release/packages/frontend/packaging similarity index 100% rename from stratos-ui-release/packages/frontend/packaging rename to deploy/stratos-ui-release/packages/frontend/packaging diff --git a/stratos-ui-release/packages/frontend/pre_packaging b/deploy/stratos-ui-release/packages/frontend/pre_packaging similarity index 100% rename from stratos-ui-release/packages/frontend/pre_packaging rename to deploy/stratos-ui-release/packages/frontend/pre_packaging diff --git a/stratos-ui-release/packages/frontend/spec b/deploy/stratos-ui-release/packages/frontend/spec similarity index 100% rename from stratos-ui-release/packages/frontend/spec rename to deploy/stratos-ui-release/packages/frontend/spec diff --git a/stratos-ui-release/packages/golang/packaging b/deploy/stratos-ui-release/packages/golang/packaging similarity index 100% rename from stratos-ui-release/packages/golang/packaging rename to deploy/stratos-ui-release/packages/golang/packaging diff --git a/stratos-ui-release/packages/golang/spec b/deploy/stratos-ui-release/packages/golang/spec similarity index 100% rename from stratos-ui-release/packages/golang/spec rename to deploy/stratos-ui-release/packages/golang/spec diff --git a/stratos-ui-release/packages/nginx/README.md b/deploy/stratos-ui-release/packages/nginx/README.md similarity index 100% rename from stratos-ui-release/packages/nginx/README.md rename to deploy/stratos-ui-release/packages/nginx/README.md diff --git a/stratos-ui-release/packages/nginx/packaging b/deploy/stratos-ui-release/packages/nginx/packaging similarity index 100% rename from stratos-ui-release/packages/nginx/packaging rename to deploy/stratos-ui-release/packages/nginx/packaging diff --git a/stratos-ui-release/packages/nginx/spec b/deploy/stratos-ui-release/packages/nginx/spec similarity index 100% rename from stratos-ui-release/packages/nginx/spec rename to deploy/stratos-ui-release/packages/nginx/spec diff --git a/stratos-ui-release/packages/utils/packaging b/deploy/stratos-ui-release/packages/utils/packaging similarity index 100% rename from stratos-ui-release/packages/utils/packaging rename to deploy/stratos-ui-release/packages/utils/packaging diff --git a/stratos-ui-release/packages/utils/spec b/deploy/stratos-ui-release/packages/utils/spec similarity index 100% rename from stratos-ui-release/packages/utils/spec rename to deploy/stratos-ui-release/packages/utils/spec diff --git a/stratos-ui-release/src/stratos-ui b/deploy/stratos-ui-release/src/stratos-ui similarity index 100% rename from stratos-ui-release/src/stratos-ui rename to deploy/stratos-ui-release/src/stratos-ui diff --git a/stratos-ui-release/src/utils/pid_utils.sh b/deploy/stratos-ui-release/src/utils/pid_utils.sh similarity index 100% rename from stratos-ui-release/src/utils/pid_utils.sh rename to deploy/stratos-ui-release/src/utils/pid_utils.sh diff --git a/stratos-ui-release/src/utils/syslog_utils.sh b/deploy/stratos-ui-release/src/utils/syslog_utils.sh similarity index 100% rename from stratos-ui-release/src/utils/syslog_utils.sh rename to deploy/stratos-ui-release/src/utils/syslog_utils.sh From 075a806c788a09fc4e36e0d0c8b64ca18d454abd Mon Sep 17 00:00:00 2001 From: Irfan Habib Date: Tue, 12 Sep 2017 12:54:03 +0100 Subject: [PATCH 26/27] Updated symlink --- deploy/stratos-ui-release/src/stratos-ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/stratos-ui-release/src/stratos-ui b/deploy/stratos-ui-release/src/stratos-ui index 6581736d62..1b20c9fb81 120000 --- a/deploy/stratos-ui-release/src/stratos-ui +++ b/deploy/stratos-ui-release/src/stratos-ui @@ -1 +1 @@ -../../ \ No newline at end of file +../../../ \ No newline at end of file From 4ef5dedcc8ee4e185d6364f2f50b6cdd1f8e6987 Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Tue, 12 Sep 2017 13:37:27 +0100 Subject: [PATCH 27/27] Tweaks to layout of the readme --- deploy/stratos-ui-release/README.md | 149 ++++++++++++++-------------- 1 file changed, 75 insertions(+), 74 deletions(-) diff --git a/deploy/stratos-ui-release/README.md b/deploy/stratos-ui-release/README.md index dbf2ae0dd5..183523401d 100644 --- a/deploy/stratos-ui-release/README.md +++ b/deploy/stratos-ui-release/README.md @@ -9,89 +9,90 @@ The rest of the instruction assume that a BOSH lite environment is being used to ### Deploying in a BOSH lite environment 1. To upload a cloud-config execute the following: -``` -$ bosh -e vbox update-cloud-config ~/workspace/bosh-deployment/warden/cloud-config.yml -``` + ``` + $ bosh -e vbox update-cloud-config ~/workspace/bosh-deployment/warden/cloud-config.yml + ``` 2. Upload a stemcell (using the `bosh-warden-boshlite-ubuntu-trusty`) -``` -bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3421.9 \ - --sha1 1396d7877204e630b9e77ae680f492d26607461d -``` + ``` + bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent?v=3421.9 \ + --sha1 1396d7877204e630b9e77ae680f492d26607461d + ``` 3. Build the Stratos UI BOSH release -``` -$ bosh create-release -``` + ``` + $ bosh create-release + ``` -If you have outstanding changes locally add the `--force` flag. + If you have outstanding changes locally add the `--force` flag. 4. After a successful build, upload the release to your director. -``` -$ bosh -e vbox upload-release -d stratos-ui -``` + ``` + $ bosh -e vbox upload-release -d stratos-ui + ``` 5. Deploy the release -A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. - -5.1. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. -``` -uaa_address: https://my-uaa:8080 -console_admin_scope: cloud_controller.admin -console_uaa_client: cf -``` - -5.2. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The followign are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. - -``` -use_mysql: true -use_sqlite: false -mysql_user: stratos -mysql_admin_user: root -mysql_admin_password: changeme -mysql_user_password: strat0s -mysql_db: stratos-db -mysql_host: 127.0.0.1 -mysql_port: 3306 - -``` - -To use SQLite, use the following and comment out the mysql parameters. -``` -# use_mysql: true -use_sqlite: true -# mysql_user: stratos -# mysql_admin_user: root -# mysql_admin_password: changeme -# mysql_user_password: strat0s -# mysql_db: stratos-db -# mysql_host: 127.0.0.1 -# mysql_port: 3306 -``` - -To deploy you deployment manifest execute the following. - -``` -$ bosh -e vbox -d stratos-ui deploy bosh-lite/deployment.yml -``` + + A sample bosh-lite deployment manifest has been provided in `bosh-lite/deployment.yaml`. The following will use that command to deploy the Console. + + 5.1. Provide UAA settings in the deployment manifest if known. In the following some sample values have been provided. + ``` + uaa_address: https://my-uaa:8080 + console_admin_scope: cloud_controller.admin + console_uaa_client: cf + ``` + + 5.2. Select the database you want to use. The Stratos UI Console can be deployed using a MySQL/MariaDB store or SQLite. The following are sample values for a mysql configuration. This assumes a MySQL server has been deployed locally on the host. + + ``` + use_mysql: true + use_sqlite: false + mysql_user: stratos + mysql_admin_user: root + mysql_admin_password: changeme + mysql_user_password: strat0s + mysql_db: stratos-db + mysql_host: 127.0.0.1 + mysql_port: 3306 + + ``` + + To use SQLite, use the following and comment out the mysql parameters. + ``` + # use_mysql: true + use_sqlite: true + # mysql_user: stratos + # mysql_admin_user: root + # mysql_admin_password: changeme + # mysql_user_password: strat0s + # mysql_db: stratos-db + # mysql_host: 127.0.0.1 + # mysql_port: 3306 + ``` + + To deploy you deployment manifest execute the following. + + ``` + $ bosh -e vbox -d stratos-ui deploy bosh-lite/deployment.yml + ``` 6. List deployment -List deployment to get the IP address of the frontend to access the Console. In the following example to access the Console the address is `https://10.0.16.4`. - -``` -09:10 $ bosh -e vbox -d stratos-ui instances -Using environment '192.168.50.6' as client 'admin' - -Task 22. Done - -Deployment 'stratos-ui' - -Instance Process State AZ IPs -backend/68580d76-a241-4de2-b246-82d0a184c9bb running - 10.0.16.103 -frontend/477c94ef-3138-416c-97d7-c09682e6d5dd running - 10.0.16.4 - -2 instances - -Succeeded -``` + List deployment to get the IP address of the frontend to access the Console. In the following example to access the Console the address is `https://10.0.16.4`. + + ``` + 09:10 $ bosh -e vbox -d stratos-ui instances + Using environment '192.168.50.6' as client 'admin' + + Task 22. Done + + Deployment 'stratos-ui' + + Instance Process State AZ IPs + backend/68580d76-a241-4de2-b246-82d0a184c9bb running - 10.0.16.103 + frontend/477c94ef-3138-416c-97d7-c09682e6d5dd running - 10.0.16.4 + + 2 instances + + Succeeded + ```