feat: support OCI (oci://) Helm chart repositories - #666
Open
yupanzi wants to merge 1 commit into
Open
Conversation
An OCI repository URL points at a single chart path; its semver registry tags become the chart's versions, synthesized into a repo.IndexFile so the existing chart list/detail/content endpoints work unchanged. - allow oci:// in repository creation, validating the URL shape and that the newest tag is a loadable Helm chart - list versions via registry tags; pull the newest chart once to enrich display metadata, adopting its Chart.yaml name for mirrored charts - resolve auto-upgrade latest versions from registry tags, keeping the classic path's version policy and chart-name fail-safe - use an explicit anonymous authorizer for credential-less registries so the server never falls back to ambient Docker/Helm credential stores - compute the archive cache key after OCI tag resolution and scope cache eviction so http repositories cannot evict same-host OCI entries - fall back to the newest entry when a version-less lookup matches no stable version (prerelease-only charts 404'd before) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Summary
Support OCI (
oci://) Helm chart repositories. An OCI repository URL points at a single chart path (e.g.oci://registry-1.docker.io/bitnamicharts/nginx); its semver registry tags become the chart's versions, synthesized into arepo.IndexFileso the existing chart list/detail/content endpoints and the frontend work unchanged.对应 #589:支持添加
oci://类型的 Helm 仓库,registry 的 semver tag 即版本列表,浏览 / 安装 / 升级 / 自动升级全链路可用。oci://URLs, validating the URL shape (single chart path, no tag/digest) and that the newest tag is a loadable Helm chartWhy
Major charts (cert-manager, kata, Bitnami, and most GHCR/GitLab-hosted projects) are moving from classic index.yaml repositories to OCI distribution. Kite's
LoadArchivecould already download anoci://chart archive, but OCI repositories could not be registered or browsed — repository creation rejected non-http(s) URLs and all browsing was index.yaml-based.Related issue
Closes #589
Validation
go build ./...,go vet,go test ./pkg/helm ./pkg/helmutil, frontendtype-check/ lint / format all passoci://registry-1.docker.io/bitnamicharts/nginx: 288 versions listed from tags, latest metadata enriched (description/icon/appVersion), README/values/templates loaded, old versions individually retrievableoci://registry-1.docker.io/library/busybox) is rejected at creation with a clear errorLoadArchiveflow; verified with both tagged and tag-less chart URLsChecklist
🤖 Generated with Claude Code