Issue-ID: RIC-678
Signed-off-by: Alok Bhatt <alok_bh@hcl.com>
Change-Id: Ibc1821aac0e91998117fc1f698008d7281f04dc4
################################################################################
# Copyright (c) 2019 AT&T Intellectual Property. #
# Copyright (c) 2019 Nokia. #
################################################################################
# Copyright (c) 2019 AT&T Intellectual Property. #
# Copyright (c) 2019 Nokia. #
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+#Check for helm3
+IS_HELM3=$(helm version --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}')
# 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 &
-fi
-
+if [ -z "$HELM_REPO_PID" ]
+then
+ if [ -z $IS_HELM3 ]
+ then
+ nohup helm serve >& /dev/null &
+ else
+ nohup helm servecm --port=8879 --context-path=/charts --storage local >& /dev/null &
+ fi
+fi
# Package common templates and serve it using Helm local repo
# Package common templates and serve it using Helm local repo
+if [ $IS_HELM3 ]
+then
+ eval $(helm env |grep HELM_REPOSITORY_CACHE)
+ HELM_LOCAL_REPO="${HELM_REPOSITORY_CACHE}/local/"
+ mkdir -p $HELM_LOCAL_REPO
+else
+ HELM_HOME=$(helm home)
+ HELM_LOCAL_REPO="${HELM_HOME}/repository/local/"
+fi
+
COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/ric-common
COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/ric-common
-cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
AUX_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/aux-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/aux-common
AUX_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/aux-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/aux-common
-cp /tmp/aux-common-$AUX_COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/aux-common-$AUX_COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
NONRTRIC_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common
NONRTRIC_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common
-cp /tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
-helm repo index $HELM_HOME/repository/local/
+helm repo index $HELM_LOCAL_REPO
# Make sure that helm local repo is added
# Make sure that helm local repo is added
OVERRIDEYAML=$1
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
OVERRIDEYAML=$1
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+#Check for helm3
+IS_HELM3=$(helm version --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}')
# 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 "$HELM_REPO_PID" ]
+then
+ if [ -z $IS_HELM3 ]
+ then
+ nohup helm serve >& /dev/null &
+ else
+ nohup helm servecm --port=8879 --context-path=/charts --storage local >& /dev/null &
+ fi
fi
echo "Package ric-common and serve it using Helm local repo"
fi
echo "Package ric-common and serve it using Helm local repo"
+# 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
+
HELM_HOME=$(helm home)
COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/ric-common
HELM_HOME=$(helm home)
COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/ric-common
-cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
AUX_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/aux-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/aux-common
AUX_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/aux-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/aux-common
-cp /tmp/aux-common-$AUX_COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/aux-common-$AUX_COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
NONRTRIC_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common
NONRTRIC_COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common
-cp /tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
+cp /tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $HELM_LOCAL_REPO
##############################################################################
FROM ubuntu:18.04
##############################################################################
FROM ubuntu:18.04
-RUN apt-get update && apt-get -y install curl
+RUN apt-get update && apt-get -y install curl ca-certificates
ARG GH=get_helm.sh
# often times out during LF jenkins build
RUN curl --silent --show-error --connect-timeout 10 --retry 6 -L https://raw.githubusercontent.com/helm/helm/master/scripts/get -o ${GH}
ARG GH=get_helm.sh
# often times out during LF jenkins build
RUN curl --silent --show-error --connect-timeout 10 --retry 6 -L https://raw.githubusercontent.com/helm/helm/master/scripts/get -o ${GH}
# modify below for RIC infrastructure (docker-k8s-helm) component versions
# RIC tested
INFRA_DOCKER_VERSION=""
# modify below for RIC infrastructure (docker-k8s-helm) component versions
# RIC tested
INFRA_DOCKER_VERSION=""
-INFRA_HELM_VERSION="2.12.3"
-INFRA_K8S_VERSION="1.16.0"
+INFRA_HELM_VERSION="3.2.3"
+INFRA_K8S_VERSION="1.18.3"
INFRA_CNI_VERSION="0.7.5"
# older RIC tested
#INFRA_DOCKER_VERSION=""
INFRA_CNI_VERSION="0.7.5"
# older RIC tested
#INFRA_DOCKER_VERSION=""
k8s_version:
type: string
k8s_version:
type: string
k8s_cni_version:
type: string
k8s_cni_version:
type: string
helm_version:
type: string
helm_version:
type: string
helm_deploy_delay:
type: string
helm_deploy_delay:
type: string
k8s_version:
type: string
k8s_version:
type: string
k8s_cni_version:
type: string
k8s_cni_version:
type: string
helm_version:
type: string
helm_version:
type: string
helm_deploy_delay:
type: string
helm_deploy_delay:
type: string
while ! helm repo add incubator "https://kubernetes-charts-incubator.storage.googleapis.com/"; do
sleep 10
done
while ! helm repo add incubator "https://kubernetes-charts-incubator.storage.googleapis.com/"; do
sleep 10
done
+IS_HELM3=$(helm version --short|grep -e "^v3")
+HELM_FLAG='--name'
+if [ -z $IS_HELM3 ]
+ HELM_FLAG=""
+fi
+
-helm install incubator/elasticsearch \
+helm install ${HELM_FLAG} elasticsearch \
--namespace "${LOGGING_NS}" \
--namespace "${LOGGING_NS}" \
--set image.tag=6.7.0 \
--set data.terminationGracePeriodSeconds=0 \
--set master.persistence.enabled=false \
--set image.tag=6.7.0 \
--set data.terminationGracePeriodSeconds=0 \
--set master.persistence.enabled=false \
- --set data.persistence.enabled=false
-helm install stable/fluentd-elasticsearch \
- --name fluentd \
+ --set data.persistence.enabled=false \
+ incubator/elasticsearch
+helm install ${HELM_FLAG} fluentd \
--namespace "${LOGGING_NS}" \
--set elasticsearch.host=elasticsearch-client.${LOGGING_NS}.svc.cluster.local \
--namespace "${LOGGING_NS}" \
--set elasticsearch.host=elasticsearch-client.${LOGGING_NS}.svc.cluster.local \
- --set elasticsearch.port=9200
-helm install stable/kibana \
- --name kibana \
+ --set elasticsearch.port=9200 \
+ stable/fluentd-elasticsearch
+helm install ${HELM_FLAG} kibana \
--namespace "${LOGGING_NS}" \
--set env.ELASTICSEARCH_URL=http://elasticsearch-client.${LOGGING_NS}.svc.cluster.local:9200 \
--set env.ELASTICSEARCH_HOSTS=http://elasticsearch-client.${LOGGING_NS}.svc.cluster.local:9200 \
--namespace "${LOGGING_NS}" \
--set env.ELASTICSEARCH_URL=http://elasticsearch-client.${LOGGING_NS}.svc.cluster.local:9200 \
--set env.ELASTICSEARCH_HOSTS=http://elasticsearch-client.${LOGGING_NS}.svc.cluster.local:9200 \
- --set env.SERVER_BASEPATH=/api/v1/namespaces/${LOGGING_NS}/services/kibana/proxy
+ --set env.SERVER_BASEPATH=/api/v1/namespaces/${LOGGING_NS}/services/kibana/proxy \
+ stable/kibana
#--set image.tag=6.4.2 \
KIBANA_POD_NAME=$(kubectl get pods --selector=app=kibana -n "${LOGGING_NS}" \
#--set image.tag=6.4.2 \
KIBANA_POD_NAME=$(kubectl get pods --selector=app=kibana -n "${LOGGING_NS}" \
PROMETHEUS_NS="monitoring"
OPERATOR_POD_NAME="prometheus-prometheus-operator-prometheus-0"
ALERTMANAGER_POD_NAME="alertmanager-prometheus-operator-alertmanager-0"
PROMETHEUS_NS="monitoring"
OPERATOR_POD_NAME="prometheus-prometheus-operator-prometheus-0"
ALERTMANAGER_POD_NAME="alertmanager-prometheus-operator-alertmanager-0"
-helm install stable/prometheus-operator --name prometheus-operator --namespace "${PROMETHEUS_NS}"
+helm install ${HELM_FLAG} prometheus-operator --namespace "${PROMETHEUS_NS}" stable/prometheus-operator
wait_for_pods_running 1 "${PROMETHEUS_NS}" "${OPERATOR_POD_NAME}"
GRAFANA_POD_NAME=$(kubectl get pods --selector=app=grafana -n "${PROMETHEUS_NS}" \
wait_for_pods_running 1 "${PROMETHEUS_NS}" "${OPERATOR_POD_NAME}"
GRAFANA_POD_NAME=$(kubectl get pods --selector=app=grafana -n "${PROMETHEUS_NS}" \
################################################################################
################################################################################
-# first parameter: number of expected running pods
+# first parameter: number of expected running pods
# second parameter: namespace (all-namespaces means all namespaces)
# third parameter: [optional] keyword
wait_for_pods_running () {
# second parameter: namespace (all-namespaces means all namespaces)
# third parameter: [optional] keyword
wait_for_pods_running () {
kind: KubeProxyConfiguration
mode: ipvs
EOF
kind: KubeProxyConfiguration
mode: ipvs
EOF
- elif [[ ${KUBEV} == 1.15.* ]] || [[ ${KUBEV} == 1.16.* ]]; then
+ elif [[ ${KUBEV} == 1.15.* ]] || [[ ${KUBEV} == 1.16.* ]] || [[ ${KUBEV} == 1.18.* ]]; then
cat <<EOF >/root/config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kubernetesVersion: v${KUBEV}
cat <<EOF >/root/config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kubernetesVersion: v${KUBEV}
HELMV=$(cat /opt/config/helm_version.txt)
HELMVERSION=${HELMV}
if [ ! -e helm-v${HELMVERSION}-linux-amd64.tar.gz ]; then
HELMV=$(cat /opt/config/helm_version.txt)
HELMVERSION=${HELMV}
if [ ! -e helm-v${HELMVERSION}-linux-amd64.tar.gz ]; then
- wget https://storage.googleapis.com/kubernetes-helm/helm-v${HELMVERSION}-linux-amd64.tar.gz
+ wget https://get.helm.sh/helm-v${HELMVERSION}-linux-amd64.tar.gz
fi
cd /root && rm -rf Helm && mkdir Helm && cd Helm
tar -xvf ../helm-v${HELMVERSION}-linux-amd64.tar.gz
fi
cd /root && rm -rf Helm && mkdir Helm && cd Helm
tar -xvf ../helm-v${HELMVERSION}-linux-amd64.tar.gz
cd /root
# install RBAC for Helm
cd /root
# install RBAC for Helm
- kubectl create -f rbac-config.yaml
+ if [[ ${HELMVERSION} == 2.* ]]; then
+ kubectl create -f rbac-config.yaml
+ fi
rm -rf /root/.helm
if [[ ${KUBEV} == 1.16.* ]]; then
# helm init uses API extensions/v1beta1 which is depreciated by Kubernetes
# 1.16.0. Until upstream (helm) provides a fix, this is the work-around.
rm -rf /root/.helm
if [[ ${KUBEV} == 1.16.* ]]; then
# helm init uses API extensions/v1beta1 which is depreciated by Kubernetes
# 1.16.0. Until upstream (helm) provides a fix, this is the work-around.
- helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml > /tmp/helm-init.yaml
- sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' /tmp/helm-init.yaml > /tmp/helm-init-patched.yaml
- kubectl apply -f /tmp/helm-init-patched.yaml
+ if [[ ${HELMVERSION} == 2.* ]]; then
+ helm init --service-account tiller --override spec.selector.matchLabels.'name'='tiller',spec.selector.matchLabels.'app'='helm' --output yaml > /tmp/helm-init.yaml
+ sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' /tmp/helm-init.yaml > /tmp/helm-init-patched.yaml
+ kubectl apply -f /tmp/helm-init-patched.yaml
+ fi
- helm init --service-account tiller
+ if [[ ${HELMVERSION} == 2.* ]]; then
+ helm init --service-account tiller
+ fi
+ fi
+ if [[ ${HELMVERSION} == 2.* ]]; then
+ helm init -c
+ export HELM_HOME="$(pwd)/.helm"
+ echo "HELM_HOME=${HELM_HOME}" >> /etc/environment
- helm init -c
- export HELM_HOME="$(pwd)/.helm"
- echo "HELM_HOME=${HELM_HOME}" >> /etc/environment
# waiting for tiller pod to be in running state
while ! helm version; do
# waiting for tiller pod to be in running state
while ! helm version; do