feat(manager): share OCI Helm chart resolution across managers - #45760
Draft
secustor wants to merge 2 commits into
Draft
feat(manager): share OCI Helm chart resolution across managers#45760secustor wants to merge 2 commits into
secustor wants to merge 2 commits into
Conversation
Add getOciChartDep() to helmv3/oci.ts and use it in argocd, fleet, flux, helmfile, helmsman, helmv3, kustomize, sveltos, terraform and vendir. - set pinDigests: false for OCI charts in all of them - apply registryAliases to OCI charts in argocd, helmfile and helmsman - keep the registry port in terraform helm_release repositories - skip fleet OCI charts without a version instead of using 'undefined'
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.
Changes
Adds
getOciChartDep()tolib/modules/manager/helmv3/oci.tsand uses it in every manager that resolves Helm charts stored in OCI registries:argocd,fleet,flux,helmfile,helmsman,helmv3,kustomize,sveltos,terraform(helm_release) andvendir.The helper strips the
oci://prefix and a trailing slash, resolvesregistryAliasesthrough thedockerfilemanager'sgetDep(), and returns thedockerdatasource, thepackageNameandpinDigests: false. The version fields these managers update cannot carry a digest: Helm only accepts one inside the OCI reference (chart@sha256:..., helm/helm#12690) and Flux HelmCharts take semver only, so a pin attempt failed in auto-replace with "Digest is not updated". Each manager keeps its owndepNameconvention.Until now every manager carried its own copy of this logic and the copies disagreed, so this PR also changes behaviour:
pinDigests: falsewas only set byfleet,helmv3,kustomizeandvendir.argocd,flux,helmfile,helmsman,sveltosandterraformnow set it as well, sopinDigests: trueno longer produces failing pin attempts. Forargocd(already excluded by thedocker:pinDigestspreset) andterraform(manager defaultpinDigests: false) the dep-level flag only matters whenpinDigests: trueis set explicitly.registryAliaseswere ignored for OCI charts inargocd,helmfile(oci://charts andoci: truerepositories) andhelmsman. They now apply the same way as for container images. TheregistryAliasesdocs and theargocdandhelmsmanreadmes mention this.terraformjoinedrepositoryandchartwithurl-join, which turnsoci://registry.example.com:5000/chartsintoregistry.example.com://5000/charts/<chart>. The port is kept now.fleetproducedcurrentValue: 'undefined'for OCI charts without aversion. Such charts are now skipped withunspecified-version, like charts from classic repositories.Context
Please select one of the following:
AI assistance disclosure
Did you use AI tools to create any part of this pull request?
Please select one option and, if yes, briefly describe how AI was used (e.g., code, tests, docs) and which tool(s) you used.
Claude Code (Claude Fable 5.1) wrote the code, tests and documentation changes, starting from an audit of the duplicated OCI chart handling across managers.
Use of AI in replying to PR comments
Who answers review comments:
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via: