Add Rook-Ceph installation procedure#32
Add Rook-Ceph installation procedure#32zdover23 wants to merge 4 commits intocobaltcore-dev:mainfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (2)
📝 WalkthroughWalkthroughAdded a navigation entry to the architecture index and a new comprehensive Rook-Ceph installation guide covering prerequisites, deployment with the Rook operator, cluster configuration, storage class creation (RBD/CephFS/RGW), verification, troubleshooting, and cleanup. ChangesRook-Ceph Installation Documentation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. 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.
Actionable comments posted: 1
🧹 Nitpick comments (3)
docs/architecture/rook-ceph-install.md (2)
89-92: ⚡ Quick winAdd language specifier to fenced code block.
The example output block should include a language specifier for proper syntax highlighting and clarity.
📝 Proposed fix
-``` +```text NAME READY STATUS RESTARTS AGE rook-ceph-operator-<pod-id> 1/1 Running 0 30s</details> As per coding guidelines, static analysis tool markdownlint-cli2 recommends fenced code blocks should have a language specified (MD040). <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@docs/architecture/rook-ceph-install.mdaround lines 89 - 92, The fenced code
block showing kubectl output lacks a language specifier; update the block in
docs/architecture/rook-ceph-install.md by changing the opening fence to include
a language (e.g., use "text") so it reads ```text, ensuring the example output
block is properly annotated for markdownlint (MD040) and syntax highlighting.</details> --- `146-155`: _⚡ Quick win_ **Add language specifier to fenced code block.** The example output block should include a language specifier for proper syntax highlighting and clarity. <details> <summary>📝 Proposed fix</summary> ```diff -``` +```text cluster: id: <cluster-id> health: HEALTH_OK ``` </details> As per coding guidelines, static analysis tool markdownlint-cli2 recommends fenced code blocks should have a language specified (MD040). <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In `@docs/architecture/rook-ceph-install.md` around lines 146 - 155, The fenced code block that shows the Ceph cluster example (the block containing "cluster: id: <cluster-id> health: HEALTH_OK" and the services lines) is missing a language specifier; update that opening fence to include a language (e.g., "text" or "yaml") so the block becomes a fenced code block with a language and satisfies markdownlint MD040. ``` </details> </blockquote></details> <details> <summary>docs/architecture/index.md (1)</summary><blockquote> `16-19`: _⚡ Quick win_ **Clarify the distinction between Ceph and Rook-Ceph Installation entries.** The entries on lines 16 and 17-19 have nearly identical descriptions ("all-in-one storage system that provides object, block, and file storage and delivers extraordinary scalability"). This may confuse readers about which document to consult. Consider either: 1. Differentiating the descriptions (e.g., line 16 could focus on Ceph architecture/overview, while lines 17-19 focus on the installation procedure) 2. Consolidating into a single entry if the documents cover overlapping content <details> <summary>💡 Proposed clarification</summary> ```diff - [**Ceph**](./ceph): An all-in-one storage system that provides object, block, and file storage and delivers extraordinary scalability. -- [**Rook-Ceph Installation**](./rook-ceph-install): A procedure for deploying - the all-in-one storage system that provides object, block, and file storage -and delivers extraordinary scalability. + - [**Rook-Ceph Installation**](./rook-ceph-install): Step-by-step procedure for deploying Ceph storage on Kubernetes using the Rook operator. ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary> ``` Verify each finding against the current code and only fix it if needed. In `@docs/architecture/index.md` around lines 16 - 19, The two list entries for "Ceph" and "Rook-Ceph Installation" use the same description and should be disambiguated: update the "Ceph" entry to describe the project's architecture/overview, core concepts, and use cases (e.g., "Ceph: architecture, components (MON/OSD/MDS), and when to use object/block/file storage"), and update the "Rook-Ceph Installation" entry to describe the deployment procedure and cluster setup steps (e.g., "Rook-Ceph Installation: step‑by‑step deployment on Kubernetes, configuration, and operational tips"); alternatively, if the two docs significantly overlap, consolidate into a single entry and point to the merged doc. Use the headings "Ceph" and "Rook-Ceph Installation" to locate and edit the corresponding list items. ``` </details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Inline comments:
In@docs/architecture/rook-ceph-install.md:
- Around line 58-64: Update the example git clone branch from release-1.14 to a
current stable Rook release (e.g., release-1.19) so the snippet and accompanying
note point users to a modern example; locate the git clone line that specifies
the branch (the string "release-1.14") and replace it with the newer branch name
(e.g., "release-1.19" or the latest minor tag) and adjust the surrounding note
if needed to reference the updated example version.
Nitpick comments:
In@docs/architecture/index.md:
- Around line 16-19: The two list entries for "Ceph" and "Rook-Ceph
Installation" use the same description and should be disambiguated: update the
"Ceph" entry to describe the project's architecture/overview, core concepts, and
use cases (e.g., "Ceph: architecture, components (MON/OSD/MDS), and when to use
object/block/file storage"), and update the "Rook-Ceph Installation" entry to
describe the deployment procedure and cluster setup steps (e.g., "Rook-Ceph
Installation: step‑by‑step deployment on Kubernetes, configuration, and
operational tips"); alternatively, if the two docs significantly overlap,
consolidate into a single entry and point to the merged doc. Use the headings
"Ceph" and "Rook-Ceph Installation" to locate and edit the corresponding list
items.In
@docs/architecture/rook-ceph-install.md:
- Around line 89-92: The fenced code block showing kubectl output lacks a
language specifier; update the block in docs/architecture/rook-ceph-install.md
by changing the opening fence to include a language (e.g., use "text") so it
reads ```text, ensuring the example output block is properly annotated for
markdownlint (MD040) and syntax highlighting.- Around line 146-155: The fenced code block that shows the Ceph cluster example
(the block containing "cluster: id: health: HEALTH_OK" and the
services lines) is missing a language specifier; update that opening fence to
include a language (e.g., "text" or "yaml") so the block becomes a fenced code
block with a language and satisfies markdownlint MD040.</details> <details> <summary>🪄 Autofix (Beta)</summary> Fix all unresolved CodeRabbit comments on this PR: - [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended) - [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes </details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: defaults **Review profile**: CHILL **Plan**: Pro **Run ID**: `6a50bc90-0c03-492b-865f-2843d38bc88b` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between ad61b49cb5a63c5514b1f7e536621db80c7e0ca2 and 3a25b81d5f64c9cdf2ddf78a10198f084da1ceaa. </details> <details> <summary>📒 Files selected for processing (3)</summary> * `README.md` * `docs/architecture/index.md` * `docs/architecture/rook-ceph-install.md` </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
| git clone --single-branch --branch release-1.14 https://github.com/rook/rook.git | ||
| cd rook/deploy/examples | ||
| ``` | ||
|
|
||
| **Note:** Replace `release-1.14` with the desired Rook version. Check the Rook | ||
| releases page for the latest stable version, and verify it is compatible with | ||
| your Kubernetes version before proceeding. |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
What is the latest stable release version of Rook as of May 2026?
💡 Result:
The latest stable release version of Rook as of May 2026 is v1.19.4.
Citations:
- 1: https://github.com/rook/rook/releases
- 2: https://github.com/rook/rook/releases/tag/v1.19.4
- 3: https://rook.io/docs/rook/latest-release/Upgrade/rook-upgrade/
- 4: https://github.com/rook/rook/releases/latest
Update the Rook version in the example to the latest stable release.
The example references release-1.14, but the latest stable release is v1.19.4. Update the git clone command to use release-1.19 or similar to provide users with a current example, rather than one from multiple major versions ago. While the note advises checking compatibility, users following the provided example should receive guidance on a current stable version.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/architecture/rook-ceph-install.md` around lines 58 - 64, Update the
example git clone branch from release-1.14 to a current stable Rook release
(e.g., release-1.19) so the snippet and accompanying note point users to a
modern example; locate the git clone line that specifies the branch (the string
"release-1.14") and replace it with the newer branch name (e.g., "release-1.19"
or the latest minor tag) and adjust the surrounding note if needed to reference
the updated example version.
3a25b81 to
9b54e5e
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
docs/architecture/rook-ceph-install.md (1)
58-64:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUpdate the example branch to a current Rook release train
Line 58 still hardcodes
release-1.14, which is stale for a default example. Keep the compatibility note, but update the sample command to a current stable release branch to reduce copy/paste drift for readers.What is the latest stable Rook release as of May 2026, and what is the corresponding release branch name (e.g., release-1.xx) recommended for installation examples?🤖 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/architecture/rook-ceph-install.md` around lines 58 - 64, Update the example git clone to use the current stable Rook release branch instead of the stale release-1.14; specifically replace `release-1.14` in the shown git clone command with the latest stable branch name (as of May 2026 use `release-1.26`) and keep the existing compatibility note advising readers to verify the Rook releases page and Kubernetes compatibility; locate the git clone line in the docs snippet (the `git clone --single-branch --branch ... https://github.com/rook/rook.git` command) and change only the branch token.
🤖 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/architecture/rook-ceph-install.md`:
- Around line 89-92: The fenced code blocks that show the pod status table (the
block starting with "NAME READY STATUS
RESTARTS AGE" / rook-ceph-operator-<pod-id>) and the cluster status block (the
block starting with "cluster:" / "id: <cluster-id>") are unlabeled and trigger
MD040; update each opening triple-backtick to include a language identifier (use
```text for the pod/table block and ```text or ```yaml as appropriate for the
cluster status block) so tooling and rendering recognize the block types.
---
Duplicate comments:
In `@docs/architecture/rook-ceph-install.md`:
- Around line 58-64: Update the example git clone to use the current stable Rook
release branch instead of the stale release-1.14; specifically replace
`release-1.14` in the shown git clone command with the latest stable branch name
(as of May 2026 use `release-1.26`) and keep the existing compatibility note
advising readers to verify the Rook releases page and Kubernetes compatibility;
locate the git clone line in the docs snippet (the `git clone --single-branch
--branch ... https://github.com/rook/rook.git` command) and change only the
branch token.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: f40ae408-e416-40a4-a1c2-61cedd4324a2
📒 Files selected for processing (2)
docs/architecture/index.mddocs/architecture/rook-ceph-install.md
✅ Files skipped from review due to trivial changes (1)
- docs/architecture/index.md
| ``` | ||
| NAME READY STATUS RESTARTS AGE | ||
| rook-ceph-operator-<pod-id> 1/1 Running 0 30s | ||
| ``` |
There was a problem hiding this comment.
Add language identifiers to fenced code blocks
Line 89 and Line 146 use unlabeled fenced blocks, which triggers MD040 and weakens rendering/tooling support. Add text (or yaml where appropriate).
Suggested patch
-```
+```text
NAME READY STATUS RESTARTS AGE
rook-ceph-operator-<pod-id> 1/1 Running 0 30s
```diff
-```
+```text
cluster:
id: <cluster-id>
health: HEALTH_OK
@@
mgr: a(active), standbys: b
osd: X osds: X up, X in
</details>
Also applies to: 146-155
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>
[warning] 89-89: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
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/architecture/rook-ceph-install.md around lines 89 - 92, The fenced code
blocks that show the pod status table (the block starting with "NAME
READY STATUS RESTARTS AGE" / rook-ceph-operator-) and the cluster
status block (the block starting with "cluster:" / "id: ") are
unlabeled and trigger MD040; update each opening triple-backtick to include a
language identifier (use text for the pod/table block and text or ```yaml
as appropriate for the cluster status block) so tooling and rendering recognize
the block types.
</details>
<!-- fingerprinting:phantom:triton:hawk -->
<!-- d98c2f50 -->
<!-- This is an auto-generated comment by CodeRabbit -->
$TITLE Signed-off-by: Zac Dover <zac.dover@clyso.com>
Add a Rook-Ceph installation procedure to the Cobaltcore documentation. Signed-off-by: Zac Dover <zac.dover@clyso.com>
$TITLE Signed-off-by: Zac Dover <zac.dover@clyso.com>
9b54e5e to
41c0e02
Compare
|
@jecluis, I've hard-wrapped the lines you pointed out. |
jecluis
left a comment
There was a problem hiding this comment.
I think the real blocker for this one is the Ceph installation bits that should be living in its own "Ceph" section, instead of the "Rook" section.
I'm also not confident that these should be living in the "docs/architecture" directory. I think we might want to have the equivalent to an 'architecture.md' of sorts, and then subdirectories for 'ceph', 'rook', etc, and this would be part of the 'docs/rook/install.md' file, with the latter portion of the file in 'docs/ceph/install.md' (or a variation of).
| to open ports for external access to Ceph services, the typical ports are | ||
| 6789, 3300, and 6800-7300. |
There was a problem hiding this comment.
Might be worth mentioning what services these give access to, roughly? mon, osd, etc. Also, will rgw be considered in this scenario? Those would likely end up with higher order ports.
| cluster using the Rook operator on Kubernetes. Rook automates the deployment, | ||
| configuration, and management of Ceph clusters within Kubernetes environments. | ||
|
|
||
| The instructions here are meant only as a general guideline. We recommend that you use the instructions found in the [official Rook documentation](https://rook.io/docs/rook/latest/) and the [upstream Ceph documentation](https://docs.ceph.com/). |
There was a problem hiding this comment.
this should be hard-wrapped at a reasonable length (I'm 79 cols + '\n' kind of guy) for readability.
As a side-quest, we should consider adding a .prettierrc.json (somehting like bellow) to the repo and rely on prettier to automatically deal with formatting for markdown files.
{
"printWidth": 80,
"proseWrap": "always"
}|
|
||
| - Linux kernel 4.5 or higher (5.x recommended) | ||
| - LVM2 packages installed on all nodes | ||
| - Minimum 2 GB RAM per node (4 GB+ recommended) |
There was a problem hiding this comment.
Are these recommended by the rook project? Seems oddly low for converged storage nodes.
|
|
||
| Wait until the operator pod shows `Running` status before proceeding. | ||
|
|
||
| ### Step 4: Create the Ceph Cluster |
There was a problem hiding this comment.
We will likely want to move all Ceph-related install steps to the "Ceph" section, away from the Rook deployment.
We can simply state here that "please see the 'Ceph' section for instructions on how to deploy Ceph" (or something).
Add a Rook-Ceph installation procedure to the Cobaltcore documentation.
Signed-off-by: Zac Dover zac.dover@clyso.com
Summary by CodeRabbit