Skip to content

docs: image version management for deployments#433

Merged
tsivaprasad merged 3 commits into
mainfrom
PLAT-673-docs-image-version-management-for-postgres-database-deployments
Jul 21, 2026
Merged

docs: image version management for deployments#433
tsivaprasad merged 3 commits 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:

  1. Create DB with lower version
curl -X POST http://localhost:3000/v1/databases \
    -H 'Content-Type:application/json' \
    --data '{
        "id": "example",
        "spec": {
            "database_name": "example",
            "postgres_version": "17.9",
            "spock_version": "5",
            "database_users": [
                {
                    "username": "admin",
                    "password": "password",
                    "db_owner": true,
                    "attributes": ["SUPERUSER", "LOGIN"]
                }
            ],
            "nodes": [
                { "name": "n1", "host_ids": ["host-1"] },
                { "name": "n2", "host_ids": ["host-2"] },
                { "name": "n3", "host_ids": ["host-3"] }
            ]
        }
    }'
  1. Check available upgrades
curl 'http://localhost:3000/v1/databases/example?include=available_upgrades' | jq
  1. Upgrade
curl -X POST http://localhost:3000/v1/databases/example/upgrade \
    -H 'Content-Type:application/json' \
    --data '{
        "image": "ghcr.io/pgedge/pgedge-postgres:17.10-spock5.0.9-standard-1"
    }' | jq
  1. Per-Database Override
curl -X POST http://localhost:3000/v1/databases \
    -H 'Content-Type:application/json' \
    --data '{
        "id": "example",
        "spec": {
            "database_name": "example",
            "database_users": [
                {
                    "username": "admin",
                    "db_owner": true,
                    "attributes": ["SUPERUSER", "LOGIN"]
                }
            ],
            "postgres_version": "17.9",
            "spock_version": "5",
            "orchestrator_opts": {
                "swarm": {
                    "image": "ghcr.io/pgedge/pgedge-postgres:17.9-spock5.0.6-standard-2"
                }
            },
            "nodes": [
                { "name": "n1", "host_ids": ["host-1"] },
                { "name": "n2", "host_ids": ["host-2"] }
            ]
        }
    }' | jq

  1. Per-Node Override
curl -X POST http://localhost:3000/v1/databases \
    -H 'Content-Type:application/json' \
    --data '{
        "id": "example",
        "spec": {
            "database_name": "example",
            "database_users": [
                {
                    "username": "admin",
                    "db_owner": true,
                    "attributes": ["SUPERUSER", "LOGIN"]
                }
            ],
            "postgres_version": "17.9",
            "spock_version": "5",
            "nodes": [
                {
                    "name": "n1",
                    "host_ids": ["host-1"],
                    "orchestrator_opts": {
                        "swarm": {
                            "image": "ghcr.io/pgedge/pgedge-postgres:17.9-spock5.0.6-standard-2"
                        }
                    }
                },
                { "name": "n2", "host_ids": ["host-2"] }
            ]
        }
    }' | jq

  1. Digest-Pinned Images
curl -X POST http://localhost:3000/v1/databases \
    -H 'Content-Type:application/json' \
    --data '{
        "id": "example",
        "spec": {
            "database_name": "example",
            "database_users": [
                {
                    "username": "admin",
                    "db_owner": true,
                    "attributes": ["SUPERUSER", "LOGIN"]
                }
            ],
            "postgres_version": "17.10",
            "spock_version": "5",
            "orchestrator_opts": {
                "swarm": {
                    "image": "ghcr.io/pgedge/pgedge-postgres:17.10-spock5.0.10-standard-1@sha256:0bbc985f280a538bed20d1b73459668d2730c3c6913a2c6cacd2043678bce64e"
                }
            },
            "nodes": [
                { "name": "n1", "host_ids": ["host-1"] },
                { "name": "n2", "host_ids": ["host-2"] }
            ]
        }
    }' | jq

  1. Error cases
    curl -X POST http://localhost:3000/v1/databases \
        -H 'Content-Type:application/json' \
        --data '{
            "id": "example",
            "spec": {
                "database_name": "example",
                "database_users": [
                    {"username": "admin", "db_owner": true, "attributes": ["SUPERUSER", "LOGIN"]}
                ],
                "postgres_version": "17.9",
                "spock_version": "5",
                "orchestrator_opts": {
                    "swarm": {
                        "image": "ghcr.io/pgedge/pgedge-postgres:17.10-spock5.0.9-standard-1"
                    }
                },
                "nodes": [{"name": "n1", "host_ids": ["host-1"]}]
            }
        }'

curl -X POST http://localhost:3000/v1/databases \
        -H 'Content-Type:application/json' \
        --data '{
            "id": "example",
            "spec": {
                "database_name": "example",
                "database_users": [
                    {"username": "admin", "db_owner": true, "attributes": ["SUPERUSER", "LOGIN"]}
                ],
                "postgres_version": "17.9",
                "spock_version": "5",
                "orchestrator_opts": {
                    "swarm": {
                        "image": "ghcr.io/pgedge/pgedge-postgres:17.9-spock4.0.0-standard-1"
                    }
                },
                "nodes": [{"name": "n1", "host_ids": ["host-1"]}]
            }
        }'

