Would you move your team's Helm chart distribution to an OCI registry, and what breaks if you do?
answer
- Separate the two kinds of consumer
- One artefact system, one credential model
- The affordance you remove needs a replacement
- A tag can expire; a file does not
- Neither format is deprecated
basics
~20 sUsually yes for internal charts consumed by automation: one artefact system, one credential model, no static index to regenerate. The costs are lost search and browsability, every consumer needing oci:// support, and registry retention now able to remove a chart a static file server would have kept.
solid answer
~50 sFor charts consumed by pipelines and pinned by version, a registry is the better default: charts sit beside the images they deploy, authentication and access control collapse into one system you already operate, replication and mirroring come for free, and publishing is one push with no index to regenerate. The costs are real. `helm search` stops working, so discovery must be rebuilt as documentation. Every consumer — CI jobs, developer machines, and any GitOps controller such as Argo CD or Flux — must handle `oci://` references before you retire the old path. Registry retention rules can delete a tag that a static `.tgz` on a web server would have kept forever, which matters for rollback and audit. Provenance is unchanged and still opt-in; a registry signs nothing for you. Classic repositories are not deprecated, so run both during migration, cut consumers over one at a time, and switch off the index only once nothing reads it.
go deeper
You are unlikely to own this decision, but know that both distribution styles exist, that neither is obsolete, and that the reference form differs between them.
Be able to list concrete consequences on both sides: one credential model and no index to regenerate, against no search and every consumer needing to speak oci://.
Show a migration you could actually run: dual publish, migrate consumers you own first, publish the catalogue before removing the index, and measure the old path before retiring it.
Own the framing — who your consumers are, what the registry's retention and permission model means for charts, and the case for keeping both formats indefinitely rather than forcing a cutover.
## Frame the decision, not the technology The honest answer starts by separating two populations of consumer, because they pull in opposite directions: - **Automated, internal consumers** — pipelines, in-cluster reconcilers, platform tooling — that reference exact versions. They never browse. For them a registry is close to free. - **Human, exploratory consumers** — engineers evaluating what your platform offers, and any external audience. They *do* browse, and browsing is precisely what a registry does not provide for charts. If your population is entirely the first kind, this is an easy yes. If it is meaningfully the second, the migration has a documentation deliverable attached to it, and pretending otherwise is how these projects end badly. ## What you gain **One artefact system.** The chart and the image it deploys live in the same registry, under related paths, with one set of credentials, one retention policy, one replication configuration and one audit trail. Most organisations already run a registry to a high standard; a static chart repository is usually somebody's side project. **One authentication and authorisation model.** A registry expresses per-path permissions. "This job may publish under `platform-charts/*` and nothing else" is a sentence the registry can enforce. Basic auth in front of a static file server usually cannot express that. **Publishing gets shorter.** With a classic repository, publishing is package, upload, regenerate the index, serve it, and wait for consumers to refresh their cached copy. With a registry it is one push, visible immediately. One fewer artefact to keep in sync is one fewer way to ship a version nobody can see. **Mirroring and air-gap transfer** ride on registry machinery you likely already have for images, rather than a second bespoke path for charts. ## What you lose or must rebuild **Discovery.** `helm search repo` reads cached repository indexes and a registry has none, so it silently returns nothing. Replace it deliberately: a published catalogue of supported charts and versions, and a helper that lists a path's tags. This is the item most often left out of a migration plan. **Consumer compatibility.** Every place that fetches a chart must handle `oci://`. Enumerate them: CI jobs, developer laptops, any GitOps controller such as Argo CD or Flux, and any internal tool that wraps Helm. Check each one before you retire the index, not after. **Durability assumptions.** A `.tgz` on a file server stays until someone deletes it. A registry tag lives under a retention policy that may have been written with build images in mind, where expiring anything older than ninety days is sensible. Applied to charts it can remove the version a live release was installed from — the one you need for a rollback or an audit. Decide explicitly that chart paths are exempt, and verify the rule. **Nothing about trust changes.** Provenance is still opt-in and produced at package time; pushing into a registry signs nothing for you and verifies nothing on the way in. Do not let "we moved to the registry" be recorded as a supply-chain improvement it is not. ## How to run the migration 1. **Dual-publish first.** Publish every version to both the registry and the existing indexed repository. Classic repositories are not deprecated — the documentation recommends registries, which is a weaker claim — so there is no deadline forcing a rushed cutover. 2. **Agree the path layout up front.** Where charts sit relative to images, and how that maps onto the permissions your registry can express. Renaming a published path later is worse than deciding slowly now. 3. **Migrate consumers one at a time**, starting with the ones you own. Each cutover is a small change: the reference form, and the credential the job uses. 4. **Add the catalogue before you remove the index**, so the discovery gap never actually opens. 5. **Instrument the old path.** Watch the access log on the index until it goes quiet. A silent index is the only evidence that nothing depends on it; an announcement is not. 6. **Then retire it** — and keep the archives readable for a stated period rather than deleting them the same day. ## Where you would decide otherwise Keep the indexed repository when you publish to an audience you do not control and cannot instrument, when browsability is part of the product, or when a critical consumer cannot speak `oci://` and you do not own it. "Both, indefinitely" is a legitimate steady state; the cost is one extra publish step in a pipeline you already have, which is small next to breaking a consumer you cannot see.
- Your registry expires tags untouched for ninety days. What does that do to charts?It can delete the chart version a live release was installed from, which is exactly what you need for a rollback, a rebuild or an audit. Retention rules written for build images do not suit charts. Exempt chart paths explicitly, verify the rule against a real path rather than trusting the configuration, and keep any version that a running release still references.
- Does moving charts into the registry improve your supply-chain posture?Not by itself. Provenance is produced at package time and is opt-in; pushing into a registry neither signs a chart nor verifies one. What genuinely improves is credential and access management, because chart publishing inherits the registry's path-scoped permissions and audit trail. Claim that benefit, not a signing benefit you did not implement.
- How would you know it is safe to switch off the old indexed repository?By measurement, not announcement. Instrument the index and archive URLs and watch until access stops, having first migrated every consumer you own and published the catalogue that replaces search. Dual-publish throughout so there is no window where a laggard breaks, and when the log is quiet, retire it while keeping the archives readable for a stated period.
Moving charts into the registry is like closing the branch library and putting the books in the warehouse you already run: cheaper and better secured, but nobody can browse the shelves any more unless you print a catalogue.
saying these in an interview costs you the question
- Says classic chart repositories are deprecated
- Assumes every consumer already supports oci:// references
- Claims the registry signs or verifies charts for you
- Ignores retention policies deleting a published chart version
- Plans a big-bang cutover with no dual publishing
- Treats lost search as not worth replacing