Enabling helm3 & kubernetes 1.18 for RIC 37/5237/3
authorAlok Bhatt <alok_bh@hcl.com>
Fri, 4 Dec 2020 10:40:36 +0000 (10:40 +0000)
committerAlok Bhatt <alok_bh@hcl.com>
Thu, 10 Dec 2020 07:39:33 +0000 (07:39 +0000)
. 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 <alok_bh@hcl.com>
Change-Id: I77c5482352c038ce20f13ccfb785ba75c1434046

12 files changed:
bin/deploy-nonrtric
bin/deploy-ric-aux
bin/deploy-ric-platform
bin/prepare-common-templates
bin/verify-ric-charts
nonrtric/bin/install
nonrtric/bin/uninstall
ric-aux/bin/install
ric-aux/bin/uninstall
tools/k8s/etc/infra.rc
tools/k8s/heat/parts/part-1-v6.yaml
tools/k8s/heat/parts/part-1.yaml

index eab4dc2..bf0cf63 100755 (executable)
@@ -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
index d0ddeee..6d1a9c3 100755 (executable)
@@ -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\r
+################################################################################\r
+#   Copyright (c) 2019 AT&T Intellectual Property.                             #\r
+#   Copyright (c) 2019 Nokia.                                                  #\r
+#                                                                              #\r
+#   Licensed under the Apache License, Version 2.0 (the "License");            #\r
+#   you may not use this file except in compliance with the License.           #\r
+#   You may obtain a copy of the License at                                    #\r
+#                                                                              #\r
+#       http://www.apache.org/licenses/LICENSE-2.0                             #\r
+#                                                                              #\r
+#   Unless required by applicable law or agreed to in writing, software        #\r
+#   distributed under the License is distributed on an "AS IS" BASIS,          #\r
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #\r
+#   See the License for the specific language governing permissions and        #\r
+#   limitations under the License.                                             #\r
+################################################################################\r
+\r
+# This script deploys RIC aux components automatically\r
+\r
+if [ "$#" -eq 1 ]; then\r
+    OVERRIDEYAML=$1\r
+else\r
+\r
+    while [ -n "$1" ]; do # while loop starts\r
+\r
+        case "$1" in\r
+\r
+        -f) OVERRIDEYAML=$2\r
+            shift\r
+            ;;\r
+        *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c\r
+\r
+        esac\r
+\r
+        shift\r
+\r
+    done\r
+fi\r
+\r
+\r
+if [ -z "$OVERRIDEYAML" ];then\r
+    echo "****************************************************************************************************************"\r
+    echo "                                                     ERROR                                                      "\r
+    echo "****************************************************************************************************************"\r
+    echo "RIC deployment without deployment recipe is currently disabled. Please specify an recipe with the -f option."\r
+    echo "****************************************************************************************************************"\r
+    exit 1\r
+fi\r
+\r
+\r
+ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"\r
+#Check for helm3\r
+IS_HELM3=$(helm version -c --short|grep -e "^v3")\r
+\r
+if [ $IS_HELM3 ]\r
+then\r
+  # Check for servcm plugin\r
+  helm plugin list | grep -q "^servecm"\r
+  if [ $? -eq "1" ]\r
+  then\r
+    helm plugin install https://github.com/jdolitsky/helm-servecm\r
+  fi\r
+fi\r
+\r
+# Start Helm local repo if there isn't one\r
+HELM_REPO_PID=$(ps -x | grep  "helm serve" | grep -v "grep" | awk '{print $1}')\r
+if [ -z "$HELM_REPO_PID" ]; then\r
+    if [ -z $IS_HELM3 ]\r
+    then\r
+      nohup helm serve >& /dev/null &\r
+    else\r
+      echo EUID:$EUID\r
+      if [ $EUID -ne "0" ]\r
+         then\r
+           echo "Error: Please run the command with sudo as helm servecm needs to copy a file in location needing privilege"\r
+           exit;\r
+         fi\r
+      eval $(helm env |grep HELM_REPOSITORY_CACHE)\r
+      echo yes > /tmp/ric-yes\r
+      nohup sudo sh -c "helm servecm --port=8879 --context-path=/charts  --storage local --storage-local-rootdir $HELM_REPOSITORY_CACHE/local/  < /tmp/ric-yes " &\r
+    fi\r
+fi\r
+\r
+\r
+$ROOT_DIR/prepare-common-templates\r
+\r
+$ROOT_DIR/../ric-aux/bin/install -f $OVERRIDEYAML
\ No newline at end of file
index a16b67c..bce3726 100755 (executable)
@@ -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
index 255c32d..bfdd3d2 100755 (executable)
@@ -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}')
index e9feb06..84019ef 100755 (executable)
@@ -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}')
index e49b8e9..534dbd0 100755 (executable)
@@ -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}"
 
index 4ace9fb..a986439 100755 (executable)
@@ -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
 
index 8a1e849..7e4f03a 100755 (executable)
@@ -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 <YOUR_NODE_NAME> 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
 
index 1c8751b..5c1834e 100755 (executable)
@@ -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
index 06f16b2..37eadbe 100644 (file)
@@ -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=""
index da97977..5718c2d 100644 (file)
@@ -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
index fa08320..4b4acb4 100644 (file)
@@ -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