-
Notifications
You must be signed in to change notification settings - Fork 6
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
Default Values in Helm Templates Cause ArgoCD Sync Issue #626
Comments
Hi fjammes, thanks for bringing this up. We are aware of the problems and are trying to provide a fix in the next release. However, if you want you can provide a fix in operator-templating. Let us know if you're interested and/or need some guidance. Kind regards, |
Hi @Maleware , I am working on a fix , will let you know ASAP! |
I have a first PR here: #639 |
Hi @fjammes, thank you for your contribution but this is not the way to go. The CRDs are generated and therefore this change will be overwritten. We need to adapt this in code. Edit: Sorry for not commenting this earlier. The PR however gives a nice hint on what to look for :) Are there more defaults in the other operators? Ping @nightkr |
@maltesander yes there is roughly the same defaults in all operators I have used: commons-operator listener-operator secret-operator zookeeper-operator. |
FYI I have opened a discusion with the kube-derive team: kube-rs/kube#1678 |
Problem
Helm charts often include explicit default values for certain parameters in the rendered templates. However, when Kubernetes stores these resources in etcd, it removes these default values from the actual state. This discrepancy causes ArgoCD sync issues, as it detects differences between the desired state (explicit defaults) and the actual state (defaults removed).
For example, in the provided ArgoCD configuration file,
jqPathExpressions
are used to ignore these discrepancies:While this workaround resolves sync errors, it adds complexity to the configuration.
In addition, here is the full ArgoCD file which allow to install a bunck of stackable operators:
Desired Behavior
Helm templates should avoid explicitly rendering default values that Kubernetes automatically assigns. This would eliminate the need for
jqPathExpressions
in ArgoCD configurations, simplifying setup and maintenance.Proposed Solution
For instance:
Benefits
jqPathExpressions
in theignoreDifferences
section.Impact
This change would enhance compatibility with ArgoCD and improve usability for teams relying on GitOps workflows to manage Helm-based deployments.
Additional Context
For example, with this change, the provided ArgoCD configuration could omit the
ignoreDifferences
block, as the sync issues caused by explicit defaults would no longer occur.The text was updated successfully, but these errors were encountered: