Sample rApp packaging script modification for helm chart 14/12914/2
authorlapentafd <francesco.lapenta@est.tech>
Fri, 17 May 2024 11:09:44 +0000 (12:09 +0100)
committerlapentafd <francesco.lapenta@est.tech>
Mon, 20 May 2024 16:27:57 +0000 (17:27 +0100)
Added the possibility to have plain Helm charts.
The script will check the Helm artifacts directory and
try to package the subdirectories in order to get
.tgz packaged helm charts.

Issue-ID: NONRTRIC-986
Change-Id: I5df9a780e535208d4c910e3e0ba32dde5f9068e0
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
sample-rapp-generator/generate.bat
sample-rapp-generator/generate.sh

index ccf3049..b9047a9 100755 (executable)
@@ -6,7 +6,7 @@
 ::  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
+::       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,
 ::
 
 @echo off
+setlocal enabledelayedexpansion
 
 if [%1]==[] goto usage
 SET DIRECTORY=%1
 if %DIRECTORY:~-1%==\ (
     SET DIRECTORY=%DIRECTORY:~0,-1%
 )
+
+SET HELM_DIR=%DIRECTORY%/Artifacts/Deployment/HELM
+SET CSARFILE=%DIRECTORY%.csar
+SET ZIPFILE=%DIRECTORY%.zip
+SET EXCLUDE_DIRS=
+
 if exist %DIRECTORY% (
-    SET CSARFILE=%DIRECTORY%.csar
-    SET ZIPFILE=%DIRECTORY%.zip
+    if exist "%HELM_DIR%" (
+        echo Helm directory exists: %HELM_DIR%
+        for /d %%D in ("%HELM_DIR%\*") do (
+            if exist "%%D" (
+                echo Checking directory: %%D
+                echo Packaging Helm chart in directory: %%~nxD
+                helm package %%D -d %HELM_DIR%
+                SET EXCLUDE_DIRS=!EXCLUDE_DIRS!--exclude=Artifacts/Deployment/HELM/%%~nxD/*
+                echo Excluding directory: %HELM_DIR%\%%~nxD
+            )
+        )
+    ) else (
+        echo Helm directory %HELM_DIR% doesn't exist.
+    )
+
     del %CSARFILE% 2>nul
     pushd %DIRECTORY%
-    tar -a -cf ..\%ZIPFILE% *
+    tar !EXCLUDE_DIRS! -a -cf ..\%ZIPFILE% *
     popd
     rename %ZIPFILE% %CSARFILE%
     @echo rApp package %CSARFILE% generated.
 ) else (
-    @echo Directory %DIRECTORY% doesn't exists.
+    @echo Directory %DIRECTORY% doesn't exist.
 )
 goto :eof
 
index d606186..b7118a0 100755 (executable)
@@ -28,15 +28,39 @@ if ! command -v zip &> /dev/null; then
   exit 1
 fi
 
+if ! command -v helm &> /dev/null; then
+  echo "Helm command not found. Please install helm to proceed."
+  exit 1
+fi
+
 DIRECTORY=${1%/}
 PACKAGENAME="$DIRECTORY.csar"
+HELM_DIR="$DIRECTORY/Artifacts/Deployment/HELM"
+EXCLUDE_DIRS=()
+
+checkHelmPackage() {
+  if [ -d "$HELM_DIR" ]; then
+    for dir in "$HELM_DIR"/*/ ; do
+      if [ -d "$dir" ]; then
+        HELM_PACKAGE_NAME=$(basename "$dir")
+        pushd "$HELM_DIR"
+        helm package "$HELM_PACKAGE_NAME"
+        popd
+        EXCLUDE_DIRS+=("*/$HELM_PACKAGE_NAME/*")
+      fi
+    done
+  else
+    echo "Helm directory $HELM_DIR doesn't exist."
+  fi
+}
 
 if [ -d "$DIRECTORY" ]; then
-  rm $PACKAGENAME 2> /dev/null
+  checkHelmPackage
+  rm -f $PACKAGENAME 2> /dev/null
   pushd $DIRECTORY
-  zip -r ../$PACKAGENAME *
+  zip -r ../$PACKAGENAME * $(printf " -x %s" "${EXCLUDE_DIRS[@]}")
   popd
   echo -e "rApp package $PACKAGENAME generated."
 else
-  echo "Directory $DIRECTORY doesn't exists."
+  echo "Directory $DIRECTORY doesn't exist."
 fi