Skip to content

HIP: separate OCI pull identity from chart identity - #443

Open
BeganovR wants to merge 1 commit into
helm:mainfrom
BeganovR:hip-oci-artifact-name
Open

HIP: separate OCI pull identity from chart identity#443
BeganovR wants to merge 1 commit into
helm:mainfrom
BeganovR:hip-oci-artifact-name

Conversation

@BeganovR

Copy link
Copy Markdown

Summary

Adds a HIP proposing an optional artifactName field on dependencies[] entries in Chart.yaml, so the OCI pull basename can be set separately from the chart's own identity (name).

Today dependencies[].name has to double as both the chart identity checked by helm lint against the vendored subchart's own Chart.yaml name, and the basename Helm appends to build the OCI pull reference (oci://<repo>/<name>:<version>). When a chart is published or mirrored under a registry path whose basename differs from its own name (common with registry mirroring or org naming prefixes), there's no way to satisfy both roles at once: helm dependency update can pull the chart, but helm lint then fails with a paired error/warning.

The proposed field is opt-in and backward compatible: if unset, the pull basename still falls back to name exactly as today.

Fixes/addresses helm/helm#32529, where this was discussed and a HIP was requested before implementation.

A reference implementation exists locally covering pkg/chart/v2/dependency.go, pkg/downloader/manager.go, and internal/resolver/resolver.go, with unit and end-to-end test coverage. That PR against helm/helm will follow once this HIP has been reviewed.

Test plan

  • Maintainer review of the proposal itself (this is a HIP, not code)

For OCI dependencies, dependencies[].name in Chart.yaml has to serve
as both chart identity (checked by helm lint against the vendored
subchart's own name) and OCI pull basename. When a chart is published
or mirrored under a registry path whose basename differs from its own
name, there's no way to satisfy both roles, and helm lint fails with
a paired error/warning after helm dependency update succeeds.

This proposes an optional artifactName field on dependencies[] that
carries the OCI pull basename separately from name, so name always
represents chart identity. Fully additive and backward compatible.

See helm/helm#32529

Signed-off-by: BeganovR <446110@niuitmo.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant