From 12cbad976e45066b1448ac687cf133f764510f54 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20OLIVIER?= <cedric3.olivier@orange.com>
Date: Thu, 8 Sep 2022 16:18:28 +0000
Subject: [PATCH] fix: use chart var if no Chart.yml in directory

---
 templates/gitlab-ci-helm.yml | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/templates/gitlab-ci-helm.yml b/templates/gitlab-ci-helm.yml
index cf2fc67..96ca9b6 100644
--- a/templates/gitlab-ci-helm.yml
+++ b/templates/gitlab-ci-helm.yml
@@ -522,7 +522,19 @@ stages:
   before_script:
     - *helm-scripts
     - install_ca_certs "${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
-    - helm $HELM_DEPENDENCY_ARGS $HELM_CHART_DIR
+    - |
+      if [ -f "$HELM_CHART_DIR/Chart.yaml" ]
+      then
+        helm $HELM_DEPENDENCY_ARGS $HELM_CHART_DIR
+        helm_package=$HELM_CHART_DIR
+      elif [ ! -z "${HELM_DEPLOY_CHART}" ]
+      then
+        add_helm_repositories
+        helm_package=$HELM_DEPLOY_CHART
+      else
+        log_error "You need at least one Chart.yaml or external deploy chart reference"
+        exit 1
+      fi
 
 # ==================================================
 # Stage: check
@@ -617,7 +629,7 @@ helm-review-score:
     - if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
     - awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
     - awkenvsubst < "$HELM_REVIEW_VALUES" > generated-values-review.yml
-    - helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-review.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
+    - helm template $helm_package --values generated-values-common.yml --values generated-values-review.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
   rules:
     # exclude when $HELM_KUBE_SCORE_DISABLED is set
     - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
@@ -635,7 +647,7 @@ helm-integration-score:
     - if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
     - awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
     - awkenvsubst < "$HELM_INTEG_VALUES" > generated-values-integration.yml
-    - helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-integration.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
+    - helm template $helm_package --values generated-values-common.yml --values generated-values-integration.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
   rules:
     # exclude when $K8S_SCORE_DISABLED is set
     - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
@@ -653,7 +665,7 @@ helm-staging-score:
     - if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
     - awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
     - awkenvsubst < "$HELM_STAGING_VALUES" > generated-values-staging.yml
-    - helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-staging.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
+    - helm template $helm_package --values generated-values-common.yml --values generated-values-staging.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
   rules:
     # exclude when $K8S_SCORE_DISABLED is set
     - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
@@ -668,7 +680,7 @@ helm-prod-score:
     - if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
     - awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
     - awkenvsubst < "$HELM_PROD_VALUES" > generated-values-prod.yml
-    - helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-prod.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
+    - helm template $helm_package --values generated-values-common.yml --values generated-values-prod.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
   rules:
     # exclude when $K8S_SCORE_DISABLED is set
     - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
-- 
GitLab