Add NodePool CRD docs and Kubernetes lifecycle management nav#1667
Conversation
…ollers Extract inline examples from k-schema-controller.adoc (full compatibility schema, schema references) and k-manage-topics.adoc (write caching topic, cleanup policy topic) into their respective feature files with proper tags so they follow the same include pattern as existing examples. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add prerequisite "product-schema" scenario before "order-schema" to ensure the referenced schema exists when testing schema references - Update order-schema scenario to check for product-schema prerequisite - Rename "compacted-topic" to "delete-policy-topic" to match the cleanup.policy: "delete" configuration Addresses CodeRabbit feedback at: https://github.com/redpanda-data/docs/pull/1650/changes#r3023139360 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
… nav - Create k-node-pools.adoc concept page for NodePool CRD (v1alpha2) - Create k-migrate-node-pools.adoc how-to for blue/green migration using NodePool CRD - Rename k-upgrade-kubernetes.adoc to k-migrate-node-pools-manually.adoc with page aliases - Add lifecycle/index.adoc landing page grouping Decommission, Recovery Mode, Rolling Restart - Restructure nav.adoc with Node Pools entry and Lifecycle Management section Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for redpanda-docs-preview ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis pull request reorganizes Kubernetes documentation and adds test coverage for CRD features. The navigation structure is updated to add a new top-level node pools entry and consolidate lifecycle operations (decommissioning, recovery mode, rolling restart) under a shared index page. Two new comprehensive documentation pages are added: one introducing the NodePool CRD feature and another describing the automated blue/green migration workflow. The upgrade section now includes dedicated pages for both automated and manual node pool migration strategies. Test coverage is expanded with new BDD scenarios in feature files for Schema and Topic CRDs, and existing documentation is refactored to reference these feature examples instead of embedding inline YAML manifests. Metadata and navigation aliases are updated to support the restructured documentation paths. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (5)
modules/manage/pages/kubernetes/lifecycle/index.adoc (1)
14-26: Standardize xrefs to auto-title style.These links hard-code display text; switch to
xref:...[]to keep titles source-of-truth and reduce drift after page-title updates.♻️ Proposed cleanup
-See xref:manage:kubernetes/k-decommission-brokers.adoc[Decommission Brokers]. +See xref:manage:kubernetes/k-decommission-brokers.adoc[]. -See xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[Recovery Mode]. +See xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[]. -See xref:manage:kubernetes/k-rolling-restart.adoc[Rolling Restart]. +See xref:manage:kubernetes/k-rolling-restart.adoc[].Based on learnings: AsciiDoc linking should prefer
xref:...[]so link text is pulled from target page titles automatically.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/manage/pages/kubernetes/lifecycle/index.adoc` around lines 14 - 26, Update the three hard-coded xref links so their display text is pulled from the target page titles by switching from explicit labels to auto-title form: replace xref:manage:kubernetes/k-decommission-brokers.adoc[Decommission Brokers], xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[Recovery Mode], and xref:manage:kubernetes/k-rolling-restart.adoc[Rolling Restart] with xref:manage:kubernetes/k-decommission-brokers.adoc[], xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[], and xref:manage:kubernetes/k-rolling-restart.adoc[] respectively so the pages (Recovery mode, Rolling restart) always derive their link text from the target page titles.modules/upgrade/pages/k-migrate-node-pools-manually.adoc (1)
10-10: Use auto-title xref for consistency.Prefer
xref:upgrade:k-migrate-node-pools.adoc[]here instead of hard-coded link text.Based on learnings: AsciiDoc linking should prefer
xref:...[]to render target titles automatically.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/upgrade/pages/k-migrate-node-pools-manually.adoc` at line 10, Replace the hard-coded link text in modules/upgrade/pages/k-migrate-node-pools-manually.adoc that currently uses xref:upgrade:k-migrate-node-pools.adoc[NodePool CRD] with the auto-title form xref:upgrade:k-migrate-node-pools.adoc[] so the target title is rendered automatically; update the single NOTE line containing the link to use xref:upgrade:k-migrate-node-pools.adoc[] (preserving surrounding punctuation) to ensure consistent AsciiDoc linking across the docs.modules/upgrade/pages/k-migrate-node-pools.adoc (1)
61-61: Align xref style with repo convention.Use
xref:...[]for these internal links to avoid duplicated/possibly stale link text.Based on learnings: AsciiDoc linking should prefer empty-bracket xrefs so titles come from the referenced page.
Also applies to: 65-67, 266-269
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/upgrade/pages/k-migrate-node-pools.adoc` at line 61, Replace explicit link text in AsciiDoc xrefs with the repo-conventional empty-bracket form: find occurrences like xref:manage:kubernetes/k-node-pools.adoc[Node Pools] (and the similar links at the other reported occurrences) and change them to xref:manage:kubernetes/k-node-pools.adoc[] so the target page title is used automatically; update every instance noted (lines near the current instance plus the other groups reported) and verify the rendered titles remain correct.modules/manage/pages/kubernetes/k-node-pools.adoc (1)
33-33: Consider converting these xrefs to empty-bracket form.This page has several hard-coded xref labels; switching to
xref:...[]will keep links aligned automatically if target page titles change.Based on learnings: AsciiDoc linking should prefer
xref:...[]instead of hard-coded link text.Also applies to: 61-61, 65-67, 142-145, 149-151
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/manage/pages/kubernetes/k-node-pools.adoc` at line 33, Replace hard-coded xref link text with empty-bracket xrefs so links auto-update when targets change: update occurrences like xref:upgrade:k-migrate-node-pools.adoc[Migrate Node Pools] to xref:upgrade:k-migrate-node-pools.adoc[] and do the same for the other xref instances referenced in this file (the links at the ranges mentioned), ensuring you keep the same xref targets (e.g., k-migrate-node-pools.adoc) but remove the explicit bracketed label.modules/manage/examples/kubernetes/topic-crds.feature (1)
30-79: Add explicit assertions for Topic config reconciliation.These scenarios prove topic creation works, but they don’t directly verify that
additionalConfigwas applied (write.cachingandcleanup.policy). Add config-level checks so the tests fail if reconciliation regresses.Suggested test-strengthening diff
Scenario: Manage topic with write caching @@ And topic "chat-room" is successfully synced + And topic "chat-room" in cluster "basic" has config "write.caching" set to "true" Then I should be able to produce and consume from "chat-room" in cluster "basic" Scenario: Manage topic with cleanup policy @@ And topic "delete-policy-topic" is successfully synced + And topic "delete-policy-topic" in cluster "basic" has config "cleanup.policy" set to "delete" Then I should be able to produce and consume from "delete-policy-topic" in cluster "basic"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/manage/examples/kubernetes/topic-crds.feature` around lines 30 - 79, Add explicit assertions after the "And topic ... is successfully synced" step to fetch the Topic CR for "chat-room" and "delete-policy-topic" and assert that .spec.additionalConfig contains the expected keys and values (write.caching: "true" for Topic named chat-room; cleanup.policy: "delete" for delete-policy-topic). Locate the reconciliation verification logic used by the step "topic ... is successfully synced" (or the step definition that queries the Topic CR) and extend it to explicitly check .spec.additionalConfig entries for the unique keys write.caching and cleanup.policy so the scenario fails if those config values are not applied.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@modules/manage/examples/kubernetes/topic-crds.feature`:
- Around line 30-79: Add explicit assertions after the "And topic ... is
successfully synced" step to fetch the Topic CR for "chat-room" and
"delete-policy-topic" and assert that .spec.additionalConfig contains the
expected keys and values (write.caching: "true" for Topic named chat-room;
cleanup.policy: "delete" for delete-policy-topic). Locate the reconciliation
verification logic used by the step "topic ... is successfully synced" (or the
step definition that queries the Topic CR) and extend it to explicitly check
.spec.additionalConfig entries for the unique keys write.caching and
cleanup.policy so the scenario fails if those config values are not applied.
In `@modules/manage/pages/kubernetes/k-node-pools.adoc`:
- Line 33: Replace hard-coded xref link text with empty-bracket xrefs so links
auto-update when targets change: update occurrences like
xref:upgrade:k-migrate-node-pools.adoc[Migrate Node Pools] to
xref:upgrade:k-migrate-node-pools.adoc[] and do the same for the other xref
instances referenced in this file (the links at the ranges mentioned), ensuring
you keep the same xref targets (e.g., k-migrate-node-pools.adoc) but remove the
explicit bracketed label.
In `@modules/manage/pages/kubernetes/lifecycle/index.adoc`:
- Around line 14-26: Update the three hard-coded xref links so their display
text is pulled from the target page titles by switching from explicit labels to
auto-title form: replace
xref:manage:kubernetes/k-decommission-brokers.adoc[Decommission Brokers],
xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[Recovery Mode], and
xref:manage:kubernetes/k-rolling-restart.adoc[Rolling Restart] with
xref:manage:kubernetes/k-decommission-brokers.adoc[],
xref:manage:kubernetes/tiered-storage/k-recovery-mode.adoc[], and
xref:manage:kubernetes/k-rolling-restart.adoc[] respectively so the pages
(Recovery mode, Rolling restart) always derive their link text from the target
page titles.
In `@modules/upgrade/pages/k-migrate-node-pools-manually.adoc`:
- Line 10: Replace the hard-coded link text in
modules/upgrade/pages/k-migrate-node-pools-manually.adoc that currently uses
xref:upgrade:k-migrate-node-pools.adoc[NodePool CRD] with the auto-title form
xref:upgrade:k-migrate-node-pools.adoc[] so the target title is rendered
automatically; update the single NOTE line containing the link to use
xref:upgrade:k-migrate-node-pools.adoc[] (preserving surrounding punctuation) to
ensure consistent AsciiDoc linking across the docs.
In `@modules/upgrade/pages/k-migrate-node-pools.adoc`:
- Line 61: Replace explicit link text in AsciiDoc xrefs with the
repo-conventional empty-bracket form: find occurrences like
xref:manage:kubernetes/k-node-pools.adoc[Node Pools] (and the similar links at
the other reported occurrences) and change them to
xref:manage:kubernetes/k-node-pools.adoc[] so the target page title is used
automatically; update every instance noted (lines near the current instance plus
the other groups reported) and verify the rendered titles remain correct.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: fff41847-0d75-4113-b21b-047525a0b0cf
📒 Files selected for processing (10)
modules/ROOT/nav.adocmodules/manage/examples/kubernetes/schema-crds.featuremodules/manage/examples/kubernetes/topic-crds.featuremodules/manage/pages/kubernetes/k-manage-topics.adocmodules/manage/pages/kubernetes/k-node-pools.adocmodules/manage/pages/kubernetes/k-schema-controller.adocmodules/manage/pages/kubernetes/lifecycle/index.adocmodules/manage/pages/kubernetes/security/authentication/k-schema-registry-acls.adocmodules/upgrade/pages/k-migrate-node-pools-manually.adocmodules/upgrade/pages/k-migrate-node-pools.adoc
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…me to Experimental - Title changed to "Migrate Node Pools (Experimental)" - Added reference to manual migration method in intro - Increased Mermaid diagram to width=100% - Added "Migrate an existing cluster to NodePools" section with step-by-step instructions as prerequisite for NodePool-based upgrades - Updated nav label to match new title Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Impact on other filesFiles NOT in this PR that may need updates:
|
|
Thanks I'll address those comments @micheleRP |
- Add learning objectives to k-node-pools, k-migrate-node-pools, k-migrate-node-pools-manually, and lifecycle/index pages - Add :page-beta: true to NodePool pages - Replace "experimental" CAUTION blocks with "beta" labeling - Remove "(Experimental)" from Migrate Node Pools title Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove "(Experimental)" from nav entry, use auto-title xref instead - Rephrase NodePool CRD link in manual migration NOTE for clarity Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Suggestion: Lost line highlighting in code examplesFile: The old inline code blocks used This is a tradeoff — the DRY approach of sourcing from test feature files is a clear win for maintainability. If line highlighting is important for reader clarity, it could be re-added, but the line numbers would need to stay in sync with the included content. No action needed if the DRY benefit outweighs the highlighting. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Aligns with the existing Core Navigation heading for consistency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documents the process for migrating back from NodePool-managed brokers to Redpanda CR-managed replicas. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ssion pages - Update requirements.adoc xref to k-migrate-node-pools-manually.adoc - Add NodePool CRD tip to vertical scaling section in k-scale-redpanda.adoc - Add Node Pools link to suggested reading in k-decommission-brokers.adoc Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
I don't think any action is needed on those examples. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PR Review: Add NodePool CRD docs and Kubernetes lifecycle management nav (#1667)Files reviewed: 9 files (5 new/renamed What this PR doesAdds two new pages documenting the NodePool CRD (beta): a concept page explaining what NodePools are and how to enable them, and a how-to for blue/green migration using NodePools. Renames the existing manual migration page ( Jira ticket alignmentTicket: DOC-2097 — Add NodePool CRD documentation and restructure Kubernetes lifecycle management Critical issues (must fix)
Suggestions (should consider)
Impact on other filesNo missing updates detected:
CodeRabbit findings worth consideringCodeRabbit suggested switching hard-coded xref display text to auto-title style on the lifecycle landing page. Moot if the H2 sections are removed per critical issue #1. What works well
|
…xref descriptions - Remove duplicate H2 sections from lifecycle/index.adoc so auto-generated cards render without content duplication - Use passthrough block for mermaid diagram to bypass aspect-ratio: 16/9 CSS on .imageblock svg, allowing the flowchart to render at natural size - Update NodePool xref descriptions on decommission and scale pages to accurately describe NodePool functionality Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…otes The feature is labeled as beta, not experimental. The xref display text now matches the page title. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…d reading Matches the style of the other entries in the list. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Explains how to pin NodePool brokers to specific Kubernetes nodes for uniform hardware, with cloud provider examples for GKE, EKS, AKS. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use blue/green naming throughout with v26.1.1 to v26.1.3 upgrade example - Add detailed verification of existing blue NodePool before starting - Show nodeSelector and tolerations on green NodePool with callout notes - Change decommission approach to delete NodePool (not scale to 0) - Add detailed expected output for every verification step - Add data integrity verification with rpk topic consume - Document known limitations (image tag, OnDelete strategy, 2x brokers) - Note that NodePools do not inherit image.tag from Redpanda CR Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use HTML passthrough block instead of AsciiDoc mermaid block for correct rendering. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ate Core Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documents engineering guidance: never create and delete NodePools simultaneously due to Kubernetes eventual consistency race conditions. Always verify stability before removing brokers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The nav context already distinguishes the Kubernetes and self-managed Cluster Maintenance pages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
k-upgrade-kubernetes.adoc→k-migrate-node-pools-manually.adoc) with aliases for old URLsJIRA: DOC-2097
Preview pages
Test plan
/upgrade/k-upgrade-kubernetes/,/manage/kubernetes/k-upgrade-kubernetes/) redirect via page aliases🤖 Generated with Claude Code