Skip to content

add PostgreSQL node migration and CloudBeaver solutions (MIDDLEWARE-31526)#792

Open
SuJinpei wants to merge 3 commits into
mainfrom
docs/add-postgresql-kb-solutions-31526
Open

add PostgreSQL node migration and CloudBeaver solutions (MIDDLEWARE-31526)#792
SuJinpei wants to merge 3 commits into
mainfrom
docs/add-postgresql-kb-solutions-31526

Conversation

@SuJinpei

@SuJinpei SuJinpei commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Precipitates historical internal Confluence KB PostgreSQL solutions into the GitHub KB (alauda/knowledge), part of MIDDLEWARE-31526 (KB 沉淀 / 对标 OCP). Modernized to the current acid.zalan.do/v1 postgresql CR, verified live on ACP 4.2 and 4.3, bilingual (en + zh).

Solutions (2, bilingual)

  • KB260515007 — How to Migrate a PostgreSQL Instance to Another Node
  • KB260515008 — How to Deploy CloudBeaver for PostgreSQL Management

Verification

  • Node migration: on ACP 4.2/4.3, deleting a replica's PVC + pod recreated the member, re-synced from the leader via streaming replication, and a previously-written marker row was present on the resynced member.
  • CloudBeaver: deploys as a single-pod Deployment and reaches the PostgreSQL Service on 5432; doc adds an air-gapped/IPv6 image-mirror note (the public dbeaver image is otherwise unreachable from such clusters).

The CloudBeaver guide parallels the existing How_to_Deploy_CloudBeaver_for_MySQL_Management (KB260515005).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added guide for deploying CloudBeaver web SQL client for PostgreSQL management on Kubernetes, including installation steps, initial setup, and connection configuration.
    • Added guide for migrating PostgreSQL cluster instances between nodes on local storage, covering scheduling constraints and pod recreation procedures.

…1526)

Precipitate historical internal KB PostgreSQL solutions, modernized to
the current acid.zalan.do/v1 postgresql CR and verified live on ACP
4.2/4.3, bilingual (en + zh):

- KB260515007 How to Migrate a PostgreSQL Instance to Another Node
- KB260515008 How to Deploy CloudBeaver for PostgreSQL Management

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@SuJinpei, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 42 minutes and 4 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 096224ca-e590-4ba8-9622-c38d6f226a54

📥 Commits

Reviewing files that changed from the base of the PR and between 73e1b5d and d80a95e.

📒 Files selected for processing (2)
  • docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md
  • docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md

Walkthrough

Adds two new solution documentation pages: one guides users through deploying CloudBeaver (web SQL client) on Kubernetes for PostgreSQL management, including a full manifest, deployment steps, UI setup, and PostgreSQL connection; the other documents migrating a PostgreSQL Operator–managed instance to a different node when using node-local storage via PVC/pod deletion and Patroni re-cloning.

Changes

CloudBeaver Deployment Guide

Layer / File(s) Summary
Manifest definition and deployment commands
docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md
Front matter, issue/environment context, full cloudbeaver.yaml manifest (PVC, Deployment, NodePort Service), air-gapped/IPv6 image notes, deployment commands, and NodePort URL discovery method.
Initial setup, PostgreSQL connection, and uninstall
docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md
Admin password setup, login, PostgreSQL cluster connection steps (service endpoint and superuser password retrieval from Secret), uninstall procedure, and PVC preservation instructions for redeploys.

PostgreSQL Instance Node Migration Guide

Layer / File(s) Summary
Overview, environment, and scheduling control
docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md
Front matter, explanation of why node-local volumes cannot reschedule, how PVC/pod deletion triggers Patroni re-cloning, and prerequisite steps to label nodes and patch nodeSelector on the PostgreSQL CR.
Sequential migration procedure and operational notes
docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md
Steps to confirm placement/leader, migrate non-leader members by deleting PVC and pod, verify replica streaming state, optional leader switchover, scheduling restoration, and notes on one-at-a-time migration and the single-instance scale-to-two workaround.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐇 Two new guides have hopped into view,
One for CloudBeaver, fresh and brand new,
One moves a Postgres pod to a different place,
PVCs deleted, Patroni picks up the pace!
Streaming replicas re-sync without fuss —
The rabbit approves, no drama from us. 🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main changes: adding two new PostgreSQL solutions (node migration guide and CloudBeaver deployment guide) with a reference to the associated ticket.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/add-postgresql-kb-solutions-31526

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

The zh translations are produced by the translation pipeline from the
en sources (tracked via sourceSHA); they should not be committed by hand.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md`:
- Around line 145-146: The kubectl exec command that attempts to echo the
PGPASSWORD_SUPERUSER environment variable will output nothing because the Alauda
PostgreSQL Operator stores credentials in Kubernetes Secrets, not pod
environment variables. Replace the documented command that uses bash -c 'echo
$PGPASSWORD_SUPERUSER' with a kubectl get secret command that retrieves and
decodes the password directly from the Kubernetes Secret created by the operator
for the cluster. The new command should use kubectl get secret with the
appropriate namespace and secret name, extracting the password key and decoding
the base64-encoded value to display the actual superuser password.

In `@docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md`:
- Around line 65-67: The kubectl label command in the example is applying the
`target=true` label to both the source and target nodes, which allows the
recreated pod to schedule to either node when using `nodeSelector: target=true`.
To fix this, modify the labeling command to apply the label only to
`<target-node>`, removing `<source-node>` from the command. This ensures the pod
will only schedule to the intended target node during recreation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8f4f0cce-e79f-4cb2-9612-fe83d5a42468

📥 Commits

Reviewing files that changed from the base of the PR and between f8f79ab and 73e1b5d.

📒 Files selected for processing (2)
  • docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md
  • docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md

Comment thread docs/en/solutions/How_to_Deploy_CloudBeaver_for_PostgreSQL_Management.md Outdated
Comment thread docs/en/solutions/How_to_Migrate_a_PostgreSQL_Instance_to_Another_Node.md Outdated
- CloudBeaver: retrieve superuser password from the operator-created Secret
  (postgres.<cluster>.credentials...) instead of a non-existent PGPASSWORD_SUPERUSER env var
- node migration: label only the target node to avoid rescheduling onto the source

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@SuJinpei SuJinpei deployed to translate June 18, 2026 07:34 — with GitHub Actions Active
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.

1 participant