X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=kubernetes%2Frobot%2Fdemo-k8s.sh;h=3f8ac9deec33935c730612aba0a8a10793d74637;hb=e4aac7a3c577b7bb9eaae93387d482f952ee4b72;hp=0d30557220d0a53ed6fd48c940b440a650b5a772;hpb=9c30c1f14ebc6124c64bda3b9a2d5c67eba818ec;p=oom.git diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh index 0d30557220..3f8ac9deec 100755 --- a/kubernetes/robot/demo-k8s.sh +++ b/kubernetes/robot/demo-k8s.sh @@ -1,4 +1,5 @@ -#!/bin/bash +#!/bin/sh + # Copyright (C) 2018 Amdocs, Bell Canada # Modifications Copyright (C) 2019 Samsung # Modifications Copyright (C) 2020 Nokia @@ -19,46 +20,67 @@ # usage () { - echo "Usage: demo-k8s.sh [] [execscript]" - echo " " - echo " demo-k8s.sh init" - echo " - Execute both init_customer + distribute" - echo " " - echo " demo-k8s.sh init_customer" - echo " - Create demo customer (Demonstration) and services, etc." - echo " " - echo " demo-k8s.sh distribute []" - echo " - Distribute demo models (demoVFW and demoVLB)" - echo " " - echo " demo-k8s.sh preload " - echo " - Preload data for VNF for the " - echo " " - echo " demo-k8s.sh appc " - echo " - provide APPC with vFW module mount point for closed loop" - echo " " - echo " demo-k8s.sh init_robot [ ]" - echo " - Initialize robot after all ONAP VMs have started" - echo " " - echo " demo-k8s.sh instantiateVFW" - echo " - Instantiate vFW module for the demo customer (DemoCust)" - echo " " - echo " demo-k8s.sh instantiateVFWdirectso csar_filename" - echo " - Instantiate vFW module using direct SO interface using previously distributed model " - echo " that is in /tmp/csar in robot container" - echo " " - echo " demo-k8s.sh instantiateVLB_CDS" - echo " - Instantiate vLB module using CDS with a preloaded CBA " - echo " " - echo " demo-k8s.sh deleteVNF " - echo " - Delete the module created by instantiateVFW" - echo " " - echo " demo-k8s.sh vfwclosedloop " - echo " - vFWCL: Sets the packet generator to high and low rates, and checks whether the policy " - echo " kicks in to modulate the rates back to medium" - echo " " - echo " demo-k8s.sh [] execscript" - echo " - Optional parameter to execute user custom scripts located in scripts/demoscript directory" - echo " " + echo "Usage: demo-k8s.sh [] [execscript]" + echo " " + echo " demo-k8s.sh init" + echo " - Execute both init_customer + distribute + registrySynch" + echo " " + echo " demo-k8s.sh init_customer" + echo " - Create demo customer (Demonstration) and services, etc." + echo " " + echo " demo-k8s.sh registrySynch [ repo | path [ ]" + echo " [ ] ]" + echo " - Synchronize chart museum inside of onap k8s cluster with" + echo " onap helm charts git repository (OOM)" + echo " By default following charts are synchronized:" + echo " - oom/kubernetes/dcaegen2-services/charts/," + echo " - oom/kubernetes/common/common/charts," + echo " - oom/kubernetes/common/postgres/charts/," + echo " - oom/kubernetes/common/repositoryGenerator/charts/," + echo " - oom/kubernetes/common/readinessCheck/charts/," + echo " User is able also to synchronize custom helm charts by providing" + echo " flag 'path' and path to charts into command and chart name/s prefix for example:" + echo " demo-k8s.sh onap registrySynch /home/ubuntu/oom/kubernetes/common/postgres/charts/ postgres" + echo " - Synchronize chart museum inside of onap k8s cluster with" + echo " onap installation server 'local' helm charts repository" + echo " By default following charts are synchronized:" + echo " - local/certInitializer" + echo " User is able also to synchronize custom helm charts by providing" + echo " flag 'repo' and chart name in 'local' repo into command for example:" + echo " demo-k8s.sh onap registrySynch repo certInitializer" + echo " " + echo " demo-k8s.sh distribute []" + echo " - Distribute demo models (demoVFW and demoVLB)" + echo " " + echo " demo-k8s.sh preload " + echo " - Preload data for VNF for the " + echo " " + echo " demo-k8s.sh appc " + echo " - provide APPC with vFW module mount point for closed loop" + echo " " + echo " demo-k8s.sh init_robot [ ]" + echo " - Initialize robot after all ONAP VMs have started" + echo " " + echo " demo-k8s.sh instantiateVFW" + echo " - Instantiate vFW module for the demo customer (DemoCust)" + echo " " + echo " demo-k8s.sh instantiateVFWdirectso csar_filename" + echo " - Instantiate vFW module using direct SO interface using previously distributed model " + echo " that is in /tmp/csar in robot container" + echo " " + echo " demo-k8s.sh instantiateVLB_CDS" + echo " - Instantiate vLB module using CDS with a preloaded CBA " + echo " " + echo " demo-k8s.sh deleteVNF " + echo " - Delete the module created by instantiateVFW" + echo " " + echo " demo-k8s.sh vfwclosedloop " + echo " - vFWCL: Sets the packet generator to high and low rates, and checks whether the policy " + echo " kicks in to modulate the rates back to medium" + echo " " + echo " demo-k8s.sh [] execscript" + echo " - Optional parameter to execute user custom scripts located in scripts/demoscript directory" + echo " " } # Check if execscript flag is used and drop it from input arguments @@ -73,9 +95,9 @@ fi echo "Number of parameters:" echo $# -if [ $# -lt 2 ];then - usage - exit +if [ $# -lt 2 ]; then + usage + exit fi NAMESPACE=$1 @@ -86,80 +108,81 @@ shift ## while [ $# -gt 0 ] do - key="$1" + key="$1" echo "KEY:" echo $key - case $key in - init_robot) - TAG="UpdateWebPage" - echo "WEB Site Password for user 'test': " - stty -echo - read WEB_PASSWORD - stty echo - if [ "$WEB_PASSWORD" = "" ]; then - echo "" - echo "WEB Password is required for user 'test'" - exit - fi - VARIABLES="$VARIABLES -v WEB_PASSWORD:$WEB_PASSWORD" - shift - if [ $# -eq 2 ];then - VARIABLES="$VARIABLES -v HOSTS_PREFIX:$1" - fi - shift - ;; - init) - TAG="InitDemo" - shift - ;; - vescollector) - TAG="vescollector" - shift - ;; + case $key in + init_robot) + TAG="UpdateWebPage" + echo "WEB Site Password for user 'test': " + stty -echo + read WEB_PASSWORD + stty echo + if [ "$WEB_PASSWORD" = "" ]; then + echo "" + echo "WEB Password is required for user 'test'" + exit + fi + VARIABLES="$VARIABLES -v WEB_PASSWORD:$WEB_PASSWORD" + shift + if [ $# -eq 2 ];then + VARIABLES="$VARIABLES -v HOSTS_PREFIX:$1" + fi + shift + ;; + init) + TAG="InitDemo" + dcaeRegistrySynch=true + shift + ;; + vescollector) + TAG="vescollector" + shift + ;; distribute_vcpe) - TAG="distributeVCPE" - shift - ;; - init_customer) - TAG="InitCustomer" - shift - ;; - distribute) - TAG="InitDistribution" - shift - if [ $# -eq 1 ];then - VARIABLES="$VARIABLES -v DEMO_PREFIX:$1" - fi - shift - ;; - preload) - TAG="PreloadDemo" - shift - if [ $# -ne 2 ];then - echo "Usage: demo-k8s.sh preload " - exit - fi - VARIABLES="$VARIABLES -v VNF_NAME:$1" - shift - VARIABLES="$VARIABLES -v MODULE_NAME:$1" - shift - ;; - appc) - TAG="APPCMountPointDemo" - shift - if [ $# -ne 1 ];then - echo "Usage: demo-k8s.sh appc " - exit - fi - VARIABLES="$VARIABLES -v MODULE_NAME:$1" - shift - ;; - instantiateVFW) - TAG="instantiateVFW" - VARIABLES="$VARIABLES -v GLOBAL_BUILD_NUMBER:$$" - shift - ;; + TAG="distributeVCPE" + shift + ;; + init_customer) + TAG="InitCustomer" + shift + ;; + distribute) + TAG="InitDistribution" + shift + if [ $# -eq 1 ];then + VARIABLES="$VARIABLES -v DEMO_PREFIX:$1" + fi + shift + ;; + preload) + TAG="PreloadDemo" + shift + if [ $# -ne 2 ];then + echo "Usage: demo-k8s.sh preload " + exit + fi + VARIABLES="$VARIABLES -v VNF_NAME:$1" + shift + VARIABLES="$VARIABLES -v MODULE_NAME:$1" + shift + ;; + appc) + TAG="APPCMountPointDemo" + shift + if [ $# -ne 1 ];then + echo "Usage: demo-k8s.sh appc " + exit + fi + VARIABLES="$VARIABLES -v MODULE_NAME:$1" + shift + ;; + instantiateVFW) + TAG="instantiateVFW" + VARIABLES="$VARIABLES -v GLOBAL_BUILD_NUMBER:$$" + shift + ;; instantiateVFWdirectso) TAG="instantiateVFWdirectso" shift @@ -175,21 +198,21 @@ do VARIABLES="$VARIABLES -v GLOBAL_BUILD_NUMBER:$$" shift ;; - deleteVNF) - TAG="deleteVNF" - shift - if [ $# -ne 1 ];then - echo "Usage: demo-k8s.sh deleteVNF " - exit - fi - VARFILE=$1.py - VARIABLES="$VARIABLES -V /share/${VARFILE}" - shift - ;; - cds) - TAG="cds" - shift - ;; + deleteVNF) + TAG="deleteVNF" + shift + if [ $# -ne 1 ];then + echo "Usage: demo-k8s.sh deleteVNF " + exit + fi + VARFILE=$1.py + VARIABLES="$VARIABLES -V /share/${VARFILE}" + shift + ;; + cds) + TAG="cds" + shift + ;; distributeVFWNG) TAG="distributeVFWNG" shift @@ -208,15 +231,36 @@ do VARIABLES="$VARIABLES -v PACKET_GENERATOR_HOST:$1 -v pkg_host:$1" shift ;; - *) - usage - exit - esac + registrySynch) + dcaeRegistrySynch=true + echo $dcaeRegistrySynch + shift + echo $1 + if [ "$1" = "path" ]; then + shift + customHelmChartsPath=$1 + shift + customHelmChartsPref=$1 + shift + elif [ "$1" = "repo" ]; then + shift + customHelmChartFromLocalRepo=$1 + echo $customHelmChartFromLocalRepo + shift + else + echo "demo-k8s.sh registrySynch { repo | path [ ] [ ] }" + fi + ;; + *) + usage + exit + esac done set -x POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot) +HELM_RELEASE=$(kubectl --namespace onap get pods | sed 's/ .*//' | grep robot | sed 's/-.*//') DIR=$(dirname "$0") SCRIPTDIR=scripts/demoscript @@ -229,10 +273,35 @@ if [ $execscript ]; then done fi -export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec ${POD} -- bash -c "ls -1q /share/logs/ | wc -l") +export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec ${POD} -- sh -c "ls -1q /share/logs/ | wc -l") OUTPUT_FOLDER=$(printf %04d $GLOBAL_BUILD_NUMBER)_demo_$key DISPLAY_NUM=$(($GLOBAL_BUILD_NUMBER + 90)) -VARIABLEFILES="-V /share/config/robot_properties.py" +if [ $dcaeRegistrySynch ]; then + CURRENT_DIR=$PWD + PARENT_PATH=${0%/*} + cd $PARENT_PATH + cd ../contrib/tools + if [ -n "$customHelmChartsPath" ]; then + ./registry-initialize.sh -d $customHelmChartsPath -n $NAMESPACE -r $HELM_RELEASE -p customHelmChartsPref + elif [ -n "$customHelmChartFromLocalRepo" ]; then + ./registry-initialize.sh -h $customHelmChartFromLocalRepo -n $NAMESPACE -r $HELM_RELEASE + else + ./registry-initialize.sh -d ../../dcaegen2-services/charts/ -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -d ../../dcaegen2-services/charts/ -n $NAMESPACE -r $HELM_RELEASE -p common + ./registry-initialize.sh -h certInitializer -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h repositoryGenerator -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h readinessCheck -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h dcaegen2-services-common -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h postgres -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h serviceAccount -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h mongo -n $NAMESPACE -r $HELM_RELEASE + ./registry-initialize.sh -h common -n $NAMESPACE -r $HELM_RELEASE + fi + cd $CURRENT_DIR +fi -kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} -i ${TAG} --display $DISPLAY_NUM 2> ${TAG}.out +if [ -n "$TAG" ]; then + VARIABLEFILES="-V /share/config/robot_properties.py" + kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} -i ${TAG} --display $DISPLAY_NUM 2> ${TAG}.out +fi