Skip to content

feat: consolidate Helm chart distribution to OCI-only and drop GitHub Pages#359

Open
udsmicrosoft wants to merge 2 commits intodocumentdb:mainfrom
udsmicrosoft:users/urismiley/oci-only-helm-distribution
Open

feat: consolidate Helm chart distribution to OCI-only and drop GitHub Pages#359
udsmicrosoft wants to merge 2 commits intodocumentdb:mainfrom
udsmicrosoft:users/urismiley/oci-only-helm-distribution

Conversation

@udsmicrosoft
Copy link
Copy Markdown
Collaborator

Closes #326.

Summary

Removes the GitHub Pages-based Helm repository (https://documentdb.github.io/documentdb-kubernetes-operator) and consolidates Helm chart distribution to the OCI registry already published to GHCR (oci://ghcr.io/documentdb/documentdb-operator). Updates every workflow, action, script, and doc that still consumed the chart from GH Pages.

Changes

Release pipeline (no more GH Pages publish)

  • Deleted .github/workflows/repair_helm_pages_release.yml (the 300+ line reusable workflow that rebuilt index.yaml and committed it to the gh-pages branch).
  • Removed the publish-helm-pages job from release_operator.yml and from the deprecated release_images.yml. OCI publication via helm push is unchanged.

CI consumers migrated to OCI

  • .github/actions/setup-test-environment/action.yml: the released-chart-version install path now runs helm install … oci://ghcr.io/documentdb/documentdb-operator --version <X>.
  • .github/workflows/test-upgrade-and-rollback.yml: dropped helm repo add documentdb / helm repo update.
  • "latest" version resolution: OCI registries don't support helm search repo, so both call sites now resolve latest by listing GHCR tags directly (`/v2/.../tags/list`) and picking the highest stable SemVer. This better matches the prior helm search repo … | .[0].version semantics than gh api releases/latest would (verified: 0.1.3 is present in GHCR but not in GitHub Releases).

Playground scripts

  • documentdb-playground/aws-setup/scripts/create-cluster.sh: collapsed the "try GH Pages → fall back to OCI" structure into a single OCI install. GITHUB_USERNAME/GITHUB_TOKEN are now optional (GHCR public charts pull anonymously).
  • documentdb-playground/aks-fleet-deployment/install-documentdb-operator.sh: replaced GH Pages install with OCI; requires explicit `CHART_VERSION` env var when not building a local chart (OCI has no implicit "latest").

Docs

  • All install/quickstart/upgrade snippets switched to:
    ```bash
    DOCUMENTDB_VERSION=<x.y.z>
    helm install documentdb-operator oci://ghcr.io/documentdb/documentdb-operator \
    --version ${DOCUMENTDB_VERSION} \
    --namespace documentdb-operator --create-namespace --wait
    ```
  • Files updated: index.md, getting-started/quickstart-kind.md, getting-started/quickstart-k3s.md, getting-started/deploy-on-eks.md, multi-region-deployment/setup.md, operations/upgrades.md, faq.md, documentdb-playground/aws-setup/README.md.
  • operations/upgrades.md was restructured: `Step 1` now sets `TARGET_VERSION` and points users to GitHub Releases for available versions (replacing the now-impossible `helm repo update` / `helm search repo --versions` flow). The `Step 4` upgrade command and `--atomic` tip use the OCI URL.
  • Stale `documentdb.github.io/...` link in `aws-setup/README.md` repointed to `documentdb.io/...`.

Root README

  • New `📦 Install` section between `📚 Documentation` and `🚀 Quick Start`, with a copy-paste OCI install snippet, version-pinning guidance, link to GitHub Releases for version discovery, and the Helm 3.8+ requirement (per the issue's explicit ask about README discoverability to compensate for the loss of `helm search repo`).

Tradeoffs (per the issue)

  • Users lose `helm repo add` + `helm search repo` discoverability — must consult GitHub Releases for available versions.
  • Requires Helm 3.8+ (March 2022) for OCI support — already widely adopted.
  • Significantly simpler release pipeline; no more `gh-pages` Helm-repo branch maintenance or `index.yaml` repair workflow.

Validation

  • `yaml.safe_load` parses all modified workflows / composite action.
  • `bash -n` parses both modified shell scripts.
  • Final `grep` sweep for `helm repo add documentdb`, `documentdb.github.io/documentdb-kubernetes-operator`, `helm search repo documentdb`, `helm repo update documentdb`, `repair_helm_pages`, `publish-helm-pages` returns zero hits across the repo.
  • Smoke-tested the GHCR tag-list resolver locally — returns `0.2.0` (matches what `helm search repo` would have returned against the old gh-pages index).
  • Confirmed `oci://ghcr.io/documentdb/documentdb-operator` is anonymously pullable via the GHCR token endpoint, so the doc snippets work without `helm registry login`.

Out of scope (intentionally untouched)

… Pages (documentdb#326)

Signed-off-by: urismiley <urismiley@microsoft.com>
@documentdb-triage-tool
Copy link
Copy Markdown

🤖 Auto-triaged by documentdb-triage-tool.

Applied: documentation, CI/CD, ecosystem, enhancement
Project fields suggested: Component docs · Priority P2 · Effort L · Status In Progress
Confidence: 0.82 (mixed)

Reasoning

component from path globs (docs, ci, playground); effort from diff stats (147+516 LOC, 16 files); LLM: Cross-cutting consolidation of Helm chart distribution from GitHub Pages to OCI-only, touching release pipelines, CI workflows, playground scripts, and docs across multiple files and components.

If a label is wrong, remove it manually and ping @patty-chow so the rules can be tuned. The bot will not re-label items that already have component labels.

@udsmicrosoft udsmicrosoft marked this pull request as ready for review April 29, 2026 15:32
@udsmicrosoft udsmicrosoft requested a review from xgerman as a code owner April 29, 2026 15:32
Copilot AI review requested due to automatic review settings April 29, 2026 15:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the GitHub Pages–hosted Helm repository and standardizes Helm chart consumption and publication on the GHCR OCI registry (oci://ghcr.io/documentdb/documentdb-operator) across CI, docs, and playground scripts.

Changes:

  • Removed the GitHub Pages Helm repo publishing workflow and its usage from release workflows.
  • Migrated CI and scripts from helm repo add/search flows to OCI installs, including “latest” resolution via GHCR tag listing.
  • Updated documentation and READMEs to use OCI-based install/upgrade commands and updated links.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
documentdb-playground/aws-setup/scripts/create-cluster.sh Simplifies operator install to OCI-only with optional GHCR auth.
documentdb-playground/aws-setup/README.md Updates documentation link from GitHub Pages to documentdb.io.
documentdb-playground/aks-fleet-deployment/install-documentdb-operator.sh Switches install flow from Helm repo to OCI and requires explicit version pinning.
docs/operator-public-documentation/preview/operations/upgrades.md Reworks upgrade steps to remove Helm repo semantics and use OCI + version pinning.
docs/operator-public-documentation/preview/multi-region-deployment/setup.md Updates multi-cluster install snippet to OCI-based Helm install.
docs/operator-public-documentation/preview/index.md Updates primary install snippet to OCI-based Helm install with pinned version.
docs/operator-public-documentation/preview/getting-started/quickstart-kind.md Updates quickstart install snippet to OCI.
docs/operator-public-documentation/preview/getting-started/quickstart-k3s.md Updates quickstart install snippet to OCI.
docs/operator-public-documentation/preview/getting-started/deploy-on-eks.md Replaces Helm repo setup docs/snippets with OCI distribution guidance.
docs/operator-public-documentation/preview/faq.md Updates operator upgrade snippet to OCI + version pinning.
README.md Adds an “Install” section documenting OCI installs and Helm version requirement.
.github/workflows/test-upgrade-and-rollback.yml Removes Helm repo usage and resolves “latest” via GHCR tags.
.github/workflows/repair_helm_pages_release.yml Deleted: removes GH Pages Helm repo repair/republish workflow.
.github/workflows/release_operator.yml Removes GH Pages Helm publish job from operator release flow.
.github/workflows/release_images.yml Removes GH Pages Helm publish job from deprecated images release flow.
.github/actions/setup-test-environment/action.yml Updates released-chart install path to OCI and adds GHCR tag-based “latest” resolver.

Comment thread .github/actions/setup-test-environment/action.yml Outdated
Comment thread .github/actions/setup-test-environment/action.yml Outdated
Comment thread .github/actions/setup-test-environment/action.yml Outdated
Comment thread .github/workflows/test-upgrade-and-rollback.yml Outdated
Comment thread documentdb-playground/aws-setup/scripts/create-cluster.sh Outdated
Signed-off-by: urismiley <urismiley@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD documentation Improvements or additions to documentation ecosystem enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider consolidating Helm chart distribution to OCI-only (drop GitHub Pages)

3 participants