X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=bin%2Finstall;h=3285d7f6e19da697c1c1af976f092071d9964ff8;hb=9fb18847091767093c624c715137c621113d71c4;hp=3408bea840efde7f8dd07f11ac774e07c00996ec;hpb=7f76709be05a819fc8ac3d5d4da84337b8ae1f12;p=ric-plt%2Fric-dep.git diff --git a/bin/install b/bin/install index 3408bea..3285d7f 100755 --- a/bin/install +++ b/bin/install @@ -2,6 +2,7 @@ ################################################################################ # Copyright (c) 2019 AT&T Intellectual Property. # # Copyright (c) 2019 Nokia. # +# Copyright (c) 2021 HCL Technologies Limited. # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # @@ -15,6 +16,55 @@ # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ + +function wait_for_pods() { + echo -n "waiting for $1 pods to run" + + STILL_WAITING=true + while $STILL_WAITING; do + STILL_WAITING=false + PODS=$(kubectl get pods -n $2 2>/dev/null | grep $1 | awk '{print $1}') + if [ -z $PODS ]; then + STILL_WAITING=true + sleep 1 + echo -n "." + fi + for POD in ${PODS}; do + if [[ $(kubectl get pod ${POD} -n $2 -o go-template --template "{{.status.phase}}") != "Running" ]]; then + STILL_WAITING=true + sleep 1 + echo -n "." + break + fi + done + done + + echo +} + +function wait_for_cats() { + echo -n "waiting for $1 daemonset to complete" + + STILL_WAITING=true + while $STILL_WAITING; do + STILL_WAITING=false + PODS=$(kubectl get pods -n $2 | grep $1 | awk '{print $1}') + for POD in ${PODS}; do + if [[ $(kubectl logs ${POD} -n $2 --tail 1) != "done" ]]; then + STILL_WAITING=true + sleep 1 + echo -n "." + break + fi + done + done + + echo +} + +KERNEL_OPTIMIZATION=false +IS_HELM3=$(helm version --short|grep -e "^v3") + while [ -n "$1" ]; do # while loop starts case "$1" in @@ -25,6 +75,8 @@ while [ -n "$1" ]; do # while loop starts -c) LIST_OF_COMPONENTS=$2 shift ;; + -o) KERNEL_OPTIMIZATION=true + ;; *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c esac @@ -42,7 +94,12 @@ if [ -z "$OVERRIDEYAML" ];then exit 1 fi -HAS_COMMON_PACKAGE=$(helm search local/ric-common | grep ric-common) +if [ -z $IS_HELM3 ] +then + HAS_COMMON_PACKAGE=$(helm search local/ric-common | grep ric-common) +else + HAS_COMMON_PACKAGE=$(helm search repo local/ric-common | grep ric-common) +fi if [ -z "$HAS_COMMON_PACKAGE" ];then echo "****************************************************************************************************************" @@ -53,27 +110,14 @@ if [ -z "$HAS_COMMON_PACKAGE" ];then exit 1 fi - - - - - - - - - - DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" -COMMON_BLOCK=$(cat $OVERRIDEYAML | awk '/^common:/{getline; while ($0 ~ /^ +.*|^ *$/) {print $0; if (getline == 0) {break}}}') -NAMESPACE_BLOCK=$(cat $OVERRIDEYAML | awk '/^ namespace:/{getline; while ($0 ~ /^ .*|^ *$/) {print $0; if (getline == 0) {break}}}') +COMMON_BLOCK=$(cat $OVERRIDEYAML | awk '/^common:/{getline; while ($0 ~ /^ +.*|^ *|^ *#.*$/) {print $0; if (getline == 0) {break}}}') +NAMESPACE_BLOCK=$(cat $OVERRIDEYAML | awk '/^ namespace:/{getline; while ($0 ~ /^ +.*|^ *|^ *#.*$/) {print $0; if (getline == 0) {break}}}') PLTNAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *platform:/{print $2}') INFRANAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *infra:/{print $2}') XAPPNAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *xapp:/{print $2}') RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}') -# replace the dbaasha with dbaas1 if deploying non HA DBaaS -COMPONENTS=${LIST_OF_COMPONENTS:-"infrastructure appmgr rtmgr dbaasha e2mgr e2term a1mediator submgr vespamgr jaegeradapter o1mediator"} -echo "Deploying RIC infra components [$COMPONENTS]" - +LOCAL_REPOSITORY=$(echo "$COMMON_BLOCK" | awk '/^ *localregistry:/{print $2}') if ! kubectl get ns ${PLTNAMESPACE:-ricplt}> /dev/null 2>&1; then kubectl create ns ${PLTNAMESPACE:-ricplt} @@ -85,11 +129,195 @@ if ! kubectl get ns ${XAPPNAMESPACE:-ricxapp}> /dev/null 2>&1; then kubectl create ns ${XAPPNAMESPACE:-ricxapp} fi +IS_INFLUX_PERSIST=$( kubectl get storageclass nfs 2>/dev/null | awk '{print $1}' | grep nfs) +if [[ ${LIST_OF_COMPONENTS} == *"influxdb"* ]]; then + if [ -z "$IS_INFLUX_PERSIST" ]; then + echo "nfs storage does not exist, create PersistentVolume through the storage class for the influxdb database" + LIST_OF_COMPONENTS=$(echo "$LIST_OF_COMPONENTS" | sed "s/influxdb//") + echo "skipping influxdb component" + else + echo "nfs storage exist" + fi +fi + +# replace the dbaasha with dbaas1 if deploying non HA DBaaS +COMPONENTS="infrastructure dbaas appmgr rtmgr e2mgr e2term a1mediator submgr vespamgr o1mediator alarmmanager $LIST_OF_COMPONENTS" + +echo "Deploying RIC infra components [$COMPONENTS]" +if [[ ${COMPONENTS} != *"influxdb"* ]]; then + OPTIONAL_COMPONENTS="influxdb" +fi +if [[ ${COMPONENTS} != *"jaegeradapter"* ]]; then + OPTIONAL_COMPONENTS={"$OPTIONAL_COMPONENTS jaegeradapter"} +fi +if [ ! -z "$OPTIONAL_COMPONENTS" ]; then + echo "Note that the following optional components are NOT being deployed: $OPTIONAL_COMPONENTS. To deploy them add them with -c to the default component list of the install command" +fi + +FOUND_RECIPE=$(kubectl get configmap -n ${PLTNAMESPACE:-ricplt} ricplt-recipe 2>/dev/null ) +if [ ! -z "$FOUND_RECIPE" ]; then + kubectl delete configmap -n ${PLTNAMESPACE:-ricplt} ricplt-recipe +fi kubectl create configmap -n ${PLTNAMESPACE:-ricplt} ricplt-recipe --from-file=recipe=$OVERRIDEYAML +if [ ! -z "$LOCAL_REPOSITORY" ]; then + LOCAL_REPOSITORY="$LOCAL_REPOSITORY/" +fi + + +echo Add cluster roles + cat >ricplt-role.yaml <kernel_optimizer.yaml < /rootfs/sys/kernel/mm/transparent_hugepage/enabled + echo never > /rootfs/sys/kernel/mm/transparent_hugepage/defrag + sysctl -w net.core.somaxconn=511 + grep -q -F [never] /sys/kernel/mm/transparent_hugepage/enabled + grep -q -F [never] /sys/kernel/mm/transparent_hugepage/defrag + sysctl -n net.core.somaxconn | grep 511 -q + echo "done" + while true; do sleep 1; done + volumeMounts: + - name: sys + mountPath: /rootfs/sys +EOF +kubectl apply -f kernel_optimizer.yaml +wait_for_pods redis-kernel-optimizer ${INFRANAMESPACE:-ricinfra} +wait_for_cats redis-kernel-optimizer ${INFRANAMESPACE:-ricinfra} +kubectl delete -f kernel_optimizer.yaml +rm kernel_optimizer.yaml +fi for component in $COMPONENTS; do helm dep up $DIR/../helm/$component - helm install -f $OVERRIDEYAML --namespace "${PLTNAMESPACE:-ricplt}" --name "${RELEASE_PREFIX}-$component" $DIR/../helm/$component - sleep 3 + COMPONENT="${RELEASE_PREFIX}-$component" + if [ -z $IS_HELM3 ] + then + COMPONENT=" --name $COMPONENT" + fi + helm install -f $OVERRIDEYAML --namespace "${PLTNAMESPACE:-ricplt}" $COMPONENT $DIR/../helm/$component + sleep 8 done + + + +