--- /dev/null
+#!/bin/bash
+################################################################################
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. #
+# #
+# 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. #
+################################################################################
+
+ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+
+#Check for helm3
+IS_HELM3=$(helm version -c --short|grep -e "^v3")
+
+CM_VERSION="v0.16.2"
+CM_PORT="8879"
+CM_BASE_URL="http://127.0.0.1:$CM_PORT"
+CM_CHART_GET_URL="$CM_BASE_URL/charts"
+CM_CHART_POST_URL="$CM_BASE_URL/charts/api/charts"
+
+if ! command -v chartmuseum &> /dev/null
+then
+ pushd /tmp
+ echo "Installing ChartMuseum binary..."
+ wget https://get.helm.sh/chartmuseum-$CM_VERSION-linux-amd64.tar.gz
+ tar xvfz chartmuseum-$CM_VERSION-linux-amd64.tar.gz
+ sudo mv /tmp/linux-amd64/chartmuseum /usr/local/bin/chartmuseum
+ popd
+else
+ echo "ChartMuseum is already installed."
+fi
+
+# Package common templates and serve it using Helm local repo
+HELM_LOCAL_REPO="./chartstorage"
+rm $HELM_LOCAL_REPO/*
+
+#Start Chart Museum server if there isn't one
+CHART_MUSEUM_PID=$(lsof -i :"$CM_PORT" | grep "chartmus" | grep -v "grep" | awk '{print $2}')
+if [ -z "$CHART_MUSEUM_PID" ]; then
+ echo "Starting ChartMuseum on port $CM_PORT..."
+ nohup chartmuseum --port=$CM_PORT --storage="local" --context-path=/charts --storage-local-rootdir=$HELM_LOCAL_REPO >/dev/null 2>&1 &
+ echo $! > $ROOT_DIR/CM_PID.txt
+else
+ echo "ChartMuseum is already running..."
+fi
+
+# Check if ChartMuseum is ready to serve request
+command="curl --silent --output /dev/null $CM_BASE_URL"
+for i in $(seq 1 5)
+do $command && s=0 && break || s=$? && echo "Failed to establish a connection with the ChartMuseum server. Retrying after 5s" && sleep 5;
+done
+
+if [ $s -gt 0 ]
+then
+ echo "Cmd to test ChartMuseum failed with ($s): $command"
+ exit $s
+fi
+
+helm repo remove local
+helm repo add local $CM_CHART_GET_URL
+
+echo -e "\nPackaging NONRTRIC common [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
+curl --data-binary @/tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $CM_CHART_POST_URL
echo "** $ROOT_DIR"
rm $ROOT_DIR/../nonrtric/helm/*/charts/*.tgz
-#ChartMuseum configuration
-CM_VERSION="v0.16.1"
-CM_PORT="8879"
-CM_BASE_URL="http://127.0.0.1:$CM_PORT"
-CM_CHART_GET_URL="$CM_BASE_URL/charts"
-CM_CHART_POST_URL="$CM_BASE_URL/charts/api/charts"
-
-#Check for helm3
-IS_HELM3=$(helm version -c --short|grep -e "^v3")
-
-if ! command -v chartmuseum &> /dev/null
-then
- pushd /tmp
- echo "Installing ChartMuseum binary..."
- wget https://get.helm.sh/chartmuseum-$CM_VERSION-linux-amd64.tar.gz
- tar xvfz chartmuseum-$CM_VERSION-linux-amd64.tar.gz
- sudo mv /tmp/linux-amd64/chartmuseum /usr/local/bin/chartmuseum
- popd
-else
- echo "ChartMuseum is already installed."
-fi
-
-# Package common templates and serve it using Helm local repo
-HELM_LOCAL_REPO="./chartstorage"
-rm $HELM_LOCAL_REPO/*
-
-#Start Chart Museum server if there isn't one
-CHART_MUSEUM_PID=$(lsof -i :"$CM_PORT" | grep "chartmus" | grep -v "grep" | awk '{print $2}')
-if [ -z "$CHART_MUSEUM_PID" ]; then
- echo "Starting ChartMuseum on port $CM_PORT..."
- nohup chartmuseum --port=$CM_PORT --storage="local" --context-path=/charts --storage-local-rootdir=$HELM_LOCAL_REPO >/dev/null 2>&1 &
- echo $! > $ROOT_DIR/CM_PID.txt
-else
- echo "ChartMuseum is already running..."
-fi
-
-# Check if ChartMuseum is ready to serve request
-command="curl --silent --output /dev/null $CM_BASE_URL"
-for i in $(seq 1 5)
-do $command && s=0 && break || s=$? && echo "Failed to establish a connection with the ChartMuseum server. Retrying after 5s" && sleep 5;
-done
-
-if [ $s -gt 0 ]
-then
- echo "Cmd to test ChartMuseum failed with ($s): $command"
- exit $s
-fi
-
-helm repo remove local
-helm repo add local $CM_CHART_GET_URL
-
-echo -e "\nPackaging NONRTRIC common [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
-curl --data-binary @/tmp/nonrtric-common-$NONRTRIC_COMMON_CHART_VERSION.tgz $CM_CHART_POST_URL
+source $ROOT_DIR/build-nonrtric-base
charts_already_exists=()
--- /dev/null
+#!/bin/bash
+################################################################################
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. #
+# #
+# 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. #
+################################################################################
+
+OVERRIDEYAML=$1
+
+ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+
+source $ROOT_DIR/build-nonrtric-base
+
+echo "Create array of helm charts"
+CHART_ARRAY=()
+while IFS= read -r -d $'\0'; do
+ echo -e "File - $REPLY \n"
+ CHART_ARRAY+=("$REPLY")
+done < <(find $ROOT_DIR/../nonrtric -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]
+ if [ -z $OVERRIDEYAML ]; then
+ helm lint $dir > /tmp/output 2>&1
+ else
+ helm lint -f $OVERRIDEYAML $dir> /tmp/output 2>&1
+ fi
+ echo "***************************************************************************************************************"
+ cat /tmp/output
+
+ egrep -q '^Error: [0-9]* chart\(s\) linted, [0-9]* chart\(s\) failed' /tmp/output && exit 1
+ echo "***************************************************************************************************************"
+
+ if [ -z $OVERRIDEYAML ]; then
+ helm template $dir > /tmp/output 2>&1
+ else
+ helm template -f $OVERRIDEYAML $dir > /tmp/output 2>&1
+ fi
+ echo "***************************************************************************************************************"
+ cat /tmp/output
+ sleep 1
+ egrep -n '%!.\(.*=.*\)' /tmp/output && echo "Error: Type mismatch." && exit 1
+ echo "***************************************************************************************************************"
+ fi
+done
##############################################################################
#
# Copyright (c) 2019 AT&T Intellectual Property.
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/aux-common
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
-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
echo "Make sure that helm local repo is added"
helm repo remove local
CHART_ARRAY=()
while IFS= read -r -d $'\0'; do
CHART_ARRAY+=("$REPLY")
-done < <(find $ROOT_DIR/../ -maxdepth 5 -name Chart.yaml -printf '%h\0')
+done < <(find $ROOT_DIR/../ -not -path "$ROOT_DIR/../nonrtric/*" -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
--- /dev/null
+################################################################################
+# Copyright (c) 2019 AT&T Intellectual Property. #
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. #
+# #
+# 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. #
+################################################################################
+
+FROM ubuntu:24.04
+RUN apt-get update && apt-get -y install curl ca-certificates wget curl lsof sudo
+ARG HELMVERSION=v3.15.4
+# often times out during LF jenkins build
+RUN wget https://get.helm.sh/helm-${HELMVERSION}-linux-amd64.tar.gz && tar -xvf ../helm-${HELMVERSION}-linux-amd64.tar.gz && mv linux-amd64/helm /usr/local/bin/helm
+ARG TGT=/tmp/it-dep
+COPY . $TGT
+# Remove the smo-install as this one will be verified in another verify job
+RUN rm -rf $TGT/smo-install
+RUN $TGT/bin/verify-nonrtric-charts