From 2fcd391f36ba041a675a4e3012067eb673294857 Mon Sep 17 00:00:00 2001 From: Alok Bhatt Date: Fri, 4 Dec 2020 10:40:36 +0000 Subject: [PATCH] Enabling helm3 & kubernetes 1.18 for RIC . Resolving a helm related error message in Jenkins build log . Keeping helm2 and k8 1.16 as default while allowing the teams to still use helm3 & k1.18 Issue-Id: RIC-678 Signed-off-by: Alok Bhatt Change-Id: I77c5482352c038ce20f13ccfb785ba75c1434046 --- bin/deploy-nonrtric | 43 ++++++++++- bin/deploy-ric-aux | 144 ++++++++++++++++++++++-------------- bin/deploy-ric-platform | 27 ++++++- bin/prepare-common-templates | 2 +- bin/verify-ric-charts | 2 +- nonrtric/bin/install | 9 ++- nonrtric/bin/uninstall | 11 ++- ric-aux/bin/install | 23 +++++- ric-aux/bin/uninstall | 10 ++- tools/k8s/etc/infra.rc | 6 +- tools/k8s/heat/parts/part-1-v6.yaml | 6 +- tools/k8s/heat/parts/part-1.yaml | 6 +- 12 files changed, 213 insertions(+), 76 deletions(-) diff --git a/bin/deploy-nonrtric b/bin/deploy-nonrtric index eab4dc21..bf0cf63d 100755 --- a/bin/deploy-nonrtric +++ b/bin/deploy-nonrtric @@ -50,25 +50,62 @@ fi ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +#Check for helm3 +IS_HELM3=$(helm version -c --short|grep -e "^v3") + +if [ $IS_HELM3 ] +then + # Check for servcm plugin + helm plugin list | grep -q "^servecm" + if [ $? -eq "1" ] + then + helm plugin install https://github.com/jdolitsky/helm-servecm + fi +fi + # Start Helm local repo if there isn't one HELM_REPO_PID=$(ps -x | grep "helm serve" | grep -v "grep" | awk '{print $1}') if [ -z "$HELM_REPO_PID" ]; then - nohup helm serve >& /dev/null & + if [ -z $IS_HELM3 ] + then + nohup helm serve >& /dev/null & + else + echo EUID:$EUID + if [ $EUID -ne "0" ] + then + echo "Error: Please run the command with sudo as helm servecm needs to copy a file in location needing privilege" + exit; + fi + eval $(helm env |grep HELM_REPOSITORY_CACHE) + echo yes > /tmp/ric-yes + nohup sudo sh -c "helm servecm --port=8879 --context-path=/charts --storage local --storage-local-rootdir $HELM_REPOSITORY_CACHE/local/ < /tmp/ric-yes " & + fi fi + $ROOT_DIR/prepare-common-templates COMPONENTS=${LIST_OF_COMPONENTS:-"controlpanel a1controller a1simulator policymanagementservice"} echo "Packaging NONRTRIC components [$COMPONENTS]" +# Package common templates and serve it using Helm local repo +HELM_LOCAL_REPO="" +if [ $IS_HELM3 ] +then + eval $(helm env |grep HELM_REPOSITORY_CACHE) + HELM_LOCAL_REPO="${HELM_REPOSITORY_CACHE}/local/" +else + HELM_HOME=$(helm home) + HELM_LOCAL_REPO="${HELM_HOME}/repository/local/" +fi for component in $COMPONENTS; do helm dep up $ROOT_DIR/../nonrtric/helm/$component VERSION=$(cat $ROOT_DIR/../nonrtric/helm/$component/Chart.yaml | grep version | awk '{print $2}') helm package -d /tmp $ROOT_DIR/../nonrtric/helm/$component - cp /tmp/$component-$VERSION.tgz $HELM_HOME/repository/local/ + cp /tmp/$component-$VERSION.tgz ${HELM_LOCAL_REPO} done -helm repo index $HELM_HOME/repository/local/ +helm repo index ${HELM_LOCAL_REPO} # Make sure that helm local repo is added helm repo remove local diff --git a/bin/deploy-ric-aux b/bin/deploy-ric-aux index d0ddeeee..6d1a9c31 100755 --- a/bin/deploy-ric-aux +++ b/bin/deploy-ric-aux @@ -1,56 +1,88 @@ -#!/bin/bash -################################################################################ -# Copyright (c) 2019 AT&T Intellectual Property. # -# Copyright (c) 2019 Nokia. # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -# This script deploys RIC aux components automatically - -if [ "$#" -eq 1 ]; then - OVERRIDEYAML=$1 -else - - while [ -n "$1" ]; do # while loop starts - - case "$1" in - - -f) OVERRIDEYAML=$2 - shift - ;; - *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c - - esac - - shift - - done -fi - - -if [ -z "$OVERRIDEYAML" ];then - echo "****************************************************************************************************************" - echo " ERROR " - echo "****************************************************************************************************************" - echo "RIC deployment without deployment recipe is currently disabled. Please specify an recipe with the -f option." - echo "****************************************************************************************************************" - exit 1 -fi - - -ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" - -$ROOT_DIR/prepare-common-templates - -$ROOT_DIR/../ric-aux/bin/install -f $OVERRIDEYAML +#!/bin/bash +################################################################################ +# Copyright (c) 2019 AT&T Intellectual Property. # +# Copyright (c) 2019 Nokia. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + +# This script deploys RIC aux components automatically + +if [ "$#" -eq 1 ]; then + OVERRIDEYAML=$1 +else + + while [ -n "$1" ]; do # while loop starts + + case "$1" in + + -f) OVERRIDEYAML=$2 + shift + ;; + *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c + + esac + + shift + + done +fi + + +if [ -z "$OVERRIDEYAML" ];then + echo "****************************************************************************************************************" + echo " ERROR " + echo "****************************************************************************************************************" + echo "RIC deployment without deployment recipe is currently disabled. Please specify an recipe with the -f option." + echo "****************************************************************************************************************" + exit 1 +fi + + +ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +#Check for helm3 +IS_HELM3=$(helm version -c --short|grep -e "^v3") + +if [ $IS_HELM3 ] +then + # Check for servcm plugin + helm plugin list | grep -q "^servecm" + if [ $? -eq "1" ] + then + helm plugin install https://github.com/jdolitsky/helm-servecm + fi +fi + +# Start Helm local repo if there isn't one +HELM_REPO_PID=$(ps -x | grep "helm serve" | grep -v "grep" | awk '{print $1}') +if [ -z "$HELM_REPO_PID" ]; then + if [ -z $IS_HELM3 ] + then + nohup helm serve >& /dev/null & + else + echo EUID:$EUID + if [ $EUID -ne "0" ] + then + echo "Error: Please run the command with sudo as helm servecm needs to copy a file in location needing privilege" + exit; + fi + eval $(helm env |grep HELM_REPOSITORY_CACHE) + echo yes > /tmp/ric-yes + nohup sudo sh -c "helm servecm --port=8879 --context-path=/charts --storage local --storage-local-rootdir $HELM_REPOSITORY_CACHE/local/ < /tmp/ric-yes " & + fi +fi + + +$ROOT_DIR/prepare-common-templates + +$ROOT_DIR/../ric-aux/bin/install -f $OVERRIDEYAML \ No newline at end of file diff --git a/bin/deploy-ric-platform b/bin/deploy-ric-platform index a16b67c0..bce37268 100755 --- a/bin/deploy-ric-platform +++ b/bin/deploy-ric-platform @@ -51,11 +51,36 @@ fi ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +#Check for helm3 +IS_HELM3=$(helm version -c --short|grep -e "^v3") + +if [ $IS_HELM3 ] +then + # Check for servcm plugin + helm plugin list | grep -q "^servecm" + if [ $? -eq "1" ] + then + helm plugin install https://github.com/jdolitsky/helm-servecm + fi +fi # Start Helm local repo if there isn't one HELM_REPO_PID=$(ps -x | grep "helm serve" | grep -v "grep" | awk '{print $1}') if [ -z "$HELM_REPO_PID" ]; then - nohup helm serve >& /dev/null & + if [ -z $IS_HELM3 ] + then + nohup helm serve >& /dev/null & + else + echo EUID:$EUID + if [ $EUID -ne "0" ] + then + echo "Error: Please run the command with sudo as helm servecm needs to copy a file in location needing privilege" + exit; + fi + eval $(helm env |grep HELM_REPOSITORY_CACHE) + echo yes > /tmp/ric-yes + nohup sudo sh -c "helm servecm --port=8879 --context-path=/charts --storage local --storage-local-rootdir $HELM_REPOSITORY_CACHE/local/ < /tmp/ric-yes " & + fi fi $ROOT_DIR/prepare-common-templates diff --git a/bin/prepare-common-templates b/bin/prepare-common-templates index 255c32d3..bfdd3d27 100755 --- a/bin/prepare-common-templates +++ b/bin/prepare-common-templates @@ -20,7 +20,7 @@ ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" #Check for helm3 -IS_HELM3=$(helm version --short|grep -e "^v3") +IS_HELM3=$(helm version -c --short|grep -e "^v3") # Start Helm local repo if there isn't one HELM_REPO_PID=$(ps -x | grep "helm serve" | grep -v "grep" | awk '{print $1}') diff --git a/bin/verify-ric-charts b/bin/verify-ric-charts index e9feb06c..84019ef8 100755 --- a/bin/verify-ric-charts +++ b/bin/verify-ric-charts @@ -23,7 +23,7 @@ OVERRIDEYAML=$1 ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" #Check for helm3 -IS_HELM3=$(helm version --short|grep -e "^v3") +IS_HELM3=$(helm version -c --short|grep -e "^v3") # Start Helm local repo if there isn't one HELM_REPO_PID=$(ps -x | grep "helm serve" | grep -v "grep" | awk '{print $1}') diff --git a/nonrtric/bin/install b/nonrtric/bin/install index e49b8e93..534dbd0c 100755 --- a/nonrtric/bin/install +++ b/nonrtric/bin/install @@ -15,7 +15,7 @@ # limitations under the License. # ################################################################################ - +IS_HELM3=$(helm version -c --short|grep -e "^v3") while [ -n "$1" ]; do # while loop starts case "$1" in @@ -69,5 +69,10 @@ echo "Deploying NONRTRIC components [$COMPONENTS]" echo "Updating the Parent Chart [$PARENT_CHART]" helm dep up $DIR/../helm/$PARENT_CHART -helm install $DIR/../helm/"${PARENT_CHART}" -f $OVERRIDEYAML --namespace "${NONRTRIC_NAMESPACE:-nonrtric}" --name "${RELEASE_PREFIX}" +HELM_NAME_OPT="" +if [ -z $IS_HELM3 ];then + HELM_NAME_OPT="--name" +fi + +helm install $DIR/../helm/"${PARENT_CHART}" -f $OVERRIDEYAML --namespace "${NONRTRIC_NAMESPACE:-nonrtric}" ${HELM_NAME_OPT} "${RELEASE_PREFIX}" diff --git a/nonrtric/bin/uninstall b/nonrtric/bin/uninstall index 4ace9fb5..a986439b 100755 --- a/nonrtric/bin/uninstall +++ b/nonrtric/bin/uninstall @@ -32,7 +32,16 @@ RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}') echo "Undeploying NONRTRIC components [$COMPONENTS]" -helm delete --purge ${RELEASE_PREFIX} +IS_HELM3=$(helm version -c --short|grep -e "^v3") +HELM_FLAG='' +if [ $IS_HELM3 ] +then + HELM_FLAG=' -n '${NONRTRIC_NAMESPACE:-nonrtric} +else + HELM_FLAG='--purge' +fi + +helm delete ${HELM_FLAG} ${RELEASE_PREFIX} kubectl delete cm -n ${NONRTRIC_NAMESPACE:-nonrtric} nonrtric-recipe diff --git a/ric-aux/bin/install b/ric-aux/bin/install index 8a1e8494..7e4f03a0 100755 --- a/ric-aux/bin/install +++ b/ric-aux/bin/install @@ -45,8 +45,16 @@ if [ -z "$OVERRIDEYAML" ];then exit 1 fi +#Check for helm3 +IS_HELM3=$(helm version -c --short|grep -e "^v3") +HELM_SEARCH_FLAG="" +if [ $IS_HELM3 ] +then + HELM_SEARCH_FLAG="repo" +fi + -HAS_RIC_COMMON_PACKAGE=$(helm search local/ric-common | grep ric-common) +HAS_RIC_COMMON_PACKAGE=$(helm search ${HELM_SEARCH_FLAG} local/ric-common | grep ric-common) if [ -z "$HAS_RIC_COMMON_PACKAGE" ];then echo "****************************************************************************************************************" @@ -57,7 +65,7 @@ if [ -z "$HAS_RIC_COMMON_PACKAGE" ];then exit 1 fi -HAS_AUX_COMMON_PACKAGE=$(helm search local/aux-common | grep aux-common) +HAS_AUX_COMMON_PACKAGE=$(helm search ${HELM_SEARCH_FLAG} local/aux-common | grep aux-common) if [ -z "$HAS_AUX_COMMON_PACKAGE" ];then echo "****************************************************************************************************************" @@ -315,6 +323,13 @@ echo "Deploying AUX components [$COMPONENTS]" for component in $COMPONENTS; do helm dep up $DIR/../helm/$component + + # Handle helm2/helm3 arg + NAME_ARG="" + if [ -z $IS_HELM3 ]; then + NAME_ARG=" --name " + fi + case "$component" in aaf) NODENAME=$(kubectl get node | awk 'NR>1{print $1}') @@ -336,11 +351,11 @@ for component in $COMPONENTS; do echo "* kubectl label --overwrite nodes aaf-storage=enable *" echo "***********************************************************************************************" else - helm install -f $OVERRIDEYAML --namespace "onap" --name "${RELEASE_PREFIX}-$component" $DIR/../helm/$component + helm install -f $OVERRIDEYAML --namespace "onap" ${NAME_ARG} "${RELEASE_PREFIX}-$component" $DIR/../helm/$component fi ;; *) - helm install -f $OVERRIDEYAML --namespace "${AUXNAMESPACE:-ricaux}" --name "${RELEASE_PREFIX}-$component" $DIR/../helm/$component + helm install -f $OVERRIDEYAML --namespace "${AUXNAMESPACE:-ricaux}" ${NAME_ARG} "${RELEASE_PREFIX}-$component" $DIR/../helm/$component sleep 8 esac diff --git a/ric-aux/bin/uninstall b/ric-aux/bin/uninstall index 1c8751ba..5c1834e3 100755 --- a/ric-aux/bin/uninstall +++ b/ric-aux/bin/uninstall @@ -34,9 +34,17 @@ RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}') echo "Undeploying AUX components [$COMPONENTS]" +IS_HELM3=$(helm version -c --short|grep -e "^v3") +HELM_FLAG='' +if [ $IS_HELM3 ] +then + HELM_FLAG=' -n '${AUXNAMESPACE:-ricaux} +else + HELM_FLAG='--purge' +fi for component in $COMPONENTS; do - helm delete --purge ${RELEASE_PREFIX}-$component + helm delete ${HELM_FLAG} ${RELEASE_PREFIX}-$component done kubectl delete cm -n ${AUXNAMESPACE:-ricaux} ricaux-recipe diff --git a/tools/k8s/etc/infra.rc b/tools/k8s/etc/infra.rc index 06f16b2e..37eadbe5 100644 --- a/tools/k8s/etc/infra.rc +++ b/tools/k8s/etc/infra.rc @@ -1,8 +1,10 @@ # modify below for RIC infrastructure (docker-k8s-helm) component versions # RIC tested INFRA_DOCKER_VERSION="" -INFRA_HELM_VERSION="3.2.3" -INFRA_K8S_VERSION="1.18.3" +#INFRA_HELM_VERSION="3.2.3" +#INFRA_K8S_VERSION="1.18.3" +INFRA_HELM_VERSION="2.12.3" +INFRA_K8S_VERSION="1.16.0" INFRA_CNI_VERSION="0.7.5" # older RIC tested #INFRA_DOCKER_VERSION="" diff --git a/tools/k8s/heat/parts/part-1-v6.yaml b/tools/k8s/heat/parts/part-1-v6.yaml index da979777..5718c2dc 100644 --- a/tools/k8s/heat/parts/part-1-v6.yaml +++ b/tools/k8s/heat/parts/part-1-v6.yaml @@ -48,7 +48,8 @@ parameters: k8s_version: type: string - default: "1.18.3" + #default: "1.18.3" + default: "1.13.3" k8s_cni_version: type: string @@ -56,7 +57,8 @@ parameters: helm_version: type: string - default: "3.2.3" + #default: "3.2.3" + default: "2.12.3" helm_deploy_delay: type: string diff --git a/tools/k8s/heat/parts/part-1.yaml b/tools/k8s/heat/parts/part-1.yaml index fa08320e..4b4acb42 100644 --- a/tools/k8s/heat/parts/part-1.yaml +++ b/tools/k8s/heat/parts/part-1.yaml @@ -64,7 +64,8 @@ parameters: k8s_version: type: string - default: "1.18.3" + #default: "1.18.3" + default: "1.13.3" k8s_cni_version: type: string @@ -72,7 +73,8 @@ parameters: helm_version: type: string - default: "3.2.3" + #default: "3.2.3" + default: "2.12.3" helm_deploy_delay: type: string -- 2.16.6