Checklist

  • Documentation updated

PLAT-673

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The documentation adds version-manifest configuration, container image selection and validation guidance, image persistence semantics, upgrade procedures, and MkDocs navigation for the new image-management page.

Changes

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 remote, cached, embedded, local, and internal-URL manifest resolution paths for connected and air-gapped deployments.
Image format, discovery, and overrides
docs/using/image-management.md, mkdocs.yml
Describes image tags, supported-version and upgrade discovery, digest references, database/node overrides, and navigation to the image-management guide.
Image validation and air-gapped operation
docs/using/image-management.md
Documents host validation, failure responses, registry errors, latency, and pre-pulled images for offline deployments.
Image persistence and upgrades
docs/using/image-management.md, docs/using/upgrade-db.md
Explains resolved_image persistence, reconciliation behavior, stable image upgrades, task tracking, and same-major upgrade constraints.

Poem

I’m a rabbit with images tucked under my ear,
Manifests hop from cache when the network’s unclear.
Tags line up neatly, upgrades take flight,
Digests keep every carrot just right.
Air-gapped burrows pre-pull what they need—
Documentation now helps the whole warren succeed!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title is concise and accurately summarizes the main documentation update about image version management.
Description check ✅ Passed The PR description includes a summary, change list, testing steps, issue link, and checklist, with only optional sections missing.
✨ 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
@tsivaprasad
tsivaprasad force-pushed the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch 2 times, most recently from 4dcf39f to 0364836 Compare July 16, 2026 08:56
Comment thread docs/using/upgrade-db.md Outdated
=== "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.

Comment thread docs/installation/configuration.md Outdated
| `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?

@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: 7

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

102-110: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Clarify the air-gapped override requirement.

Custom image overrides always perform registry manifest validation on every host (Lines 205-226). State that this requires a registry reachable from each host; fully offline deployments with only pre-pulled images must use the manifest-based path instead.

🤖 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 102 - 110, Update the air-gapped
deployments guidance near the custom image override discussion to state that
registry manifest validation requires a registry reachable from every host.
Clarify that fully offline deployments using only pre-pulled images cannot use
custom overrides and must use the manifest-based image path instead.
🤖 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/installation/configuration.md`:
- Around line 50-51: Update the documentation for docker_swarm.manifest_url and
docker_swarm.manifest_path to explicitly state configuration precedence: CLI
flags override environment variables, which override config-file values. Clarify
that this order determines which manifest URL or path is used when sources
provide conflicting settings.
- Line 50: Update the manifest-resolution startup statement in image-management
documentation to match the behavior documented for docker_swarm.manifest_url:
the Control Plane does not fail for the default URL, but a custom URL can fail
startup when both the URL and disk cache are unavailable. Preserve the existing
default-URL behavior while explicitly documenting this custom-URL exception.

In `@docs/installation/installation.md`:
- Around line 259-261: Update the version-manifest bind mount in the Docker
Compose example to include the read-only option, ensuring the Control Plane
container cannot modify the host manifest while preserving the existing mount
paths.
- Around line 270-276: Update the manifest endpoint guidance around
PGEDGE_DOCKER_SWARM__MANIFEST_URL to require HTTPS or equivalent authentication
and integrity protection for custom manifest URLs. Replace the plain HTTP
example with a secure endpoint example and retain the existing internal-server
configuration context.

In `@docs/using/image-management.md`:
- Around line 38-40: Update the fenced examples in image-management.md,
including the shown image naming pattern and the additional fence referenced by
the comment, to specify the text language identifier. Preserve the example
contents unchanged.

In `@docs/using/upgrade-db.md`:
- Around line 229-231: Update the target image requirements in the upgrade
documentation to state that the image must be strictly newer than the database’s
current image, while retaining the existing stable-manifest and matching
Postgres/Spock major constraints.
- Around line 210-225: The upgrade endpoint documentation should describe the
response as an ApplyUpgradeResponse containing task and database objects, and
clarify that the task identifier is read from task.task_id rather than returned
as a bare task ID. Update the surrounding task-tracking guidance while
preserving the existing asynchronous workflow and request example.

---

Nitpick comments:
In `@docs/using/image-management.md`:
- Around line 102-110: Update the air-gapped deployments guidance near the
custom image override discussion to state that registry manifest validation
requires a registry reachable from every host. Clarify that fully offline
deployments using only pre-pulled images cannot use custom overrides and must
use the manifest-based image path instead.
🪄 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: 36d92014-e8f0-4120-8157-b01994fd8b95

📥 Commits

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

