From d311b7ef3feb598daf9172cc292f06ae5daeb4d5 Mon Sep 17 00:00:00 2001 From: Samuli Silvius Date: Tue, 21 May 2019 10:32:22 +0300 Subject: Starting of k8splugin with docker-compose is broken docker-compose.yml and start.sh script cannot be used in installer.sh to start k8splugin and mongo. This commit modifies start.sh script to be usable in installer.sh to start plugin before tests. Also fixed kud_tests variable in installer.sh. Issue-ID: MULTICLOUD-640 Change-Id: I60cc850d6f5b58df574f79ad3c65b801c59b3a14 Signed-off-by: Samuli Silvius --- deployments/.env | 6 ----- deployments/_functions.sh | 36 ++++++++++++++++++++++++++++++ deployments/docker-compose.yml | 31 ++++--------------------- deployments/start-dev.sh | 31 +++++++++++++++++++++++++ deployments/start.sh | 35 ++++++++--------------------- kud/hosting_providers/vagrant/installer.sh | 4 ++-- 6 files changed, 82 insertions(+), 61 deletions(-) create mode 100755 deployments/_functions.sh create mode 100755 deployments/start-dev.sh diff --git a/deployments/.env b/deployments/.env index c2630b85..b4740f9b 100644 --- a/deployments/.env +++ b/deployments/.env @@ -1,7 +1 @@ IMAGE_NAME=nexus3.onap.org:10003/onap/multicloud/k8s -CSAR_DIR=/opt/csar -KUBE_CONFIG_DIR=/opt/kubeconfig -DATABASE_TYPE=mongo -DATABASE_IP=172.19.0.2 -PLUGIN_IP=172.19.0.3 -PLUGINS_DIR=/opt/multicloud/k8s diff --git a/deployments/_functions.sh b/deployments/_functions.sh new file mode 100755 index 00000000..7942aed0 --- /dev/null +++ b/deployments/_functions.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright 2019 © Samsung Electronics Co., Ltd. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +function stop_all { + docker-compose kill + docker-compose down +} + +function start_mongo { + docker-compose up -d mongo + export DATABASE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aqf "name=mongo")) + export no_proxy=${no_proxy:-},${DATABASE_IP} + export NO_PROXY=${NO_PROXY:-},${DATABASE_IP} +} + +function generate_k8sconfig { +cat << EOF > k8sconfig.json +{ + "database-address": "${DATABASE_IP}", + "database-type": "mongo", + "plugin-dir": "plugins", + "service-port": "9015" +} +EOF +} + +function start_all { + docker-compose up -d +} diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index c4faa537..3fa82fe5 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -9,53 +9,30 @@ # See the License for the specific language governing permissions and # limitations under the License. -version: '2' +version: '3' services: multicloud-k8s: image: ${IMAGE_NAME} - networks: - multicloud_net: - ipv4_address: ${PLUGIN_IP} build: context: ./ args: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} - ports: - - "8081:8081" environment: - - CSAR_DIR=${CSAR_DIR} - - KUBE_CONFIG_DIR=${KUBE_CONFIG_DIR} - - DATABASE_TYPE=${DATABASE_TYPE} - - DATABASE_IP=${DATABASE_IP} - - PLUGINS_DIR=${PLUGINS_DIR} - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - - NO_PROXY=${NO_PROXY},${DATABASE_IP} + - NO_PROXY=${NO_PROXY},mongo depends_on: - mongo - links: - - mongo + network_mode: host volumes: - /opt/csar:/opt/csar - - /opt/kubeconfig:/opt/kubeconfig + - ${PWD}/k8sconfig.json:/opt/multicloud/k8splugin/k8sconfig.json:ro mongo: image: mongo - networks: - multicloud_net: - ipv4_address: ${DATABASE_IP} environment: - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - NO_PROXY=${NO_PROXY} - -networks: - multicloud_net: - driver: bridge - ipam: - driver: default - config: - - - subnet: 172.19.0.0/27 diff --git a/deployments/start-dev.sh b/deployments/start-dev.sh new file mode 100755 index 00000000..c4b0cbc4 --- /dev/null +++ b/deployments/start-dev.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright 2019 © Samsung Electronics Co., Ltd. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +set -o errexit +set -o nounset +set -o pipefail + +source _functions.sh + +# +# Start k8splugin from compiled binaries to foreground. This is usable for development use. +# +source /etc/environment +k8s_path="$(git rev-parse --show-toplevel)" + +stop_all +start_mongo + +echo "Compiling source code" +pushd $k8s_path/src/k8splugin/ +generate_k8sconfig +make all +./k8plugin +popd diff --git a/deployments/start.sh b/deployments/start.sh index a57a6377..e7ff1334 100755 --- a/deployments/start.sh +++ b/deployments/start.sh @@ -8,33 +8,16 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +set -o errexit set -o nounset set -o pipefail -source /etc/environment +source _functions.sh -k8s_path="$(git rev-parse --show-toplevel)" -export GOPATH=$k8s_path -export GO111MODULE=on - -echo "Starting mongo services" -docker-compose kill -docker-compose up -d mongo -export DATABASE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aqf "name=mongo")) -export no_proxy=${no_proxy:-},$DATABASE_IP -export NO_PROXY=${NO_PROXY:-},$DATABASE_IP - -echo "Compiling source code" -pushd $k8s_path/src/k8splugin/ -cat << EOF > k8sconfig.json -{ - "database-address": "$DATABASE_IP", - "database-type": "mongo", - "plugin-dir": "$(pwd)/plugins", - "service-port": "9015", - "kube-config-dir": "$(pwd)/kubeconfigs" -} -EOF -make all -./k8plugin -popd +# +# Start k8splugin from containers. build.sh should be run prior this script. +# +stop_all +start_mongo +generate_k8sconfig +start_all diff --git a/kud/hosting_providers/vagrant/installer.sh b/kud/hosting_providers/vagrant/installer.sh index c37d2746..2168d0d3 100755 --- a/kud/hosting_providers/vagrant/installer.sh +++ b/kud/hosting_providers/vagrant/installer.sh @@ -166,7 +166,7 @@ function install_plugin { pushd $kud_folder/../../../deployments sudo ./build.sh if [[ "${testing_enabled}" == "true" ]]; then - docker-compose up -d + sudo ./start.sh pushd $kud_tests for functional_test in plugin plugin_edgex; do bash ${functional_test}.sh @@ -216,7 +216,7 @@ kud_infra_folder=$kud_folder/../../deployment_infra export kud_inventory_folder=$kud_folder/inventory kud_inventory=$kud_inventory_folder/hosts.ini kud_playbooks=$kud_infra_folder/playbooks -kud_tests=$kud_folder/tests +kud_tests=$kud_folder/../../tests k8s_info_file=$kud_folder/k8s_info.log testing_enabled=${KUD_ENABLE_TESTS:-false} -- cgit 1.2.3-korg