From 6194540b54aba4736b282818b8deb52b2d8c96bd Mon Sep 17 00:00:00 2001 From: ymarselino Date: Mon, 9 Jun 2025 23:13:52 +0800 Subject: [PATCH] Helm upgrade --install used and yq installed using binary rather than snap. UPDATES: - Replace `helm install` to `helm upgrade --install` (proceed when ns exist) - Install `yq` by download the binary instead of snap (no snap in container) - Jenkins pipeline env.REPO Change-Id: I346617ee9f593d16a9afcd5bbce397005899ee30 Signed-off-by: ymarselino --- bin/deploy-nonrtric | 5 +- smo-install/jenkins/gerrit/manual-start-pipeline | 2 +- smo-install/jenkins/gerrit/manual-stop-pipeline | 112 +++++++++++---------- smo-install/scripts/sub-scripts/install-cicd.sh | 2 +- .../scripts/sub-scripts/install-nonrtric.sh | 9 +- smo-install/scripts/sub-scripts/install-onap.sh | 4 +- .../scripts/sub-scripts/install-simulators.sh | 2 +- smo-install/scripts/sub-scripts/install-smo.sh | 11 +- .../scripts/sub-scripts/postconfigure-smo.sh | 5 +- .../scripts/sub-scripts/preconfigure-smo.sh | 4 +- .../network_slicing/preparation/ns_simulators.py | 2 +- .../orantests/oran_tests/smo/network_simulators.py | 2 +- .../src/orantests/oran_tests/test_cl_k8s.py | 2 +- 13 files changed, 90 insertions(+), 72 deletions(-) diff --git a/bin/deploy-nonrtric b/bin/deploy-nonrtric index 5a11778d..5bc9002a 100755 --- a/bin/deploy-nonrtric +++ b/bin/deploy-nonrtric @@ -52,7 +52,10 @@ fi if ! command -v yq > /dev/null 2>&1; then echo "yq is not installed. Installing yq..." - sudo snap install yq --channel=v4/stable + ARCH=$(case $(uname -m) in x86_64) echo "amd64";; aarch64) echo "arm64";; *) uname -m;; esac) + VERSION="v4.45.4" + wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_linux_${ARCH} -O /usr/local/bin/yq + chmod +x /usr/local/bin/yq fi INSTALL_KONG=$(cat $OVERRIDEYAML | yq e '.nonrtric.installKong' -) diff --git a/smo-install/jenkins/gerrit/manual-start-pipeline b/smo-install/jenkins/gerrit/manual-start-pipeline index b0ca3157..9c620314 100644 --- a/smo-install/jenkins/gerrit/manual-start-pipeline +++ b/smo-install/jenkins/gerrit/manual-start-pipeline @@ -16,7 +16,7 @@ podTemplate(yaml: ''' def proxies='' stage('Checkout') { echo 'printenv' - checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: 'https://gerrit.o-ran-sc.org/r/it/dep']], branches: [[name: env.BRANCH]], extensions: [[$class: 'SubmoduleOption', recursiveSubmodules: true]]], poll: false + checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: env.REPO]], branches: [[name: env.BRANCH]], extensions: [[$class: 'SubmoduleOption', recursiveSubmodules: true]]], poll: false } container('jenkins-ubuntu') { stage ('Proxy settings') { diff --git a/smo-install/jenkins/gerrit/manual-stop-pipeline b/smo-install/jenkins/gerrit/manual-stop-pipeline index 9e3fbc21..cd0c228d 100644 --- a/smo-install/jenkins/gerrit/manual-stop-pipeline +++ b/smo-install/jenkins/gerrit/manual-stop-pipeline @@ -1,57 +1,63 @@ -podTemplate(yaml: ''' - apiVersion: v1 - kind: Pod - spec: - containers: - - name: jenkins-ubuntu - image: ubuntu:20.04 - command: - - sleep - args: - - 99d -''') { - - node(POD_LABEL) { - def proxies='' - stage('Checkout') { - checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: 'https://gerrit.o-ran-sc.org/r/it/dep']], branches: [[name: env.BRANCH]], extensions: [[$class: 'SubmoduleOption', recursiveSubmodules: true]]], poll: false - } - container('jenkins-ubuntu') { - stage ('Proxy settings') { - echo 'Proxy check' - script { - if (env.http_proxy) { - sh 'echo \'Acquire::http::Proxy "' + env.http_proxy + '";\' > /etc/apt/apt.conf.d/proxy.conf' - sh 'cat /etc/apt/apt.conf.d/proxy.conf' - sh 'echo "http_proxy = "'+env.http_proxy+' > ~/.wgetrc' - sh 'cat ~/.wgetrc' - - sh 'echo \'Acquire::https::Proxy "' + env.http_proxy + '";\' >> /etc/apt/apt.conf.d/proxy.conf' - sh 'cat /etc/apt/apt.conf.d/proxy.conf' - sh 'echo "https_proxy = "'+env.http_proxy+' >> ~/.wgetrc' - sh 'cat ~/.wgetrc' - - proxies='HTTPS_PROXY='+env.http_proxy+' ' +lock('smo') { + podTemplate(yaml: ''' + apiVersion: v1 + kind: Pod + spec: + containers: + - name: jenkins-ubuntu + image: ubuntu:20.04 + command: + - sleep + args: + - 99d + ''') { + + node(POD_LABEL) { + def proxies='' + stage('Checkout') { + checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: env.REPO]], branches: [[name: env.BRANCH]], extensions: [[$class: 'SubmoduleOption', recursiveSubmodules: true]]], poll: false + } + container('jenkins-ubuntu') { + stage ('Proxy settings') { + echo 'Proxy check' + script { + if (env.http_proxy) { + sh 'echo \'Acquire::http::Proxy "' + env.http_proxy + '";\' > /etc/apt/apt.conf.d/proxy.conf' + sh 'cat /etc/apt/apt.conf.d/proxy.conf' + sh 'echo "http_proxy = "'+env.http_proxy+' > ~/.wgetrc' + sh 'cat ~/.wgetrc' + + sh 'echo \'Acquire::https::Proxy "' + env.http_proxy + '";\' >> /etc/apt/apt.conf.d/proxy.conf' + sh 'cat /etc/apt/apt.conf.d/proxy.conf' + sh 'echo "https_proxy = "'+env.http_proxy+' >> ~/.wgetrc' + sh 'cat ~/.wgetrc' + + proxies='HTTPS_PROXY='+env.http_proxy+' ' + } + } + sh 'printenv' + } + + stage('Setup tools') { + sh 'apt-get update -y' + sh 'DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata' + sh 'apt-get install git wget sudo -y' + sh 'wget https://dl.k8s.io/release/v1.22.0/bin/linux/amd64/kubectl' + sh 'mv kubectl /usr/bin' + sh 'chmod a+x /usr/bin/kubectl' + sh 'kubectl version' + sh 'cd /tmp && wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz && pwd' + sh 'tar xvfz /tmp/helm-v3.12.3-linux-amd64.tar.gz' + sh 'mv linux-amd64/helm /usr/local/bin/helm' } + stage('Stop SMO') { + sh './smo-install/scripts/sub-scripts/uninstall-nonrtric.sh' + sh './smo-install/scripts/sub-scripts/uninstall-onap.sh' + sh './smo-install/scripts/sub-scripts/uninstall-smo.sh' + } + } - sh 'printenv' - } - - stage('Setup tools') { - sh 'apt-get update -y' - sh 'DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata' - sh 'apt-get install git wget sudo -y' - sh 'wget https://dl.k8s.io/release/v1.22.0/bin/linux/amd64/kubectl' - sh 'mv kubectl /usr/bin' - sh 'chmod a+x /usr/bin/kubectl' - sh 'kubectl version' - } - stage('Stop SMO') { - sh './smo-install/scripts/sub-scripts/uninstall-nonrtric.sh' - sh './smo-install/scripts/sub-scripts/uninstall-onap.sh' - } - + } - - } + } } diff --git a/smo-install/scripts/sub-scripts/install-cicd.sh b/smo-install/scripts/sub-scripts/install-cicd.sh index a5859662..d04e48df 100755 --- a/smo-install/scripts/sub-scripts/install-cicd.sh +++ b/smo-install/scripts/sub-scripts/install-cicd.sh @@ -25,4 +25,4 @@ kubectl create namespace tests echo '### Installing ORAN Tests part ###' -helm install --debug oran-tests-suite local/oran-tests-suite --namespace tests -f $1 +helm upgrade --install --debug oran-tests-suite local/oran-tests-suite --namespace tests -f $1 diff --git a/smo-install/scripts/sub-scripts/install-nonrtric.sh b/smo-install/scripts/sub-scripts/install-nonrtric.sh index 7526b30d..7ff31370 100755 --- a/smo-install/scripts/sub-scripts/install-nonrtric.sh +++ b/smo-install/scripts/sub-scripts/install-nonrtric.sh @@ -29,8 +29,11 @@ echo '### Installing ORAN NONRTRIC part ###' OVERRIDEYAML=$1 if ! command -v yq > /dev/null 2>&1; then + ARCH=$(case $(uname -m) in x86_64) echo "amd64";; aarch64) echo "arm64";; *) uname -m;; esac) + VERSION="v4.45.4" echo "yq is not installed. Installing yq..." - sudo snap install yq --channel=v4/stable + wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_linux_${ARCH} -O /usr/local/bin/yq + chmod +x /usr/local/bin/yq fi MODE=$2 @@ -45,7 +48,7 @@ fi if [ "$MODE" == "dev" ]; then echo "Installing NONRTRIC in dev mode" - helm install --debug oran-nonrtric local/nonrtric --namespace nonrtric -f $OVERRIDEYAML --set nonrtric.persistence.mountPath="/dockerdata-nfs/deployment-$3" --set kong.kongpv.enabled=$kongPvEnabled + helm upgrade --install --debug oran-nonrtric local/nonrtric --namespace nonrtric -f $OVERRIDEYAML --set nonrtric.persistence.mountPath="/dockerdata-nfs/deployment-$3" --set kong.kongpv.enabled=$kongPvEnabled else echo "Installing NONRTRIC in release mode" # This following should be modified once the charts are uploaded and available in the nexus repository @@ -53,7 +56,7 @@ else # helm repo add nonrtric https://nexus3.o-ran-sc.org/repository/smo-helm-snapshots/ # helm repo update # helm install oran-nonrtric nonrtric/nonrtric --namespace nonrtric -f $OVERRIDEYAML --create-namespace - helm install oran-nonrtric local/nonrtric --namespace nonrtric -f $OVERRIDEYAML --set nonrtric.persistence.mountPath="/dockerdata-nfs/deployment-$3" --set kong.kongpv.enabled=$kongPvEnabled + helm upgrade --install oran-nonrtric local/nonrtric --namespace nonrtric -f $OVERRIDEYAML --set nonrtric.persistence.mountPath="/dockerdata-nfs/deployment-$3" --set kong.kongpv.enabled=$kongPvEnabled fi diff --git a/smo-install/scripts/sub-scripts/install-onap.sh b/smo-install/scripts/sub-scripts/install-onap.sh index 357b600b..5c804900 100755 --- a/smo-install/scripts/sub-scripts/install-onap.sh +++ b/smo-install/scripts/sub-scripts/install-onap.sh @@ -34,7 +34,7 @@ if [ "$MODE" == "dev" ]; then echo "### Installing Strimzi Kafka Operator (Dev Mode) ###" helm cm-push ../packages/strimzi-kafka-operator-helm-3-chart-0.45.0.tgz local helm repo update - helm install strimzi-kafka-operator local/strimzi-kafka-operator --namespace strimzi-system --version 0.45.0 --set watchAnyNamespace=true --create-namespace + helm upgrade --install strimzi-kafka-operator local/strimzi-kafka-operator --namespace strimzi-system --version 0.45.0 --set watchAnyNamespace=true --create-namespace echo "Waiting for Strimzi Kafka Operator to be ready..." kubectl wait --for=condition=available --timeout=600s deployment/strimzi-cluster-operator -n strimzi-system @@ -46,7 +46,7 @@ else helm repo add strimzi https://strimzi.io/charts/ helm repo update - helm install strimzi-kafka-operator strimzi/strimzi-kafka-operator --namespace strimzi-system --version 0.45.0 --set watchAnyNamespace=true --create-namespace + helm upgrade --install strimzi-kafka-operator strimzi/strimzi-kafka-operator --namespace strimzi-system --version 0.45.0 --set watchAnyNamespace=true --create-namespace echo "Waiting for Strimzi Kafka Operator to be ready..." kubectl wait --for=condition=available --timeout=600s deployment/strimzi-cluster-operator -n strimzi-system diff --git a/smo-install/scripts/sub-scripts/install-simulators.sh b/smo-install/scripts/sub-scripts/install-simulators.sh index a8a1fce5..ac395c06 100755 --- a/smo-install/scripts/sub-scripts/install-simulators.sh +++ b/smo-install/scripts/sub-scripts/install-simulators.sh @@ -25,4 +25,4 @@ kubectl create namespace network echo '### Installing ORAN SIMULATORS part ###' -helm install --debug oran-simulator local/ru-du-simulators --namespace network -f $1 -f $2 +helm upgrade --install --debug oran-simulator local/ru-du-simulators --namespace network -f $1 -f $2 diff --git a/smo-install/scripts/sub-scripts/install-smo.sh b/smo-install/scripts/sub-scripts/install-smo.sh index 6ddfe23a..131d0099 100755 --- a/smo-install/scripts/sub-scripts/install-smo.sh +++ b/smo-install/scripts/sub-scripts/install-smo.sh @@ -20,8 +20,11 @@ echo '### Installing ORAN SMO part ###' kubectl create namespace smo if ! command -v yq > /dev/null 2>&1; then + ARCH=$(case $(uname -m) in x86_64) echo "amd64";; aarch64) echo "arm64";; *) uname -m;; esac) + VERSION="v4.45.4" echo "yq is not installed. Installing yq..." - sudo snap install yq --channel=v4/stable + wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_linux_${ARCH} -O /usr/local/bin/yq + chmod +x /usr/local/bin/yq fi OVERRIDEYAML=$1 @@ -29,15 +32,15 @@ MODE=$2 if [ "$MODE" == "dev" ]; then echo "Installing SMO in dev mode" - helm install --debug oran-smo local/smo --namespace smo -f $OVERRIDEYAML --timeout 15m + helm upgrade --install --debug oran-smo local/smo --namespace smo -f $OVERRIDEYAML --timeout 15m else echo "Installing SMO in release mode" # This following should be modified once the charts are uploaded and available in the nexus repository # Till then, we are using the local chart # helm repo add smo https://nexus3.o-ran-sc.org/repository/smo-helm-snapshots/ # helm repo update - # helm install oran-smo smo/smo --namespace nonrtric -f $OVERRIDEYAML --create-namespace - helm install oran-smo local/smo --namespace smo -f $OVERRIDEYAML --timeout 15m + # helm upgrade --install oran-smo smo/smo --namespace nonrtric -f $OVERRIDEYAML --create-namespace + helm upgrade --install oran-smo local/smo --namespace smo -f $OVERRIDEYAML --timeout 15m fi check_for_secrets() { diff --git a/smo-install/scripts/sub-scripts/postconfigure-smo.sh b/smo-install/scripts/sub-scripts/postconfigure-smo.sh index 0ba3c404..2d0a2892 100755 --- a/smo-install/scripts/sub-scripts/postconfigure-smo.sh +++ b/smo-install/scripts/sub-scripts/postconfigure-smo.sh @@ -18,8 +18,11 @@ # Configure service manager with the installed services if ! command -v yq > /dev/null 2>&1; then + ARCH=$(case $(uname -m) in x86_64) echo "amd64";; aarch64) echo "arm64";; *) uname -m;; esac) + VERSION="v4.45.4" echo "yq is not installed. Installing yq..." - sudo snap install yq --channel=v4/stable + wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_linux_${ARCH} -O /usr/local/bin/yq + chmod +x /usr/local/bin/yq fi OVERRIDEYAML=$1 diff --git a/smo-install/scripts/sub-scripts/preconfigure-smo.sh b/smo-install/scripts/sub-scripts/preconfigure-smo.sh index 290df43c..40c0bc6c 100755 --- a/smo-install/scripts/sub-scripts/preconfigure-smo.sh +++ b/smo-install/scripts/sub-scripts/preconfigure-smo.sh @@ -67,8 +67,8 @@ sudo chmod -R 777 /dockerdata-nfs kubectl create ns mariadb-operator helm repo add mariadb-operator https://helm.mariadb.com/mariadb-operator helm repo update -helm install mariadb-operator-crds mariadb-operator/mariadb-operator-crds -n mariadb-operator -helm install mariadb-operator mariadb-operator/mariadb-operator -n mariadb-operator +helm upgrade --install mariadb-operator-crds mariadb-operator/mariadb-operator-crds -n mariadb-operator +helm upgrade --install mariadb-operator mariadb-operator/mariadb-operator -n mariadb-operator kubectl wait deployment mariadb-operator -n mariadb-operator --for=condition=available --timeout=120s # K8s Volume creation as required diff --git a/smo-install/test/pythonsdk/src/orantests/network_slicing/preparation/ns_simulators.py b/smo-install/test/pythonsdk/src/orantests/network_slicing/preparation/ns_simulators.py index 61e97428..292e3a5d 100644 --- a/smo-install/test/pythonsdk/src/orantests/network_slicing/preparation/ns_simulators.py +++ b/smo-install/test/pythonsdk/src/orantests/network_slicing/preparation/ns_simulators.py @@ -41,7 +41,7 @@ class NsSimulators(): logger.info("Start the network slicing simulators") cmd = "kubectl create namespace nssimulators" check_output(cmd, shell=True).decode('utf-8') - cmd = f"helm install --debug ns-simulators local/ns-simulators --namespace nssimulators" + cmd = f"helm upgrade --install --debug ns-simulators local/ns-simulators --namespace nssimulators" check_output(cmd, shell=True).decode('utf-8') def start_and_wait_ns_simulators(self): diff --git a/smo-install/test/pythonsdk/src/orantests/oran_tests/smo/network_simulators.py b/smo-install/test/pythonsdk/src/orantests/oran_tests/smo/network_simulators.py index 56d9b7f8..fc16398a 100644 --- a/smo-install/test/pythonsdk/src/orantests/oran_tests/smo/network_simulators.py +++ b/smo-install/test/pythonsdk/src/orantests/oran_tests/smo/network_simulators.py @@ -49,7 +49,7 @@ class NetworkSimulators(): logger.info("Start the network simulators") cmd = "kubectl create namespace network" check_output(cmd, shell=True).decode('utf-8') - cmd = f"helm install --debug oran-simulator local/ru-du-simulators --namespace network -f {self.resources_path}/network-simulators-topology/network-simulators-override.yaml -f {self.resources_path}/network-simulators-topology/network-simulators-topology-override.yaml" + cmd = f"helm upgrade --install --debug oran-simulator local/ru-du-simulators --namespace network -f {self.resources_path}/network-simulators-topology/network-simulators-override.yaml -f {self.resources_path}/network-simulators-topology/network-simulators-topology-override.yaml" check_output(cmd, shell=True).decode('utf-8') def start_and_wait_network_simulators(self): diff --git a/smo-install/test/pythonsdk/src/orantests/oran_tests/test_cl_k8s.py b/smo-install/test/pythonsdk/src/orantests/oran_tests/test_cl_k8s.py index 503338f6..a9bd638d 100644 --- a/smo-install/test/pythonsdk/src/orantests/oran_tests/test_cl_k8s.py +++ b/smo-install/test/pythonsdk/src/orantests/oran_tests/test_cl_k8s.py @@ -94,7 +94,7 @@ def deploy_chartmuseum(): cmd = "kubectl create namespace test" check_output(cmd, shell=True).decode('utf-8') - cmd = "helm install test test/chartmuseum --version 3.1.0 --namespace test --set env.open.DISABLE_API=false" + cmd = "helm upgrade --install test test/chartmuseum --version 3.1.0 --namespace test --set env.open.DISABLE_API=false" check_output(cmd, shell=True).decode('utf-8') wait(lambda: is_chartmuseum_up(), sleep_seconds=10, timeout_seconds=60, waiting_for="chartmuseum to be ready") -- 2.16.6