diff --git a/templates/gitlab-ci-helm.yml b/templates/gitlab-ci-helm.yml
index cf2fc67fcfdd34c449c9ba1156f4564048e8531c..96ca9b666351113dd953353fea205a61b72e0efa 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"'