feat: consolidate Helm chart distribution to OCI-only and drop GitHub Pages#359
Conversation
… Pages (documentdb#326) Signed-off-by: urismiley <urismiley@microsoft.com>
|
🤖 Auto-triaged by documentdb-triage-tool. Applied: Reasoningcomponent 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 |
There was a problem hiding this comment.
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/searchflows 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. |
Signed-off-by: urismiley <urismiley@microsoft.com>
|
Question on docs versioning + chart pin: avoid per-release manual bumps? The PR pins Three patterns that get the same "docs match deployed chart" property without the per-release toil: 1. Placeholder + release-time substitution (lowest churn). Use a sentinel in markdown: DOCUMENTDB_VERSION=__DOCUMENTDB_VERSION__
helm install documentdb-operator oci://ghcr.io/documentdb/documentdb-operator \
--version ${DOCUMENTDB_VERSION} ...And in - name: Stamp release version into docs
if: github.event_name == 'release'
run: |
VERSION=${{ github.event.release.tag_name }}
find docs -name '*.md' -exec sed -i "s/__DOCUMENTDB_VERSION__/${VERSION}/g" {} +Main branch source stays evergreen, every release snapshot is correct, zero release-time work. 2. Drop the pin from quickstarts entirely. OCI charts support
The version-snapshot problem then disappears -- 3. Hybrid (probably the right answer here).
This way: zero per-release docs bumps, each snapshot is internally consistent, new users get the lowest-friction install, and production users get the explicit pinning guidance where it actually matters. Verified locally that Happy to send a follow-up PR with the placeholder + sed change if there's interest in pattern 1 or 3. |
Signed-off-by: urismiley <urismiley@microsoft.com>
|
Addressed in
I also updated the PR description to reflect this so it no longer says every snippet is pinned to a literal version. |
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 workflows, actions, scripts, and docs that still consumed the chart from GH Pages.Changes
Release pipeline (no more GH Pages publish)
.github/workflows/repair_helm_pages_release.yml(the 300+ line reusable workflow that rebuiltindex.yamland committed it to thegh-pagesbranch).publish-helm-pagesjob fromrelease_operator.ymland from the deprecatedrelease_images.yml. OCI publication viahelm pushis unchanged.CI consumers migrated to OCI
.github/actions/setup-test-environment/action.yml: thereleased-chart-versioninstall path now runshelm install … oci://ghcr.io/documentdb/documentdb-operator --version <X>..github/workflows/test-upgrade-and-rollback.yml: droppedhelm repo add documentdb/helm repo update.helm search repo, so both call sites now resolvelatestby listing GHCR tags directly (/v2/.../tags/list) and picking the highest stable SemVer. This better matches the priorhelm search repo … | .[0].versionsemantics thangh api releases/latestwould.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_TOKENare optional for authenticated GHCR pulls.documentdb-playground/aks-fleet-deployment/install-documentdb-operator.sh: replaced GH Pages install with OCI; requires explicitCHART_VERSIONenv var when not building a local chart.Docs
DOCUMENTDB_VERSION=0.2.0:--version <release-version>from GitHub Releases.<release-version>placeholders instead of literal release numbers..github/workflows/deploy_docs.ymlstamps<release-version>with the GitHub release tag beforemike deploy, so versioned docs snapshots do not require per-release manual doc bumps.README.md,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.documentdb.github.io/...link inaws-setup/README.mdrepointed todocumentdb.io/....Root README
�� Installsection between📚 Documentationand🚀 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.Tradeoffs (per the issue)
helm repo add+helm search repodiscoverability — must consult GitHub Releases for available versions.gh-pagesHelm-repo branch maintenance orindex.yamlrepair workflow.Validation
yaml.safe_loadparses all modified workflows / composite action.bash -nparses both modified shell scripts.helm repo add documentdb,documentdb.github.io/documentdb-kubernetes-operator,helm search repo documentdb,helm repo update documentdb,repair_helm_pages,publish-helm-pagesreturns zero hits across the repo.DOCUMENTDB_VERSION=0.2.0/TARGET_VERSION=0.2.0returns zero hits in the public docs and README.0.2.0.oci://ghcr.io/documentdb/documentdb-operatoris anonymously pullable with an isolated Helm registry config, so the quickstart snippets work withouthelm registry login.docs/operator-public-documentation.Out of scope (intentionally untouched)
gh-pagesbranch used bydeploy_docs.ymlfor mike-based docs hosting is left alone — it serves a different purpose than the deprecated Helm repository and is not what issue Consider consolidating Helm chart distribution to OCI-only (drop GitHub Pages) #326 targets.