Skip to content

Add the Memgraph Kubernetes operator docs and group HA on Kubernetes - #1841

Draft
as51340 wants to merge 13 commits into
mainfrom
docs/operator-ha-kubernetes
Draft

as51340 wants to merge 13 commits into
mainfrom
docs/operator-ha-kubernetes

Conversation

@as51340

@as51340 as51340 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Description

Groups Memgraph HA on Kubernetes under Clustering → High availability → Memgraph HA in K8s, with two pages under it: Memgraph HA Helm chart (the old "Set up HA cluster with K8s" page, moved) and a new Memgraph K8s operator page that documents operator 1.1.0.

  • clustering/high-availability/kubernetes.mdx: a new overview that compares the chart and the operator, and says how to move between them.
  • clustering/high-availability/kubernetes/helm-chart.mdx: moved from setup-ha-cluster-k8s.mdx. Only the title, the description, the H1 and an intro paragraph pointing to the operator changed. There's a redirect from the old URL, and the 10 inbound links on 8 pages now point to the new URL. The anchors are unchanged.
  • clustering/high-availability/kubernetes/operator.mdx: new. It covers install and upgrade of the operator, the quickstart, conditions and reasons, scaling, flags and coordinator settings, license renewal, rolling restarts and Memgraph upgrades, storage, external access, TLS, monitoring, scheduling, pod settings, OpenShift, CSV import, AWS credentials, backup and restore, Events, and limitations.
  • getting-started/install-memgraph/kubernetes.mdx and clustering/high-availability.mdx: links to the new pages.

Draft until the chart is published: helm search repo memgraph/memgraph-operator finds nothing in memgraph.github.io/helm-charts yet, so the page's helm install memgraph/memgraph-operator doesn't work until memgraph/helm-charts publishes the operator chart.

Product PR

The operator is pre-release, so the page documents main of memgraph/kubernetes-operator, with no version notes. Covered:

Checklist

  • For a product change: milestone set to the release and feature or bugfix label added
  • For a product change: this PR is linked from the product PR's documentation checklist

How it was checked:

  • For fix: Deliver the license and AWS configuration only as database settings kubernetes-operator#84, the operator image was built from 074d016 and run on Kind, without a license.
    • With no license Secret, the pods turn ready. Converged reports CoordinatorUnreachable ("No coordinator answered SHOW INSTANCES"), and LicenseApplied reports LicensePending ("the Secret memgraph-secrets does not exist").
    • Adding awsCredentials and changing secrets.name leave both StatefulSets at generation 1.
    • The pods carry no license environment variable.
    • All 17 manifests pass --dry-run=server.
    • Not run with a license: that creating the Secret afterwards licenses the pods and registers the cluster comes from the controller code, which sets the license before registration on every pass.
  • After refactor!: Rename the MemgraphCluster kind to MemgraphDBCluster kubernetes-operator#83, all 17 manifests pass kubectl apply --dry-run=server against the memgraphdbclusters.memgraph.com CRD from main (f6f4b7f) on Kind. kubectl get mgdbc lists the cluster, and the CRD carries the short name mgdbc and the category memgraph. No operator image with the rename exists yet, so only the CRD was installed for this check. The checks below ran earlier against 1.1.0, under the old names.
  • Every field, default, enum, validation rule, condition reason and Event reason comes from api/v1alpha1/memgraphcluster_types.go, the generated CRD and internal/ at v1.1.0, not from the operator's docs/.
  • All 17 MemgraphCluster manifests on the page (the quickstart, plus each fragment merged into it) pass kubectl apply --dry-run=server against operator 1.1.0 on Kind (Kubernetes 1.35), with the chart installed from the repository at v1.1.0.
  • Ten edits the page says are rejected (adding tls.intraCluster, changing libStorageClassName, shrinking libPVCSize, adding coreDumps.data, an even coordinator count, bolt-port in flags, two spellings of one flag, a lowercase log-level, a data hostname without {ordinal}, dataPortBase 7000) are rejected on a live resource. Two it says are allowed (growing libPVCSize, adding tls.bolt) are accepted.
  • The kubectl get mgc columns, the object names, the claim labels, the CRD upgrade command and the missing-license-Secret message come from that cluster.
  • Kubernetes 1.29 is the minimum: the CRD fails to install on 1.27.16 and 1.28.15 and installs on 1.29.14 and 1.30.13. The operator README said 1.25; fix: Require Kubernetes 1.29 and correct stale docs kubernetes-operator#79 fixes that.
  • Not run with a license, so no example output from a converged cluster is shown. Registration, scale-down, failover, resize, external access and remote monitoring weren't run end to end.

Choices to review:

  • Sidebar labels are the ones requested ("Memgraph HA in K8s", "Memgraph HA Helm chart", "Memgraph K8s operator"). The page titles spell out Kubernetes and high availability.
  • The quickstart pins image.tag: "3.13.2", the newest release. The operator's e2e suite runs 3.13.0, and its CRD default is 3.13.0-relwithdebinfo.
  • Everything is on one operator page (about 1,100 lines). TLS, monitoring and external access could become subpages if they grow.

Left out: core dump uploader details, Vector label mapping, the per-flag run-time settings table, CoreDNS tuning for faster restarts, and the operator's own metrics endpoint. These are in the operator repo's docs/.

Couldn't confirm from the operator repo (Memgraph core or third-party behavior, taken from the operator docs or existing docs pages): that the metrics endpoint switches to HTTPS with Bolt TLS (the operator's e2e test checks it), Vector appending /loki/api/v1/push, Gateway API 1.6 and Envoy Gateway 1.9 versions, and the roughly 30 s DNS delay per restart on managed Kubernetes.

Move setup-ha-cluster-k8s under clustering/high-availability/kubernetes/ as
helm-chart, with a redirect, and add an overview page that compares the
memgraph-high-availability chart with the operator. Document operator 1.1.0:
install, quickstart, conditions, scaling, flags, license, rolling restarts and
upgrades, storage, external access, TLS, monitoring, scheduling, pod settings,
CSV import, AWS credentials, backup and restore, Events and limitations.
@as51340 as51340 self-assigned this Oct 19, 2026
@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
documentation Ready Ready Preview Oct 21, 2026 2:50pm UTC

Request Review

@as51340 as51340 modified the milestones: 3.13.1, 3.14 Oct 19, 2026
@as51340 as51340 added feature Documentation related to a new product feature of feature update k8s-operator Docs change related to K8s operator labels Oct 19, 2026
…the chart

Covers memgraph/kubernetes-operator#83 (kind MemgraphDBCluster, short name
mgdbc, CRD memgraphdbclusters.memgraph.com) and #80 (helm upgrade updates the
CRD, crds.enabled). Drops the operator 1.1.0 references: the operator is
pre-release.

This branch was successfully deployed

1 active deployment
Preview — 0d45f734 Deployed Oct 21, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Documentation related to a new product feature of feature update k8s-operator Docs change related to K8s operator

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants