Skip to content

docs: fix the expected pods after installing the platform chart - #17386

Open
fjvbn2003 wants to merge 2 commits into
ai-dynamo:mainfrom
fjvbn2003:docs-install-expected-pods
Open

fjvbn2003 wants to merge 2 commits into
ai-dynamo:mainfrom
fjvbn2003:docs-install-expected-pods

Conversation

@fjvbn2003

@fjvbn2003 fjvbn2003 commented Oct 27, 2026 •

Copy link
Copy Markdown

Overview

Several Kubernetes guides expect NATS and etcd pods after installing the platform chart, but global.nats.install and global.etcd.install default to false in deploy/helm/charts/platform/values.yaml, so a default install only creates the operator pod. A reader following these guides sees no nats-* or etcd-* pod and may think the install failed. This PR fixes the install guide and the three other guides that make the same assumption.

Key Changes

  • docs/fern/pages/kubernetes/installation/install-dynamo.md: the "Expected" comment now says the operator pod is expected, and that NATS and etcd pods appear only when installed with global.nats.install=true or global.etcd.install=true.
  • docs/fern/pages/kubernetes/installation/managed-kubernetes/eks/eks-setup.mdx: drop dynamo-platform-nats-0 from the three sample kubectl get pods outputs and add a note after the first one. The StorageClass sentence and the NATS PVC cleanup step now apply only if NATS was installed.
  • docs/fern/pages/kubernetes/installation/managed-kubernetes/gcp/gke-setup.mdx: drop dynamo-platform-etcd-0 and dynamo-platform-nats-0 from the two sample outputs and add the same note.
  • docs/fern/pages/recipes/feature-benchmarks/kv-router-a-b-testing.md: expect only the operator pod unless etcd or NATS were installed.

The Azure spot-vms.mdx etcd and NATS entries are left alone: they describe tolerations for when those components are installed, which is still correct. The RELEASE_VERSION=1.2.1 example in install-dynamo.md is also left alone because #14066 already updates it. No other open PR touches the EKS, GKE or A/B guides.

Validation

  • Installed dynamo-platform-1.6.1.tgz from helm.ngc.nvidia.com (sha256 matches the index) on a fresh single-node k3s v1.36.5+k3s1 in a test VM, 2026-11-04; raw output in docs: fix the expected pods after installing the platform chart #17386 (comment):
    • default values: only dynamo-platform-dynamo-operator-controller-manager-* is created; no StatefulSet or PVC.
    • --set global.nats.install=true --set global.etcd.install=true: dynamo-platform-nats-0, dynamo-platform-etcd-0 and the dynamo-platform-nats-js-dynamo-platform-nats-0 PVC are created, which is where those names in the guides come from. After helm uninstall the PVCs remain.
  • Installed earlier, dynamo-platform-1.6.0.tgz with default values on k3s v1.36.5 (2026-10-27): only the operator pod was created, and a Mocker DGD still became Ready and served /v1/chat/completions. The raw pod list from that run was not kept.
  • The defaults are the same in deploy/helm/charts/platform/values.yaml on main (108cbfa).
  • The example manifests under examples/deployments/EKS and examples/deployments/GKE do not reference NATS or etcd.
  • python3 docs/fern/scripts/docs_lint.py --scan docs in a python:3.12-slim container: 0 errors, and the same 9 warnings before and after this change (none in the changed files). The codespell, trailing-whitespace, mixed-line-ending, check-merge-conflict and check-asset-paths pre-commit hooks pass on the changed guides.
  • EKS and GKE were not used for this change; the fix is about the platform chart defaults, not provider-specific behavior. The docs site was not built locally.

Issues and Ongoing Work

Pull Request Checklist
  • I used Dynamo's /pr-checklist skill.

AI disclosure: this change was prepared with the help of an AI coding assistant (Claude Code). Claude ran the installs above in a test VM, ran the lint checks in containers, and drafted the diff and this description.

🤖 Generated with Claude Code

The install guide's verification step expected nats-* pods, but
global.nats.install and global.etcd.install default to false in the
platform chart, so a default install only creates the operator pod.
Say that only the operator pod is expected and that NATS and etcd pods
appear only when they are installed.

Closes ai-dynamo#17385

Signed-off-by: YoungjuKim <[email protected]>
Assisted-by: Claude <[email protected]>
@fjvbn2003
fjvbn2003 requested a review from a team as a code owner October 27, 2026 05:42
@copy-pr-bot

copy-pr-bot Bot commented Oct 27, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@fjvbn2003
fjvbn2003 temporarily deployed to external_collaborator October 27, 2026 05:42 — with GitHub Actions Inactive
@fjvbn2003
fjvbn2003 temporarily deployed to external_collaborator October 27, 2026 05:42 — with GitHub Actions Inactive
@github-actions github-actions Bot added the docs label Oct 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 Hi fjvbn2003! Thank you for contributing to ai-dynamo/dynamo.

Just a reminder: The NVIDIA Test Github Validation CI runs an essential subset of the testing framework to quickly catch errors.Your PR reviewers may elect to test the changes comprehensively before approving your changes.

🚀

@github-actions github-actions Bot added external-contribution Pull request is from an external contributor documentation Improvements or additions to documentation labels Oct 27, 2026
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

The installation guide now expects the operator pod to be Running. It states that NATS and etcd pods appear only when their respective global.*.install=true settings are enabled.

Changes

Installation verification

Layer / File(s) Summary
Expected pods
docs/fern/pages/kubernetes/installation/install-dynamo.md
The guide identifies the operator pod as Running. It makes NATS and etcd pod expectations conditional on their respective install settings.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Severity of issue fixed: Low

Merge Risk: Minimal · up to 69751

The updated installation guidance is ready to merge.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly and concisely describes the documentation fix for the expected pods after installing the platform chart.
Linked Issues check Passed Directly linked issue #17385 requires the install guide's expected-pods verification to match the default platform chart install. It must list the operator pod, and state that NATS and etcd pods appea…
Out of Scope Changes check Passed The whole-PR summary reports one changed file, docs/fern/pages/kubernetes/installation/install-dynamo.md, with +2/-1 lines. The change edits only the expected-pods comment inside the existing verifica…
Description check Passed The description follows the repository template: it has Overview, Key Changes, Validation, Issues and Ongoing Work (with Closes #17385), and the PR checklist. It explains the problem clearly: the plat…
Full details: Linked Issues check

Explanation

Directly linked issue #17385 requires the install guide's expected-pods verification to match the default platform chart install. It must list the operator pod, and state that NATS and etcd pods appear only when enabled. At the reviewed head, install-dynamo.md (Install the Dynamo Platform step) reads: "Expected: the dynamo-operator-* pod Running. NATS and etcd pods appear only if you installed them with global.nats.install=true or global.etcd.install=true." This meets the requirement. The default values are confirmed at head in deploy/helm/charts/platform/values.yaml: global.nats.install and global.etcd.install both default to false. The issue's excluded item, the RELEASE_VERSION=1.2.1 example, is unchanged, as the issue and PR description state. The requirement is documentation text, so no separate automated test applies. The whole-PR diff read was unavailable (changed blobs missing from checkout) and the base blob could not be read. The prior wording is therefore taken from the PR summary, not verified from source. The head text itself was verified directly.

Full details: Out of Scope Changes check

Explanation

The whole-PR summary reports one changed file, docs/fern/pages/kubernetes/installation/install-dynamo.md, with +2/-1 lines. The change edits only the expected-pods comment inside the existing verification code block. This change directly implements #17385. The PR description and the raw summary both state that no declarations or other files changed. The RELEASE_VERSION example was intentionally left alone and is excluded by the issue scope. No unrelated change was found. Limitation: the whole-PR diff tool failed, so the single-file scope rests on the PR summary and on the head file content, not on a diff read.

Full details: Description check

Explanation

The description follows the repository template: it has Overview, Key Changes, Validation, Issues and Ongoing Work (with Closes #17385), and the PR checklist. It explains the problem clearly: the platform chart defaults global.nats.install and global.etcd.install to false, so a default install creates only the operator pod, and the guides expecting NATS and etcd pods mislead readers. Key Changes lists each changed file. Validation gives concrete install results, the chart version, the k3s version, and the lint runs. The description also states what was left unchanged and why, such as the RELEASE_VERSION example covered by #14066. Minor gaps: the checklist item is unchecked, and the template's advisory PR Issue Link note is not applicable here. The Key Changes section covers more files than the raw summary lists, which is expected given the broader description. Overall the description is complete and specific.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 2e96c98 and 6975152.

Files selected for processing: 1
  • docs/fern/pages/kubernetes/installation/install-dynamo.md

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

…B guides

The EKS and GKE setup guides and the KV router A/B testing guide make
the same assumption that install-dynamo.md made: their sample
"kubectl get pods" output lists dynamo-platform-nats-0 (and, on GKE,
dynamo-platform-etcd-0), and the A/B guide tells the reader to expect
etcd and NATS pods. global.nats.install and global.etcd.install default
to false in the platform chart, so a default install creates only the
operator pod.

- eks-setup.mdx: drop dynamo-platform-nats-0 from the three sample
  outputs, add a note after the first one, and make the StorageClass
  sentence and the NATS PVC cleanup step conditional on installing NATS.
- gke-setup.mdx: drop dynamo-platform-etcd-0 and dynamo-platform-nats-0
  from the two sample outputs and add the same note.
- kv-router-a-b-testing.md: expect only the operator pod unless etcd or
  NATS were installed.

Refs ai-dynamo#17385

Assisted-by: Claude <[email protected]>
Signed-off-by: YoungjuKim <[email protected]>
@fjvbn2003

Copy link
Copy Markdown
Author

I re-checked this with real installs of the latest published chart, so the 1.6.1 evidence no longer rests on helm template alone.

Setup: dynamo-platform-1.6.1.tgz from helm.ngc.nvidia.com (sha256 c10af6c9…7d3e, matches the index), fresh single-node k3s v1.36.5+k3s1 in a test VM, Helm v4.3.1, 2026-11-04. Both installs use the command from install-dynamo.md (namespace dynamo-system); pods were waited on with kubectl wait. The release, namespace and Dynamo CRDs were removed between the two installs. IPs and node names are masked.

A. Default values (installed): only the operator pod, no StatefulSet, no PVC. Ready after 20 s.

$ kubectl get pods,pvc,statefulset -n dynamo-system -o wide
NAME                                                                  READY   STATUS    RESTARTS   AGE   IP          NODE              NOMINATED NODE   READINESS GATES
pod/dynamo-platform-dynamo-operator-controller-manager-5c4788dskj79   1/1     Running   0          20s   <ip>   <node>   <none>           <none>

B. --set global.nats.install=true --set global.etcd.install=true (installed): dynamo-platform-etcd-0, dynamo-platform-nats-0 and the dynamo-platform-nats-js-dynamo-platform-nats-0 PVC appear only here. Ready after 30 s. These two flags were enough; no extra etcd flag was needed.

$ kubectl get pods,pvc,statefulset -n dynamo-system -o wide
NAME                                                                  READY   STATUS    RESTARTS   AGE   IP           NODE              NOMINATED NODE   READINESS GATES
pod/dynamo-platform-dynamo-operator-controller-manager-5f656d8h7885   1/1     Running   0          29s   <ip>    <node>   <none>           <none>
pod/dynamo-platform-etcd-0                                            1/1     Running   0          29s   <ip>    <node>   <none>           <none>
pod/dynamo-platform-nats-0                                            2/2     Running   0          29s   <ip>   <node>   <none>           <none>

NAME                                                                   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE   VOLUMEMODE
persistentvolumeclaim/data-dynamo-platform-etcd-0                      Bound    pvc-7550021b-a6ca-4b99-bd78-0711b782a075   1Gi        RWO            local-path     <unset>                 29s   Filesystem
persistentvolumeclaim/dynamo-platform-nats-js-dynamo-platform-nats-0   Bound    pvc-e3023ae1-8e41-42d3-be97-322f4a09e19e   10Gi       RWO            local-path     <unset>                 29s   Filesystem

NAME                                    READY   AGE   CONTAINERS      IMAGES
statefulset.apps/dynamo-platform-etcd   1/1     29s   etcd            docker.io/bitnamilegacy/etcd:3.5.18-debian-12-r5
statefulset.apps/dynamo-platform-nats   1/1     29s   nats,reloader   nats:2.10.21-alpine,natsio/nats-server-config-reloader:0.16.0

After helm uninstall, both PVCs are still there, which is what the NATS PVC cleanup step in the EKS guide is for:

$ helm uninstall dynamo-platform -n dynamo-system --wait --timeout 5m
release "dynamo-platform" uninstalled
$ kubectl get pods,pvc,statefulset -n dynamo-system -o wide
NAME                                                                  READY   STATUS        RESTARTS   AGE   IP           NODE              NOMINATED NODE   READINESS GATES
pod/dynamo-platform-dynamo-operator-controller-manager-5f656d8h7885   0/1     Completed     0          29s   <ip>    <node>   <none>           <none>
pod/dynamo-platform-etcd-0                                            0/1     Completed     0          29s   <ip>    <node>   <none>           <none>
pod/dynamo-platform-nats-0                                            2/2     Terminating   0          29s   <ip>   <node>   <none>           <none>

NAME                                                                   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE   VOLUMEMODE
persistentvolumeclaim/data-dynamo-platform-etcd-0                      Bound    pvc-7550021b-a6ca-4b99-bd78-0711b782a075   1Gi        RWO            local-path     <unset>                 29s   Filesystem
persistentvolumeclaim/dynamo-platform-nats-js-dynamo-platform-nats-0   Bound    pvc-e3023ae1-8e41-42d3-be97-322f4a09e19e   10Gi       RWO            local-path     <unset>                 29s   Filesystem

The 1.6.0 default install mentioned in the description was also a real install (2026-10-27), but its raw pod list wasn't kept, so this comment is the raw evidence. I'll update the Validation section to point here.

(Measured and written with help from Claude (AI).)

This branch was previously deployed

1 inactive deployment
external_collaborator — cf324529 Deployed Oct 30, 2026 by fjvbn2003 via ok-to-test #41838
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs documentation Improvements or additions to documentation external-contribution Pull request is from an external contributor size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG]: docs: install guide expects nats-* pods, but the platform chart no longer installs NATS by default

1 participant