Skip to content

Give the Kubernetes operator a home in the docs, and point it at its own - #62

Merged
guanzhousongmicrosoft merged 1 commit into
documentdb:mainfrom
GuanzhouSong:docs/kubernetes-operator-page
Aug 3, 2026
Merged

Give the Kubernetes operator a home in the docs, and point it at its own#62
guanzhousongmicrosoft merged 1 commit into
documentdb:mainfrom
GuanzhouSong:docs/kubernetes-operator-page

Conversation

@GuanzhouSong

Copy link
Copy Markdown
Contributor

Summary

Kubernetes is close to invisible in this repository. Before this change, the only mention anywhere is a single link in readme.md — so a reader browsing the documentation site sees VS Code, Python, Node.js, mongosh, and pre-built packages, with no sign that DocumentDB runs on Kubernetes at all.

This adds a kubernetes-operator section that orients the reader and hands off to the operator's own documentation.

What changed

  • New top-level kubernetes-operator/ section — a single index.md plus navigation.yml, the same shape documentdb-local/ and architecture/ already use. It sits alongside documentdb-local rather than nested under getting-started, because the two are the same kind of thing (a way to run DocumentDB) and the docs landing page enumerates top-level sections.
  • Cross-links in from the getting-started landing page under Deployment Options, and from the readme.

Why it links rather than duplicates

The operator is a separate project publishing around thirty pages of its own — quickstarts, configuration, high availability, operations, monitoring, API reference — versioned with its releases and edited in the same pull requests that change the operator's behavior. A copy kept here is a second copy maintained against a moving target, in a different publishing system, without the version scoping that makes the original correct.

#1 shows the cost. It was an accurate operator quickstart when it was opened, and since then its API group (db.microsoft.com, now documentdb.io) and its chart registry (ghcr.io/microsoft, now ghcr.io/documentdb) have both moved — either one enough to stop the walkthrough at its first command. The operator's own quickstart followed both changes as they landed.

So the page carries only what a reader needs in order to choose: what the operator does, how it compares with DocumentDB Local and the pre-built packages, and the one prerequisite that decides whether it can run at all — the ImageVolume feature, which pins the cluster to Kubernetes 1.35+ (or 1.33/1.34 with the feature gate) on containerd or CRI-O, and which the operator's admission webhook now enforces at resource creation. Everything past that decision is a deep link. No manifests, no install commands, no resource fields: those are exactly what went stale before.

Verification

Every outbound link was checked against the live site, including a deliberate non-existent control URL to confirm the check distinguishes real pages from soft 404s. The prerequisite claims were checked against the operator source rather than its prose.

Follow-ups, not in this PR

  • Add Kubernetes operator quick start #1 should be closed; it has a comment explaining why.
  • Two items live in documentdb.github.io and need a separate PR there: the /docs landing entry for Kubernetes points at the marketing page rather than any documentation, and that page's install snippet uses the classic chart repo, which tops out at chart 0.2.0 (published 2026-03-26) while the current chart is 0.3.0 and the operator has moved to the OCI registry.

Kubernetes is close to invisible here. The only mention anywhere in this
repo is one link in readme.md, so a reader browsing the documentation
site sees VS Code, Python, Node.js, mongosh, and pre-built packages with
no sign that DocumentDB runs on Kubernetes at all - even though the
operator is a supported project with a preview release and its own
documentation site.

This adds a kubernetes-operator section alongside documentdb-local,
rather than a page nested under getting-started. The two are the same
kind of thing - a way to run DocumentDB - and the docs landing page
lists top-level sections, so this is where a reader looking for
deployment options will actually come across it. The section is a single
index.md, the same shape documentdb-local and architecture already use.
Cross-links from the getting-started landing page under Deployment
Options and from the readme lead into it.

What the page deliberately does not do is restate the operator's
documentation. The operator is a separate project publishing 30-odd
pages of its own - quickstarts, configuration, high availability,
operations, monitoring, API reference - versioned with its releases and
edited in the same pull requests that change the operator's behavior.
Any copy kept here is a second copy maintained against a moving target,
in a different publishing system, without the version scoping that makes
the original correct.

PR #1 shows the cost. It was an accurate operator quickstart when it was
opened, and since then its API group (db.microsoft.com, now
documentdb.io) and its chart registry (ghcr.io/microsoft, now
ghcr.io/documentdb) have both moved, either one enough to stop the
walkthrough at its first command. The operator's own quickstart followed
both changes as they happened.

