Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-3070

"Support Helm lookup function in ArgoCD by RH GitOps Operator"

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • None
    • GitOps
    • False
    • None
    • False
    • Not Selected

      What is the nature and description of the request ?

      The Red Hat GitOps Operator provisions ArgoCD which in turn uses the "helm template + kubectl apply" pattern to deploy helm charts to Red Hat OpenShift.

      The built-in function "lookup" in helm does not work with ArgoCD.(https://helm.sh/docs/chart_template_guide/functions_and_pipelines/#using-the-lookup-function)
      As it does not work in "helm template", see > https://github.com/helm/helm/issues/8137 . This leads to incompatibilities with helm charts that are not specifically written for gitops / ArgoCD usage, e.g. by third party vendors.

      Why does the customer need this? (List the business requirements here)

      Need ArgoCD to provide full compatibility with Helm Chart deployments.

      How would the customer like to achieve this? (List the functional requirements here)

      From our point of view there are two ways to achieve ArgoCD compatibility with Helm Charts (specifically for the lookup function):

      1) ArgoCD provides native helm support and uses "helm install" / "helm upgrade" instead of "helm template + kubectl apply"
      -> like FluxCD does (https://fluxcd.io/docs/components/helm/helmreleases/)

      2) Helm template (or "helm install --dry-run") supports the lookup function, as requested in https://github.com/helm/helm/issues/8137
      and implemented in https://github.com/helm/helm/pull/9426 .

      We are aware that the ArgoCD repo server would require permission to access the OCP cluster to realize the lookup function this way but we will accept this to stay compatible with helm charts (-> lookup).

      For each functional requirement listed in question 4, specify how Red Hat and the customer can test to confirm the requirement is successfully implemented.

      Red Hat can test the requirement by installing a helm chart with ArgoCD / GitOps Operator that uses a lookup AND depends on this lookup returning something (e.g. all namespaces in the cluster).
      A minimal sample is given in https://github.com/helm/helm/issues/8137#issuecomment-629485539 - this contains a minimal sample for a helm chart with lookup and the steps to reproduce the "lookup does not work, returns empty" situation.

            halawren@redhat.com Harriet Lawrence
            rhn-support-dkarde Dipak Karde
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: