-
Notifications
You must be signed in to change notification settings - Fork 5.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Helm lookup function support - enhancement proposal #21745
Comments
I could try with providing the appropriate PR once this proposal gets accepted. |
Over time I've become more opposed to However, I'm open to exploring the possible design here. Here are my concerns:
|
I think that executing Regarding mentioned concerns:
|
consider presenting a warning when a chart uses lookup |
Summary
This is a proposal to support
helm lookup
function, which lack has already been reported and discussed in #5202.Motivation
The
helm lookup
function is widely used by chart maintainers to manage passwords/certificates generation, in backward compatibility converters and auto component migrations. All of these actions requireshelm
to contact (aka look up) the destination cluster before rendering the final list of kuberenetes resources.ArgoCD
should allow using this feature as it is contained in the standard helm functions list. Based on the linked issue #5202, it looks like lack ofhelm lookup
support affects lot of people & projects.There are two known workarounds (1, 2) posted, however they will work in the specific
ArgoCD
setups and will NOT work in the multi-tenant/multi-cluster or non-k8s hosted instances, which drastically reduces number of use cases, where such workarounds can be applied.Proposal
As per helm docs, the lookup functionality can be enabled by specifing the
--dry-run=server
option to the helm command.This will be translated to the
argocd CLI
:or using declarative syntax:
The default value of
--helm-server-dry-run
will befalse
to be consistent and backward compatible with previous releases.Setting
--helm-server-dry-run
will add--dry-run=server
option to thehelm template
command running on therepo-server
during manifest generation.Another important point is that
helm template --dry-run=server
requires the connection to the k8s cluster and this will be provided with the--kubeconfig
or with-kube-(apiserver|as-group|as-user|ca-file|context|insecure-skip-tls-verify|tls-server-name|token)
options.This configuration will be automatically generated and provided to
helm
based on thespec.destination
cluster details.This solution, in contrast to the mentioned workarounds, will support multi-tenant/multi-cluster setups. Everything will work "locally" within
Application manifest
andrepo-server
will gain the same privileges (and no more) as theapplication-server
for sync to that specificdestination
.The text was updated successfully, but these errors were encountered: