Skip to content

docs: image version management for deployments#433

Open
tsivaprasad wants to merge 1 commit into
mainfrom
PLAT-673-docs-image-version-management-for-postgres-database-deployments
Open

docs: image version management for deployments#433
tsivaprasad wants to merge 1 commit into
mainfrom
PLAT-673-docs-image-version-management-for-postgres-database-deployments

Conversation

@tsivaprasad

@tsivaprasad tsivaprasad commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds end-user and internal documentation explaining how the Control Plane manages container images, including the version manifest, custom image overrides, validation rules, available upgrades, and offline/air-gapped deployment configuration.

Changes

  • New page docs/using/image-management.md — full image lifecycle: manifest resolution order, checking available upgrades, per-database and per-node image overrides, digest-pinned images, validation rules with error examples, and image persistence behaviour
  • docs/installation/configuration.md — add docker_swarm.manifest_url and docker_swarm.manifest_path to the optional settings table
  • docs/installation/installation.md — add "Version Manifest" section covering offline/air-gapped setup via manifest_path and manifest_url
  • docs/using/upgrade-db.md — add "Image Upgrades" section with ?include=available_upgrades and POST /v1/databases/{id}/upgrade examples
  • mkdocs.yml — register the new page in the nav under "Using Control Plane"
  • Internal doc internal-design-docs/control-plane/2026-07-15-testing-version-manifest.md — runbook for adding new manifest entries, local dev testing, publishing to downloads.pgedge.com, and a validation checklist

Testing

Verification Details

Checklist

  • Documentation updated

PLAT-673

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@tsivaprasad, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 48 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

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 reviews.

How do review limits work?

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

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, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ddbe90c2-9a5a-408f-af36-f5d8cb7f3cae

📥 Commits

Reviewing files that changed from the base of the PR and between 8d97c68 and 0364836.

📒 Files selected for processing (5)
  • docs/installation/configuration.md
  • docs/installation/installation.md
  • docs/using/image-management.md
  • docs/using/upgrade-db.md
  • mkdocs.yml
📝 Walkthrough

Walkthrough

Changes

The documentation now covers version manifest resolution, offline configuration, image formats and overrides, validation, persistence, and image upgrades. Manifest loading also adds default-image fallback and a latest service-image alias.

Container Image Management

Layer / File(s) Summary
Manifest resolution and offline configuration
docs/installation/configuration.md, docs/installation/installation.md, docs/using/image-management.md
Documents manifest URL and path settings, remote and cached resolution, embedded fallback behavior, and offline deployment configuration.
Image format, discovery, and overrides
docs/using/image-management.md, mkdocs.yml
Describes image tags, supported versions, available upgrades, digest references, database and node-level overrides, and the new navigation entry.
Image validation and air-gapped operation
docs/using/image-management.md
Documents host validation checks, failure responses, registry errors, request latency, and air-gapped image handling.
Image persistence and upgrades
docs/using/image-management.md, docs/using/upgrade-db.md
Explains resolved_image persistence, reconciliation behavior, image upgrade discovery, upgrade requests, and task tracking.
Service version alias generation
server/internal/orchestrator/swarm/manifest_loader.go
Selects the last image when no manifest default exists and adds a latest alias when a default image is available.

Poem

I’m a rabbit with a manifest map,
Hopping images into every gap.
Cached or local, the versions align,
Tiny tags march in a tidy line.
Upgrade hops when new builds appear—
Documentation grows clear and dear!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise, conventional, and accurately reflects the documentation-focused change set.
Description check ✅ Passed The description follows the required template with Summary, Changes, Testing, and Checklist sections and covers the main updates.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch PLAT-673-docs-image-version-management-for-postgres-database-deployments

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.

@codacy-production

codacy-production Bot commented Jul 16, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/using/image-management.md (1)

38-40: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Specify a language for fenced code blocks.

To improve syntax highlighting and avoid linter warnings, consider specifying a language (like text) for these code blocks.

  • docs/using/image-management.md#L38-L40: append text to the opening backticks.
  • docs/using/image-management.md#L194-L196: append text to the opening backticks.
🤖 Prompt for 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.

In `@docs/using/image-management.md` around lines 38 - 40, Specify the text
language on both fenced code blocks in docs/using/image-management.md at lines
38-40 and 194-196 by appending text to each opening fence.

Source: Linters/SAST tools

🤖 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/using/upgrade-db.md`:
- Around line 187-189: Replace the curly single quotes in the shell commands
with standard straight single quotes: update the URL at docs/using/upgrade-db.md
lines 187-189 and the header value and data payload at lines 215-221.

---

Nitpick comments:
In `@docs/using/image-management.md`:
- Around line 38-40: Specify the text language on both fenced code blocks in
docs/using/image-management.md at lines 38-40 and 194-196 by appending text to
each opening fence.
🪄 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: db7363d6-ffc6-4c6b-ac10-9cf33627f171

📥 Commits

Reviewing files that changed from the base of the PR and between fd06adb and 9424a0e.

📒 Files selected for processing (5)
  • docs/installation/configuration.md
  • docs/installation/installation.md
  • docs/using/image-management.md
  • docs/using/upgrade-db.md
  • mkdocs.yml

Comment thread docs/using/upgrade-db.md
Comment on lines +187 to +189
```sh
curl ‘http://host-3:3000/v1/databases/example?include=available_upgrades’
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use standard straight quotes in shell commands.

Typographic (curly) single quotes ( and ) in code blocks will cause syntax errors in most shells if copied and pasted directly. Please replace them with standard straight single quotes (').

  • docs/using/upgrade-db.md#L187-L189: replace the curly quotes around the URL with straight single quotes.
  • docs/using/upgrade-db.md#L215-L221: replace the curly quotes around the header value and data payload with straight single quotes.
📍 Affects 1 file
  • docs/using/upgrade-db.md#L187-L189 (this comment)
  • docs/using/upgrade-db.md#L215-L221
🤖 Prompt for 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.

In `@docs/using/upgrade-db.md` around lines 187 - 189, Replace the curly single
quotes in the shell commands with standard straight single quotes: update the
URL at docs/using/upgrade-db.md lines 187-189 and the header value and data
payload at lines 215-221.

@tsivaprasad
tsivaprasad force-pushed the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch from 8d97c68 to 4dcf39f Compare July 16, 2026 08:48
@tsivaprasad
tsivaprasad force-pushed the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch from 4dcf39f to 0364836 Compare July 16, 2026 08:56
Comment thread docs/using/upgrade-db.md
=== "curl"

```sh
curl ‘http://host-3:3000/v1/databases/example?include=available_upgrades’

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.

Curly quotes in the upgrade-db.md curl examples The new examples use smart quotes instead of straight quotes, so if someone copies and pastes them into a shell they will fail. Example lines: curl 'http://host-3:3000/v1/databases/example?include=available_upgrades', the -H header, and the --data body all use curly quotes. Replace them with normal straight quotes like the image-management.md examples already do.

| `etcd_server.client_port` | `PGEDGE_ETCD_SERVER__CLIENT_PORT` | int | `2379` | The port that the embedded Etcd server will listen on for client connections. | |
| `etcd_client.log_level` | `PGEDGE_ETCD_CLIENT__LOG_LEVEL` | string | `fatal` | The log level for Etcd client operations performed by this Control Plane server. | |
| `docker_swarm.image_repository_host` | `PGEDGE_DOCKER_SWARM__IMAGE_REPOSITORY_HOST` | string | `ghcr.io/pgedge` | The base URL of pgEdge Docker images. | |
| `docker_swarm.manifest_url` | `PGEDGE_DOCKER_SWARM__MANIFEST_URL` | string | pgEdge hosted manifest URL | Overrides the default version manifest URL. Set to an internal endpoint for air-gapped deployments or a staging URL for pre-release image testing. When set, the embedded binary manifest is still used as a last-resort fallback. | |

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.

Can you verify if its correct?

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