Skip to content

Add Rook-Ceph installation procedure#32

Open
zdover23 wants to merge 4 commits intocobaltcore-dev:mainfrom
zdover23:docs-2026-04-04-docs-architecture-rook-ceph-install
Open

Add Rook-Ceph installation procedure#32
zdover23 wants to merge 4 commits intocobaltcore-dev:mainfrom
zdover23:docs-2026-04-04-docs-architecture-rook-ceph-install

Conversation

@zdover23
Copy link
Copy Markdown
Contributor

@zdover23 zdover23 commented May 4, 2026

Add a Rook-Ceph installation procedure to the Cobaltcore documentation.

Signed-off-by: Zac Dover zac.dover@clyso.com

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive Rook-Ceph installation guide covering prerequisites, step‑by‑step Kubernetes deployment, cluster configuration/customization, storage class creation for block/file/object storage, verification and testing commands, troubleshooting tips, and cleanup procedures.
    • Added an architecture index entry linking to the Rook‑Ceph installation guide.
    • Updated the README introduction to rename the project to “CobaltCore documentation”.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 94d5187f-d078-4b92-8adc-7ca9d305082b

📥 Commits

Reviewing files that changed from the base of the PR and between 9b54e5e and 41c0e02.

📒 Files selected for processing (3)
  • README.md
  • docs/architecture/index.md
  • docs/architecture/rook-ceph-install.md
✅ Files skipped from review due to trivial changes (2)
  • README.md
  • docs/architecture/index.md

📝 Walkthrough

Walkthrough

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

Changes

Rook-Ceph Installation Documentation

Layer / File(s) Summary
Documentation Index
docs/architecture/index.md
Added a navigation entry linking to the Rook-Ceph installation guide and a brief description of its scope.
Guide Introduction & Overview
docs/architecture/rook-ceph-install.md
Adds title, overview, and references to Rook/Ceph docs.
Prerequisites
docs/architecture/rook-ceph-install.md
Lists Kubernetes, storage device, networking/CNI, and system package requirements.
Installation Workflow
docs/architecture/rook-ceph-install.md
Step-by-step: clone Rook release, apply CRDs/common/operator manifests, create cluster.yaml, monitor operator/OSD rollout, use Rook toolbox and ceph status.
Configuration Options
docs/architecture/rook-ceph-install.md
Describes cluster.yaml edits: OSD device selection, resource limits, network/provider options, and dashboard access (secret retrieval, port-forward).
Storage Classes & Services
docs/architecture/rook-ceph-install.md
RBD, CephFS, and RGW deployment instructions, sample storage classes, PVC example, and pod readiness checks.
Verification & Tests
docs/architecture/rook-ceph-install.md
Commands to verify storage classes/resources and sample workload manifests for RBD and CephFS.
Troubleshooting
docs/architecture/rook-ceph-install.md
kubectl/ceph command snippets for operator/OSD issues and HEALTH_WARN investigations.
Cleanup
docs/architecture/rook-ceph-install.md
Cluster/operator/CRD deletion steps, note on finalizers, and node-level OSD wipe commands.
README Branding
README.md
Small text change: project name updated from “CobaltChore documentation” to “CobaltCore documentation”.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • senolcolak

Poem

🐰 Hops through the docs with bounded glee,
Rook and Ceph now live in harmony!
From cluster birth to storage dance divine,
Each step laid plain — a guide concise and fine. ✨📦

🚥 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 'Add Rook-Ceph installation procedure' directly matches the main change—adding a comprehensive Rook-Ceph installation guide and architecture documentation entry.
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

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.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

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

🧹 Nitpick comments (3)
docs/architecture/rook-ceph-install.md (2)

89-92: ⚡ Quick win

Add 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.md around 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 -->

Comment on lines +58 to +64
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.
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

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


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.

@zdover23 zdover23 force-pushed the docs-2026-04-04-docs-architecture-rook-ceph-install branch from 3a25b81 to 9b54e5e Compare May 5, 2026 07:15
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: 1

♻️ Duplicate comments (1)
docs/architecture/rook-ceph-install.md (1)

58-64: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Update 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

📥 Commits

Reviewing files that changed from the base of the PR and between 3a25b81 and 9b54e5e.

📒 Files selected for processing (2)
  • docs/architecture/index.md
  • docs/architecture/rook-ceph-install.md
✅ Files skipped from review due to trivial changes (1)
  • docs/architecture/index.md

Comment on lines +89 to +92
```
NAME                                  READY   STATUS    RESTARTS   AGE
rook-ceph-operator-<pod-id>           1/1     Running   0          30s
```
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 | ⚡ Quick win

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

@BarbaraW-PM BarbaraW-PM requested review from jecluis and senolcolak May 5, 2026 14:05
zdover23 added 4 commits May 6, 2026 03:32
$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>
Signed-off-by: Zac Dover <zac.dover@proton.me>
$TITLE

Signed-off-by: Zac Dover <zac.dover@clyso.com>
@zdover23 zdover23 force-pushed the docs-2026-04-04-docs-architecture-rook-ceph-install branch from 9b54e5e to 41c0e02 Compare May 5, 2026 17:32
@zdover23
Copy link
Copy Markdown
Contributor Author

zdover23 commented May 5, 2026

@jecluis, I've hard-wrapped the lines you pointed out.

Copy link
Copy Markdown

@jecluis jecluis left a comment

Choose a reason for hiding this comment

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

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

Comment on lines +41 to +42
  to open ports for external access to Ceph services, the typical ports are
  6789, 3300, and 6800-7300.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Comment thread docs/architecture/rook-ceph-install.md Outdated
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/).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

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