So the page carries only what a reader needs in order to choose: what
the operator does, how it compares with DocumentDB Local and the
pre-built packages, and the one prerequisite that decides whether it can
run at all - the ImageVolume feature, which pins the cluster to
Kubernetes 1.35+ (or 1.33/1.34 with the feature gate) on containerd or
CRI-O, and which the operator's admission webhook now enforces when the
resource is created. Everything past that decision is a deep link into
the operator's documentation. No manifests, no install commands, no
resource fields: those are exactly what went stale before.

Every outbound link was checked against the live site.
@guanzhousongmicrosoft
guanzhousongmicrosoft merged commit 6d4db7e into documentdb:main Aug 3, 2026
GuanzhouSong added a commit to GuanzhouSong/documentdb.github.io that referenced this pull request Aug 3, 2026
documentdb/docs#62 merged a kubernetes-operator section, and it is
unreachable: content.config.json enumerates the folders copied out of
the docs repository, so a section missing from that list is never
copied, never exported, and 404s permanently rather than until the next
deploy. /docs/kubernetes-operator returns the not-found fallback today.
Added the mapping alongside the other four.

With the section building, the /docs landing entry for the operator can
point at documentation instead of at the marketing page, which is what
every other entry on that page does. This is the follow-up this branch
previously deferred on merge-order grounds; documentdb#62 has landed, so the
target exists.
guanzhousongmicrosoft pushed a commit to documentdb/documentdb.github.io that referenced this pull request Aug 3, 2026
…nt sync (#135)

* Fix the Kubernetes operator links and install command

Every "read the documentation" link we point at the Kubernetes operator
is a 404. documentdbKubernetesOperatorDocsUrl is
/documentdb-kubernetes-operator/preview/, but the operator publishes its
docs under a version segment, at /documentdb-kubernetes-operator/latest/
preview/. The constant is used five times - three on the operator page,
including its primary call to action, and once on the home page - so
every route we offer a reader who wants to learn about the operator ends
at GitHub Pages' not-found page.

The install command on the operator page is stale in a quieter way. It
installs from the classic chart repository at
documentdb.github.io/documentdb-kubernetes-operator, whose index still
tops out at chart 0.2.0, published 2026-03-26. The current chart is
0.3.0, and the operator has moved to publishing the chart as an OCI
artifact on ghcr.io, which is what its README and its own quickstarts
now use. Following our page gets you a four-month-old operator - which
matters more than the version gap suggests, because 0.3.0 is where the
ImageVolume capability check and its admission webhook landed. Replaced
with the OCI install the operator documents.

Also fixed a moved link in the March operator blog post: the backup and
restore guide is now under preview/operations/.

All four URLs were checked against the live site, before and after.

Not included, to avoid a cross-repo merge order hazard: the /docs
landing entry for the operator points at this marketing page rather than
at documentation. documentdb/docs#62 adds a /docs/kubernetes-operator
section for it to point to, so that entry is worth updating once #62
lands.

* Sync the kubernetes-operator section so its pages actually build

documentdb/docs#62 merged a kubernetes-operator section, and it is
unreachable: content.config.json enumerates the folders copied out of
the docs repository, so a section missing from that list is never
copied, never exported, and 404s permanently rather than until the next
deploy. /docs/kubernetes-operator returns the not-found fallback today.
Added the mapping alongside the other four.

With the section building, the /docs landing entry for the operator can
point at documentation instead of at the marketing page, which is what
every other entry on that page does. This is the follow-up this branch
previously deferred on merge-order grounds; #62 has landed, so the
target exists.
guanzhousongmicrosoft pushed a commit that referenced this pull request Aug 3, 2026
Two loose ends from #62, both created by pull requests that merged
independently of it and could not have known about each other.

The contributing instructions in readme.md list the folders that hold
documentation articles, and #35 wrote that list while #62 was still
open, so it names four folders where there are now five. A contributor
following it would not know the kubernetes-operator section exists or
that it follows the same rules.

The documentdb-local page had no route onward. Someone who has just run
the container and wants replication, failover, or rolling upgrades has
no reason to guess that the answer is a different section of the site;
it is the most likely place in these docs for that question to occur, so
it now points at the operator section and at the pre-built packages.
This was deliberately held back while #61 was rewriting that page, and
lands now that it has merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants