Skip to content

docs(ec): cover repo/OCI-sourced Helm extension charts in v2→v3 migration#4276

Open
sgalsaleh wants to merge 2 commits into
mainfrom
ec-v3-migrate-repo-sourced-extensions
Open

docs(ec): cover repo/OCI-sourced Helm extension charts in v2→v3 migration#4276
sgalsaleh wants to merge 2 commits into
mainfrom
ec-v3-migrate-repo-sourced-extensions

Conversation

@sgalsaleh

Copy link
Copy Markdown
Member

Problem

Embedded Cluster v3 resolves Helm extension charts from .tgz archives bundled in the release. It does not pull extension charts at install time from an HTTP Helm repository or an OCI registry — the v3 extensions.helmCharts schema has no repository/registry field.

A vendor migrating a v2 extension whose chart was sourced from a repo or registry (e.g. chartname: ingress-nginx/ingress-nginx or chartname: oci://quay.io/jetstack/charts/cert-manager) hits a wall: the v2→v3 migration docs only showed the Config YAML shape change and never explained where the .tgz comes from. In one case a v2-shaped extensions config was promoted under a v3 apiVersion, the extension's images never made it into the air gap bundle, and the install failed.

What this changes

Docs-only. Closes the migration-path gap by documenting the fetch-and-bundle procedure.

  • embedded-v3-migrate.mdx — new comparison subsection "Helm extension charts must be bundled in the release" explaining the v2 (repo/OCI pull) → v3 (bundled .tgz) model; and expands the extensions migration step from a pure YAML swap into: helm pull (HTTP repo and OCI examples) → add the .tgz to the release → reference it in extensions.helmCharts.
  • embedded-using.mdx (#add-extensions) — states the bundled-.tgz requirement and expands the steps to package/pull and reference the chart.
  • embedded-config.mdx — adds a requirements bullet to the extensions.helmCharts reference.

Example chart sources were verified against upstream: https://kubernetes.github.io/ingress-nginx (valid repo, versions have no v prefix) and oci://quay.io/jetstack/charts/cert-manager (canonical OCI location; the 1.19.2 tag exists on quay.io).

Out of scope

The related asks to add a promote-time lint for a missing chart archive / HelmChart CR and to fetch-and-bundle at the platform level during promote are code/product changes in other repos, tracked separately.

🤖 Generated with Claude Code

…tion

Embedded Cluster v3 resolves extension charts from .tgz archives bundled
in the release; it does not pull them from an HTTP Helm repository or an
OCI registry at install time. Migrating a v2 extension whose chart was
sourced from a repo/registry therefore requires packaging the chart as a
.tgz and including it in the release, not just reshaping the Config YAML.

- embedded-v3-migrate.mdx: add a comparison subsection explaining the
  bundled-.tgz model, and expand the extensions migration step with the
  helm pull (HTTP repo + OCI) and bundle-then-reference procedure.
- embedded-using.mdx (#add-extensions): state the bundled-.tgz
  requirement and expand the steps to package/pull and reference the chart.
- embedded-config.mdx: add a requirements note to the extensions reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sgalsaleh
sgalsaleh requested a review from a team as a code owner July 17, 2026 18:51
@netlify

netlify Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs ready!

Name Link
🔨 Latest commit 69d8140
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs/deploys/6a5a9704f071000007c40749
😎 Deploy Preview https://deploy-preview-4276--replicated-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs-upgrade ready!

Name Link
🔨 Latest commit 69d8140
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs-upgrade/deploys/6a5a97042447c200083d11cf
😎 Deploy Preview https://deploy-preview-4276--replicated-docs-upgrade.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions Bot added type::docs Improvements or additions to documentation type::feature labels Jul 17, 2026
@AmberAlston

Copy link
Copy Markdown
Member

The .tgz bundling coverage looks good — this closes the gap that was causing vendors to hit install failures when migrating repo/OCI-sourced extensions.

One thing I think is missing: should the migration steps also mention creating a HelmChart v2 CR for each extension chart? The existing step 6 in the migration doc says "Ensure that your release has a corresponding HelmChart v2 custom resource for each of your Helm charts," but it's not clear whether that includes extension charts. The new extension-specific steps (helm pull → add .tgz → reference in EC Config) don't mention the CR at all.

This matters for Security Center — without a HelmChart CR, the extension chart's images don't get scanned. The validation currently exempts extension charts from the CR requirement, so vendors won't get a lint error, but they'll silently lose image scanning coverage.

If extension charts should have HelmChart CRs (and I think they should based on the docs stating every chart needs one), it would be worth adding that as a sub-step here.

@AmberAlston

Copy link
Copy Markdown
Member

Update on the HelmChart CR concern above: Salah clarified that extension charts don't need a separate HelmChart CR — the schema lives inside the EC Config, and Security Center scans extensions without one. So the migration steps in this PR are correct as-is.

That said, this is worth making explicit in a few spots since the existing docs are ambiguous:

  1. Step 6 in the migration steps ("Ensure that your release has a corresponding HelmChart v2 custom resource for each of your Helm charts") — a vendor reading this right after the new extension steps could think they also need a CR for extension charts. Worth noting that this applies to application charts, not extension charts defined in the EC Config.

  2. "HelmChart v2 required" comparison section — same ambiguity. A note that extension charts are handled through the EC Config instead of a separate CR would help.

  3. extensions.helmCharts requirements in embedded-config.mdx — could add a bullet noting no separate HelmChart CR is needed.

These are small clarifications — happy to push commits to this PR if you'd prefer.

@AmberAlston

Copy link
Copy Markdown
Member

I'll go ahead and contribute to this pr since they are small edits

…art CR

The HelmChart v2 CR requirement applies to application charts only.
Extension charts are defined in the Embedded Cluster Config, which
serves the same purpose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type::docs Improvements or additions to documentation type::feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants