feat(hydrator): add inline parameter support to Source Hydrator (#24228)#24277
Conversation
❌ Preview Environment deleted from BunnyshellAvailable commands (reply to this comment):
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #24277 +/- ##
=========================================
Coverage ? 62.46%
=========================================
Files ? 351
Lines ? 49502
Branches ? 0
=========================================
Hits ? 30922
Misses ? 15619
Partials ? 2961 ☔ View full report in Codecov by Sentry. |
|
Thanks for the PR! I've marked it as draft while it's being iterated over. I think we should add I don't think we can save CRD updates, tests, and docs for a follow-up PR. Those need to be part of the initial PR. |
4e7e061 to
7fad451
Compare
ba3b1ae to
14814e9
Compare
crenshaw-dev
left a comment
There was a problem hiding this comment.
Thanks for the changes! Can you add docs and e2e tests?
5ccd11a to
13c9fc0
Compare
be374c9 to
0c9f611
Compare
|
@crenshaw-dev, |
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
Signed-off-by: sangyeong01 <tkddud386@gmail.com>
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
34b1d6b to
2829c93
Compare
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
e184b62 to
98d2266
Compare
Signed-off-by: sangyeong01 <sy.park@alpacax.com>
976b4f3 to
68c1827
Compare
Added a note in commit 607f7a0. The docs now mention that drySource.helm, drySource.kustomize, drySource.directory, and drySource.plugin fields are available and reference the source field sections above for the full spec. |
|
@sangyeong01, @emirot is gonna give this a local test, but code LGTM. Looking forward to getting it into 3.3! |
|
I have added an ArgoCD helm application with your changes and I could see the helm chart got hydrated https://github.com/emirot/argocd-test-hydrator/tree/environments/dev/development ArgoCD app: However in my case it looks like the app is in a infinite Hydrating state |
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
|
@emirot good catch! I proposed a fix here: sangyeong01#1 |
Thanks for the fix! I tested this by deploying a local build . Before the fix, it was stuck in Hydrating state with repeated "reason":"spec.sourceHydrator differs" logs. After the fix, it reaches Hydrated and stays stable. Good to merge. |
|
Great! @sangyeong01 you can either merge my PR into your branch or copy/paste my code into this PR. :-) |
fix: SourceHydrator.DeepEquals
|
Thanks @crenshaw-dev ! I've merged your PR into my branch. The fix is now included in this PR. |
Signed-off-by: sangyeong01 <tkddud386@gmail.com>
crenshaw-dev
left a comment
There was a problem hiding this comment.
Great work, thanks so much! And thanks @emirot for the testing!
…proj#24228) (argoproj#24277) Signed-off-by: sangyeong01 <tkddud386@gmail.com> Signed-off-by: sangyeong01 <sy.park@alpacax.com> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> Signed-off-by: hai.yue <hai.yue@ingka.com>
|
Thanks @sangyeong01 |
|
Hey guys, I was really looking forward to this feature, because I wanted to use a Helm chart with multiple My AppSet looks like this: As I said, hydration works fine. But when the time comes to sync this app to the cluster, I get a The event message looks like ArgoCD tries to hydrate the already hydrated manifests from the sync branch again before applying them. When I omit all My environment:
Should I open a new issue for this bug? Have I misconfigured something, and there is no bug? Any help would be appreciated, since this is blocking us from rolling out gitops-promoter. |
|
@sym-stiller that definitely seems like a bug, can you open an issue? |

Summary
Add Helm support to Source Hydrator (alpha feature) to enable using Helm charts with environment-specific value files and parameters.
Currently, Source Hydrator only supports basic Git repository fields (
repoURL,targetRevision,path) in theDrySourcespecification, making it impossible to use with Helm charts that requirevalueFiles,parameters, or other Helm-specific configurations.This PR adds a
Helmfield to theDrySourcetype and updates the hydrator logic to properly handle Helm configurations, enabling teams to use Source Hydrator with Helm-based applications.Closes #24228
Changes
Helm *ApplicationSourceHelmfield toDrySourcetype inpkg/apis/application/v1alpha1/types.gocontroller/hydrator/hydrator.goto copy Helm configuration fromDrySourceto the hydratedApplicationSourceExample Usage
Before (not supported):
After (now supported):
Use Case
Many teams use Helm with environment-specific value files (e.g.,
values-dev.yaml,values-prod.yaml). Without this support, Source Hydrator cannot be used for Helm applications, limiting its adoption for teams that want to use both Helm and the hydration workflow.Testing
omitemptytag ensures backward compatibilityFuture Work
Checklist
Notes
This PR focuses on the core API and logic changes. Follow-up PRs will include:
The changes are minimal and backward-compatible, using the
omitemptyJSON tag to ensure existingDrySourceconfigurations continue to work without modification.