Helm install optional and default values

Make Helm applicaton installation optional by allowing
user not to provide Helm charts. Then only empty Kubernetes
cluster will be installed.

Provide some reasonable default values for Helm charts
configuration variables both in package script and ansible
installer itself. User provided Helm charts configuration
must be in sync with packaging and installer, provided
some clarifying comments for that.

Issue-ID: OOM-1629

Change-Id: Ica9fc76856cb50c9d636bea99a326736736c7a56
Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
diff --git a/build/package.conf b/build/package.conf
index c3bbeee..7a738f3 100644
--- a/build/package.conf
+++ b/build/package.conf
@@ -1,8 +1,7 @@
-# For the packaging script it is expected that all artifacts are present on local file system
-# (e.g. they can be mounted) Downloading stuff from internet is currently not supported.
-# Furthermore we don't want to replicate content of our static data_lists for download in there
-# and those are downloaded before this packaging script is supposed to be run.
-# Therefore we can limit number of artifacts to be added into packages just to couple of items.
+# For the packaging script it is expected that all artifacts are present on local file system.
+# Artifacts include:
+#  - installer source code (this git repository content)
+#  - all binary artifacts pre-downloaded from internet (docker images, rpm packages, npm packages, Maven artifacts etc.)
 
 ###########################
 # Project specific params #
@@ -12,10 +11,14 @@
 SOFTWARE_PACKAGE_BASENAME="onap-offline"
 
 ########################
-# Helm charts handling #
+# Helm charts          #
 ########################
 
-# directory with helm charts
+# Provide application installed to Kubernetes cluster. Helm chart is the supported format https://helm.sh/.
+# Directory provided here must contain all the Chart directories of the application (https://docs.helm.sh/developing_charts/#charts) and Makefile.
+# E.g. in case of ONAP oom repo it will be the content of kubernetes directory.
+# NOTE: Leaving this variable commented out will mean that no Helm application will be installed to
+# offline Kubernetes cluster. This may be sometimes wanted.
 #HELM_CHARTS_DIR=~/myclones/casablanca_oom/
 
 ###################
diff --git a/build/package.sh b/build/package.sh
index fd9b9e7..89764cc 100755
--- a/build/package.sh
+++ b/build/package.sh
@@ -109,8 +109,8 @@
     then
         echo "Helm charts handling"
         # Copy charts available for ansible playbook to use/move them to target server/dir
-        mkdir -p "${pkg_root}"/ansible/application/helm_charts
-        cp -r "${HELM_CHARTS_DIR}"/* "${pkg_root}"/ansible/application/helm_charts
+        mkdir -p ${pkg_root}/${HELM_CHARTS_DIR_IN_PACKAGE}
+        cp -r "${HELM_CHARTS_DIR}"/* ${pkg_root}/${HELM_CHARTS_DIR_IN_PACKAGE}
     fi
 
     # Add metadata to the package
@@ -192,6 +192,17 @@
 SCRIPT_DIR=$(dirname "${0}")
 LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
 
+# Relative location inside the package to place Helm charts to be available for
+# Ansible process to transfer them into machine (infra node) running Helm repository.
+# NOTE: This is quite hardcoded place to put them and agreement with Ansible code
+# is done in ansible/group_vars/all.yml with variable "app_helm_charts_install_directory"
+# whihc value must match to value of this variable (with exception of slash '/'
+# prepended so that ansible docker/chroot process can see the dir).
+# This variable can be of course changed in package.conf if really needed if
+# corresponding ansible variable "app_helm_charts_install_directory" value
+# adjusted accordingly.
+HELM_CHARTS_DIR_IN_PACKAGE="ansible/application/helm_charts"
+
 if [ "$#" -lt 3 ]; then
     echo "Missing some mandatory parameter!"
     usage