Merge "Enabling helm3 & kubernetes 1.18 for RIC"
authorZhe Huang <zhehuang@research.att.com>
Fri, 11 Dec 2020 01:24:55 +0000 (01:24 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Fri, 11 Dec 2020 01:24:55 +0000 (01:24 +0000)
1  2 
bin/deploy-nonrtric
bin/verify-ric-charts
nonrtric/bin/install
nonrtric/bin/uninstall

diff --combined bin/deploy-nonrtric
@@@ -50,25 -50,62 +50,62 @@@ f
  
  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"}
 +COMPONENTS=${LIST_OF_COMPONENTS:-"controlpanel a1controller a1simulator policymanagementservice enrichmentservice"}
  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 --combined bin/verify-ric-charts
@@@ -23,7 -23,7 +23,7 @@@ OVERRIDEYAML=$
  
  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}')
@@@ -78,14 -78,10 +78,14 @@@ while IFS= read -r -d $'\0'; d
  done < <(find $ROOT_DIR/../ -maxdepth 5 -name Chart.yaml -printf '%h\0')
  
  echo "***************************************"
 -
 +echo "Remove nonrtric parent chart from linting as its a conceptual visualization of Nonrtric components. This chart doesn't contain any templates & it's primarily
 +used for grouping of all Nonrtric components in deployment"
  
  for dir in "${CHART_ARRAY[@]}"
  do
 +    if [[ $dir == *"/helm/nonrtric"* ]]; then
 +        echo "Skip Nonrtric Parent chart"
 +    else
      echo "Update chart dependency for directory $dir"
      helm dep up $dir
      # Lint clearly marks errors; e.g., [ERROR]
     sleep 1
      egrep -n '%!.\(.*=.*\)' /tmp/output && echo "Error: Type mismatch." && exit 1
      echo "***************************************************************************************************************"
 +    fi
  done
diff --combined nonrtric/bin/install
@@@ -15,7 -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
@@@ -52,7 -52,7 +52,7 @@@ NAMESPACE_BLOCK=$(cat $OVERRIDEYAML | a
  NONRTRIC_NAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *nonrtric:/{print $2}')
  RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}')
  PARENT_CHART=$(cat $OVERRIDEYAML | awk '/^ *component:/{print $2}')
 -COMPONENTS=${LIST_OF_COMPONENTS:-"controlpanel a1controller a1simulator policymanagementservice nonrtric"}
 +COMPONENTS=${LIST_OF_COMPONENTS:-"controlpanel a1controller a1simulator policymanagementservice enrichmentservice nonrtric"}
  echo "Chart name- $PARENT_CHART"
  
  if ! kubectl get ns ${NONRTRIC_NAMESPACE:-nonrtric}> /dev/null 2>&1; then
@@@ -69,5 -69,10 +69,10 @@@ echo "Deploying NONRTRIC components [$C
  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 --combined nonrtric/bin/uninstall
@@@ -16,7 -16,7 +16,7 @@@
  ################################################################################
  
  
 -COMPONENTS="controlpanel a1controller a1simulator policymanagementservice"
 +COMPONENTS="controlpanel a1controller a1simulator policymanagementservice enrichmentservice"
  RECIPE_NAMESPACE=$(kubectl get cm --all-namespaces | grep nonrtric-recipe | awk '{print $1}')
  kubectl get configmap  -n $RECIPE_NAMESPACE nonrtric-recipe  -o jsonpath='{.data.recipe}' > /tmp/recipe.yaml
  
@@@ -32,7 -32,16 +32,16 @@@ RELEASE_PREFIX=$(echo "$COMMON_BLOCK" 
  
  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