Skip to content

docs: document preview support for systemd#321

Open
jason-lynch wants to merge 1 commit intofeat/PLAT-459/rpm-packagingfrom
docs/PLAT-511/systemd-docs
Open

docs: document preview support for systemd#321
jason-lynch wants to merge 1 commit intofeat/PLAT-459/rpm-packagingfrom
docs/PLAT-511/systemd-docs

Conversation

@jason-lynch
Copy link
Copy Markdown
Member

Summary

Adds a page to our docs that describes the preview support for systemd using the RPM files attached to our releases.

Testing

Create a test release with:

make goreleaser-test-release

Then, start one or more VMs using the template in the lima directory, e.g.:

limactl start -y --name=rpm-test-1 lima/lima-template.yaml

Now, when you connect to the new machine, you'll find that your home directory is mounted inside the VM. The path will change depending on where the control plane repo is on your host machine, the VM architecture, and the specific git commit that you've built, but in general the installation should look like:

# connect to the machine
limactl shell rpm-test-1

sudo su -

rpm -i /Users/jasonlynch/workspace/pgEdge/control-plane/dist/pgedge-control-plane_0.6.2-SNAPSHOT-a8765012_linux_amd64.rpm

# Or to upgrade an existing installation
rpm -U /Users/jasonlynch/workspace/pgEdge/control-plane/dist/pgedge-control-plane_0.6.2-SNAPSHOT-a8765012_linux_amd64.rpm

From there, you can follow the other instructions in the doc to install prerequisites, configure, and start the control plane.

PLAT-511

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5dff3837-b1e2-4e34-9190-cc00cb0cf430

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

These changes introduce documentation for installing pgEdge Control Plane via RPM packages on Linux systems without Docker. A new installation guide was added along with index and navigation updates to reflect this preview feature.

Changes

Cohort / File(s) Summary
Documentation Index & Navigation Updates
docs/installation/index.md, docs/installation/installation.md, mkdocs.yml
Added index entry and navigation link for new RPM-based installation guide; minor editorial revision.
New Installation Guide
docs/installation/systemd.md
New documentation page covering RPM package installation, systemd configuration, cluster initialization via HTTP endpoints, and upgrade procedures for pgEdge Control Plane on RPM-based Linux.

Poem

🐰 A new path through the Linux trees,
No Docker needed, RPM with ease!
Systemd spins while logs appear,
The Control Plane draws ever near,
Preview magic, systems cheer!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description provides a summary and testing instructions, but is missing several template sections: Changes section, Checklist items, and Notes for Reviewers. Complete the PR description by adding a Changes section with bulleted list of modifications, filling out the Checklist items, and optionally adding Notes for Reviewers to help with review.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: document preview support for systemd' clearly and concisely summarizes the main change: adding documentation for systemd preview support in the Control Plane installation guide.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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/PLAT-511/systemd-docs

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.

@jason-lynch jason-lynch requested a review from tsivaprasad March 30, 2026 15:38
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 1e4673e to 9b54d96 Compare March 31, 2026 16:43
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from a876501 to 2f71477 Compare March 31, 2026 16:43
@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Mar 31, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 9b54d96 to 43254b8 Compare March 31, 2026 16:51
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 2f71477 to 2f03fb0 Compare March 31, 2026 16:52
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 43254b8 to 3426d14 Compare March 31, 2026 17:35
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 2f03fb0 to 5067048 Compare March 31, 2026 17:35
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 3426d14 to 12cb3b8 Compare March 31, 2026 20:10
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 5067048 to 959fe6a Compare March 31, 2026 20:10
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 12cb3b8 to 9095732 Compare April 1, 2026 14:47
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 959fe6a to 7b0ae3d Compare April 1, 2026 14:47
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from 9095732 to e81f943 Compare April 1, 2026 16:13
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 7b0ae3d to 41034d1 Compare April 1, 2026 16:13
@jason-lynch
Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/installation/index.md (1)

11-11: Polish wording for clarity.

Line 11 reads a bit awkwardly (“Currently only supports…”). A small wording tweak improves readability.

✏️ Suggested edit
-* [Installing via System Packages](systemd.md) covers installing the Control Plane via system packages, without Docker. This is a **preview feature** and is not recommended for production use. Currently only supports installation through RPMs.
+* [Installing via System Packages](systemd.md) covers installing the Control Plane via system packages, without Docker. This is a **preview feature** and is not recommended for production use. Currently, it supports installation through RPMs only.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/installation/index.md` at line 11, Reword the awkward sentence in the
list item that begins "* [Installing via System Packages](systemd.md)..." to
improve clarity; replace "Currently only supports installation through RPMs."
with a clearer variant such as "Currently supports RPM-based installations
only." so the phrasing flows naturally and reads consistently with the preceding
clause about preview status.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/installation/installation.md`:
- Line 5: Replace the non-descriptive anchor text "[here](../using-ha/index.md)"
with a meaningful, accessible label that describes the target, e.g.,
"High-Availability Deployment Best Practices" (keep the existing URL
../using-ha/index.md); update the markdown link in the installation.md sentence
so the link text clearly conveys what the reader will find.

In `@docs/installation/systemd.md`:
- Around line 130-147: Update the example JSON block and curl payload to use the
API's expected field name server_urls (an array) instead of server_url, and
adjust the surrounding text to indicate an array of server URLs is required;
specifically change the JSON token payload and the --data body for the POST to
/v1/cluster/join to include "server_urls": ["http://198.19.249.2:3000"] so the
init/join API receives an array as documented.

---