📒 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/installation/configuration.md Outdated
Comment thread docs/installation/configuration.md Outdated
Comment on lines +50 to +51
| `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 to a custom URL, the control plane falls back to the disk cache if the URL is unreachable, but does not fall back to the embedded manifest — an error is returned if both sources fail. | |
| `docker_swarm.manifest_path` | `PGEDGE_DOCKER_SWARM__MANIFEST_PATH` | string | | Path to a local version manifest file. When set, all remote URL fetching is skipped and the manifest is loaded exclusively from this file. Intended for air-gapped deployments where no outbound network access is available. See [Container Image Management](../using/image-management.md). | |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Document configuration-source precedence for these settings.

The rows expose environment variables, while the page only states that configuration sources can be combined. Clarify that precedence is CLI flags > environment variables > config file so operators know which manifest URL/path wins when sources disagree.

🤖 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/installation/configuration.md` around lines 50 - 51, Update the
documentation for docker_swarm.manifest_url and docker_swarm.manifest_path to
explicitly state configuration precedence: CLI flags override environment
variables, which override config-file values. Clarify that this order determines
which manifest URL or path is used when sources provide conflicting settings.

Source: Learnings

Comment thread docs/installation/installation.md Outdated
Comment thread docs/installation/installation.md Outdated
Comment thread docs/using/image-management.md Outdated
Comment thread docs/using/upgrade-db.md Outdated
Comment thread docs/using/upgrade-db.md Outdated

@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: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/using/image-management.md (1)

274-280: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Clarify air-gapped support for image overrides. manifest_path only skips remote manifest fetches; orchestrator_opts.swarm.image still requires a reachable registry for validation, so fully air-gapped deployments can only use manifest-selected images.

🤖 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 274 - 280, Clarify the warning
in the image-management documentation: explain that manifest_path only avoids
remote manifest fetching, while orchestrator_opts.swarm.image still requires
registry reachability for validation. State that fully air-gapped deployments
must use images selected by the local manifest and pre-pull all referenced
images on each host.
🤖 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/image-management.md`:
- Around line 289-295: Update the image-resolution trigger list in the image
management documentation to include spock_version and every other database spec
field that influences image selection, alongside postgres_version and
orchestrator_opts.swarm.image. Ensure the documented behavior states that
changing any of these fields refreshes resolved_image.
- Around line 212-214: Update the image pinning example in the documentation to
use a complete valid 64-character SHA-256 digest, or replace the truncated value
with the explicit <sha256-digest> placeholder; do not leave the ellipsis in the
image reference.
- Around line 109-111: Update the upgrade discovery rule in the image-management
documentation to include candidates with a higher Spock version or build number,
not only a higher Postgres version. Keep the existing stable-manifest and
matching `(postgres_major, spock_major)` constraints, and align the wording with
the upgrade criteria documented in upgrade-db.md.

---

Outside diff comments:
In `@docs/using/image-management.md`:
- Around line 274-280: Clarify the warning in the image-management
documentation: explain that manifest_path only avoids remote manifest fetching,
while orchestrator_opts.swarm.image still requires registry reachability for
validation. State that fully air-gapped deployments must use images selected by
the local manifest and pre-pull all referenced images on each host.
🪄 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: c52a395c-d6fe-4503-b159-b997fba35329

📥 Commits

Reviewing files that changed from the base of the PR and between 6c13cba and 2bef86e.

📒 Files selected for processing (4)
  • docs/installation/configuration.md
  • docs/installation/installation.md
  • docs/using/image-management.md
  • docs/using/upgrade-db.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/installation/installation.md
  • docs/installation/configuration.md

Comment thread docs/using/image-management.md
Comment thread docs/using/image-management.md Outdated
Comment thread docs/using/image-management.md Outdated
@tsivaprasad
tsivaprasad force-pushed the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch 2 times, most recently from 7cabe88 to dc7a682 Compare July 20, 2026 17:36
@tsivaprasad
tsivaprasad force-pushed the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch from 6b7c3ee to d8252ea Compare July 20, 2026 19:22
Comment thread docs/using/upgrade-db.md Outdated
Comment thread docs/using/image-management.md Outdated
Comment thread docs/using/upgrade-db.md

@moizpgedge moizpgedge 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.

LGTM!

Comment thread docs/installation/configuration.md Outdated
| `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` | **(Docker Swarm only)** The base URL of pgEdge Docker images. | |
| `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 to a custom URL, the control plane falls back to the disk cache if the URL is unreachable, but does not fall back to the embedded manifest - an error is returned if both sources fail. | |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we usually capitalize Control Plane...

Control Plane was in lowercase; updated to match other uses.

@susan-pgedge susan-pgedge left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The only change I've made is converting one occurrence of control plane to Control Plane.

@tsivaprasad
tsivaprasad merged commit c450a1f into main Jul 21, 2026
5 checks passed
@tsivaprasad
tsivaprasad deleted the PLAT-673-docs-image-version-management-for-postgres-database-deployments branch July 21, 2026 12:12
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.

3 participants