docs(argo-cd): publish HelmReplacementPath OCL property + clarify valueFiles handling for Update Image Tags step#3141
Open
vlussenburg wants to merge 1 commit into
Conversation
…behaviour Two related gaps in the Update Argo CD Application Image Tags doc that trip up Config-as-Code users: 1. **OCL property name is undocumented.** The page describes the "Helm image tag path" UI field but never names the OCL/HCL key it serialises to. Users editing deployment_process.ocl directly have to read Calamari source (PackageVariables.HelmReplacementPath) to find that the field is `HelmReplacementPath` on the package reference and the resolved variable is `Octopus.Action.Package[<ref>].HelmReplacementPath`. Octopus silently strips unrecognised property names from saved OCL, so guessing (`HelmImageTagPath`, `Octopus.Action.ArgoCD.HelmImageTagPath`, etc.) yields no error — the step just stays a no-op at runtime, which is hard to diagnose. Added an OCL-focused info block with a complete package block example. 2. **"Helm charts" section understates what the step writes to.** The page says "matching image tags in the values.yaml are replaced", which reads as if only the chart's default values.yaml is touched. In practice, when `HelmReplacementPath` is set, the step ALSO writes to every file listed in the Application's spec.source.helm.valueFiles (verified against Calamari/source/Calamari/ArgoCD/Conventions/UpdateImageTag/HelmUpdater.cs `ProcessHelmSourceUsingStepVariables`). This is the behaviour any real per-env Helm-on-Argo setup depends on. Conversely, inline `spec.source.helm.valuesObject` is NOT written — also worth calling out so people don't go hunting. Rewrote the section to spell out both paths (step-configured vs annotation-driven) and the valuesObject limitation explicitly.
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two related gaps in the Update Argo CD Application Image Tags doc that trip up Config-as-Code users:
1. The OCL property name behind the "Helm image tag path" field is undocumented
The page describes the Helm image tag path UI field but never names the OCL/HCL key it serialises to. Users editing
deployment_process.ocldirectly have to read Calamari source (PackageVariables.HelmReplacementPath) to discover that:HelmReplacementPathOctopus.Action.Package[<ref>].HelmReplacementPathOctopus's OCL save silently strips unrecognised property names from package references, so guessing names like
HelmImageTagPathorOctopus.Action.ArgoCD.HelmImageTagPathyields no error — the step just stays a no-op at runtime, which is genuinely hard to diagnose without reading source code. Added an OCL-focused info block with a complete `packages` example.2. The "For Helm charts" section understates what the step writes to
The current text reads:
This reads as if only the chart's default `values.yaml` is ever touched, which would make the step useless for the common per-env values-file pattern. In practice, when `HelmReplacementPath` is set, the step also writes to every file listed in the Application's `spec.source.helm.valueFiles` — confirmed against
HelmUpdater.ProcessHelmSourceUsingStepVariables.Conversely, inline `spec.source.helm.valuesObject` is not written by the step (the step only edits committed values files). Also worth calling out so users with valuesObject-based Applications don't go chasing missing tag bumps.
Rewrote the bullet list to spell out both code paths (step-configured vs annotation-driven) and the `valuesObject` limitation explicitly.
Why
Both items came up debugging a working Octopus + Argo CD lab where the step ran "Success" for every deployment but reported `Nothing to update for Application` for several days. Root cause was a guessed OCL property name (which Octopus accepted on save but ignored at runtime) plus an architecture using inline `valuesObject`. The doc as it stands doesn't put a CaC user in a position to spot either.
Out of scope