Nitpick comments:
In `@docs/installation/index.md`:
- Line 11: Reword the awkward sentence in the list item that begins "*
[Installing via System Packages](systemd.md)..." to improve clarity; replace
"Currently only supports installation through RPMs." with a clearer variant such
as "Currently supports RPM-based installations only." so the phrasing flows
naturally and reads consistently with the preceding clause about preview status.
🪄 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: 86e9a8b2-76b8-42f0-8a73-3304293f6fd2

📥 Commits

Reviewing files that changed from the base of the PR and between e81f943 and 41034d1.

📒 Files selected for processing (4)
  • docs/installation/index.md
  • docs/installation/installation.md
  • docs/installation/systemd.md
  • mkdocs.yml

This guide contains instructions for deploying the Control Plane on a set of Linux hosts, such as virtual machines or bare metal servers.

Control Plan excels at managing Postgres in a highly-available configuration. To review a list of best practices for Control Plane deployment in a high-availability environment, visit [here](../using-ha/index.md).
Control Plane excels at managing Postgres in a highly-available configuration. To review a list of best practices for Control Plane deployment in a high-availability environment, visit [here](../using-ha/index.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.

⚠️ Potential issue | 🟡 Minor

Use descriptive link text instead of “here”.

Line 5 uses non-descriptive anchor text ([here]), which reduces accessibility and scanability in docs navigation.

✏️ Suggested edit
-Control Plane excels at managing Postgres in a highly-available configuration.  To review a list of best practices for Control Plane deployment in a high-availability environment, visit [here](../using-ha/index.md).
+Control Plane excels at managing Postgres in a highly-available configuration. To review best practices for high-availability deployments, see the [High-Availability Deployment Best Practices](../using-ha/index.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Control Plane excels at managing Postgres in a highly-available configuration. To review a list of best practices for Control Plane deployment in a high-availability environment, visit [here](../using-ha/index.md).
Control Plane excels at managing Postgres in a highly-available configuration. To review best practices for high-availability deployments, see the [High-Availability Deployment Best Practices](../using-ha/index.md).
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 5-5: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/installation/installation.md` at line 5, Replace the non-descriptive
anchor text "[here](../using-ha/index.md)" with a meaningful, accessible label
that describes the target, e.g., "High-Availability Deployment Best Practices"
(keep the existing URL ../using-ha/index.md); update the markdown link in the
installation.md sentence so the link text clearly conveys what the reader will
find.

Comment on lines +130 to +147
```json
{
"token": "PGEDGE-0c470f2eac35bb25135654a8dd9c812fc4aca4be8c8e34483c0e279ab79a7d30-907336deda459ebc79079babf08036fc",
"server_url": "http://198.19.249.2:3000"
}
```

Join each additional host to the cluster by submitting a `POST` request to that
host's `/v1/cluster/join` endpoint with the token and server URL from the
previous step:

```sh
curl -i -X POST http://<host_ip>:3000/v1/cluster/join \
-H 'Content-Type: application/json' \
--data '{
"token": "PGEDGE-0c470f2eac35bb25135654a8dd9c812fc4aca4be8c8e34483c0e279ab79a7d30-907336deda459ebc79079babf08036fc",
"server_url": "http://198.19.249.2:3000"
}'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix API field names: use server_urls (array), not server_url.

The examples on Line 133 and Line 146 use server_url, but the API contract for init/join uses server_urls as an array. Copy/pasting this currently can break join requests.

✅ Suggested correction
 {
   "token": "PGEDGE-0c470f2eac35bb25135654a8dd9c812fc4aca4be8c8e34483c0e279ab79a7d30-907336deda459ebc79079babf08036fc",
-  "server_url": "http://198.19.249.2:3000"
+  "server_urls": ["http://198.19.249.2:3000"]
 }
     --data '{
         "token": "PGEDGE-0c470f2eac35bb25135654a8dd9c812fc4aca4be8c8e34483c0e279ab79a7d30-907336deda459ebc79079babf08036fc",
-        "server_url": "http://198.19.249.2:3000"
+        "server_urls": ["http://198.19.249.2:3000"]
     }'
🧰 Tools
🪛 Betterleaks (1.1.1)

[high] 132-132: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


[high] 145-145: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 markdownlint-cli2 (0.22.0)

[warning] 130-130: Code block style
Expected: indented; Actual: fenced

(MD046, code-block-style)


[warning] 141-141: Code block style
Expected: indented; Actual: fenced

(MD046, code-block-style)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/installation/systemd.md` around lines 130 - 147, Update the example JSON
block and curl payload to use the API's expected field name server_urls (an
array) instead of server_url, and adjust the surrounding text to indicate an
array of server URLs is required; specifically change the JSON token payload and
the --data body for the POST to /v1/cluster/join to include "server_urls":
["http://198.19.249.2:3000"] so the init/join API receives an array as
documented.

Adds a page to our docs that describes the preview support for systemd
using the RPM files attached to our releases.

PLAT-511
@jason-lynch jason-lynch force-pushed the feat/PLAT-459/rpm-packaging branch from e81f943 to e8b57e4 Compare April 2, 2026 13:29
@jason-lynch jason-lynch force-pushed the docs/PLAT-511/systemd-docs branch from 41034d1 to 7f41594 Compare April 2, 2026 13:29
```json
{
"token": "PGEDGE-0c470f2eac35bb25135654a8dd9c812fc4aca4be8c8e34483c0e279ab79a7d30-907336deda459ebc79079babf08036fc",
"server_url": "http://198.19.249.2:3000"
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.

Here tag is server_urls

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