Skip to content

Add "Why Rook?" Information#33

Open
zdover23 wants to merge 1 commit into
cobaltcore-dev:mainfrom
zdover23:docs-2026-05-21-rook-ceph-install-why-rook
Open

Add "Why Rook?" Information#33
zdover23 wants to merge 1 commit into
cobaltcore-dev:mainfrom
zdover23:docs-2026-05-21-rook-ceph-install-why-rook

Conversation

@zdover23

@zdover23 zdover23 commented May 21, 2026

Copy link
Copy Markdown
Contributor

Add a short paragraph explaining why SAP has chosen Rook as its
Kubernetes operator.

This material was co-authored by Senol Colak. (Really, Senol deserves
the lion's share of the credit.)

Signed-off-by: Zac Dover zac.dover@proton.me

Summary by CodeRabbit

Documentation

  • Updated the architecture index with a new Ceph entry and a link to the installation guide describing it as an all-in-one scalable storage system (object, block, file)
  • Added comprehensive Rook-Ceph installation documentation for Kubernetes, including prerequisites, operator/cluster deployment steps, verification and dashboard access
  • Includes StorageClass creation examples (RBD, CephFS, RGW), functional test workflows, troubleshooting commands, and cleanup/teardown guidance (with data-wipe caution)

@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds Rook-Ceph links to the architecture index and introduces two detailed installation guides. The new docs cover prerequisites, deployment, configuration, storage provisioning, verification, troubleshooting, cleanup, and follow-up notes.

Changes

Rook-Ceph Documentation

Layer / File(s) Summary
Architecture index and installation foundation
docs/architecture/index.md, docs/architecture/rook-ceph-install.md
Adds Ceph and Rook-Ceph installation links in the architecture index, then introduces the architecture guide with title, overview, and Kubernetes/storage/network/system prerequisites plus the deployment sequence.
Configuration and storage provisioning
docs/architecture/rook-ceph-install.md
Documents cluster.yaml customization for storage devices, daemon resources, network settings, and dashboard access, then adds storage-class and workload setup for RBD, CephFS, and RGW.
Verification, troubleshooting, cleanup, and notes
docs/architecture/rook-ceph-install.md
Covers storage verification steps, targeted troubleshooting commands, cleanup and data-wipe instructions, and concluding next steps, links, and production notes.
Usage guide
docs/usage/rook-ceph-install.md
Adds a parallel end-to-end Rook-Ceph installation guide with deployment, verification, customization, storage, troubleshooting, and cleanup sections.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • cobaltcore-dev/docs#34: Also changes docs/architecture/index.md around Ceph-related documentation structure.

Suggested reviewers

  • senolcolak
  • sumitarora2786

Poem

🐰 Hop, hop—Ceph docs now shine,
Block, file, and object all aligned.
Rook takes the wheel, with guides so neat,
From install to cleanup, the trail’s complete.

🚥 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 is specific and clearly related to the PR’s Rook documentation update, though it emphasizes one aspect rather than the full docs expansion.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@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

🤖 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 92-95: The fenced code block showing the pod status lacks a
language tag (triggering MD040); update the block in rook-ceph-install.md that
contains the lines starting with "NAME                                  READY  
STATUS    RESTARTS   AGE" / "rook-ceph-operator-<pod-id>" to use a language
identifier (e.g., add ```text at the opening fence) so the snippet is fenced as
```text ... ``` as suggested.
- Around line 61-67: Update the git clone example so the branch placeholder is
explicit: change the --branch value shown as `release-` to a clear placeholder
token like `<rook-release-tag>` in the git clone command (the line containing
"git clone --single-branch --branch release- https://github.com/rook/rook.git")
and update the surrounding note to instruct users to replace
`<rook-release-tag>` with the desired Rook release tag.
- Around line 149-158: The fenced code block showing the Ceph cluster example
(the block starting with "cluster:" and the lines "id:     <cluster-id>" and
"health: HEALTH_OK") lacks a language tag and triggers MD040; add a language
identifier (e.g., "text" or "yaml") after the opening backticks so the block
becomes ```text (or ```yaml) to satisfy the linter.

In `@docs/usage/rook-ceph-install.md`:
- Around line 154-163: The fenced code block that begins with ``` and contains
the YAML-like keys cluster: and services: is missing a language tag and triggers
MD040; fix it by adding an appropriate language identifier (e.g., "yaml") after
the opening ``` so the block becomes ```yaml, keeping the existing content
(cluster:, id:, health:, services:, mon:, mgr:, osd:) intact.
- Around line 97-100: The fenced code block showing the kubectl output (the
lines starting with "NAME                                  READY   STATUS   
RESTARTS   AGE" and the "rook-ceph-operator-<pod-id>…" line) needs a language
label to satisfy MD040; update the opening backticks from ``` to include a
language token such as "console", "bash", or "text" (e.g. ```console) so the
block is properly annotated.
- Around line 58-62: Remove the malformed emphasis markers around the paragraph
that starts with "Rook is the unique Kubernetes operator for managing Ceph
workloads" so it becomes a normal paragraph (no asterisks or surrounding italic
markup); ensure there are no spaces inside emphasis markers and replace the
entire emphasized block with a plain paragraph preserving the existing wording
about Rook, Kubernetes, and SAP cloud infrastructure.
- Around line 66-72: Update the git clone instruction that currently uses the
literal branch token 'git clone --single-branch --branch release-
https://github.com/rook/rook.git' to use an explicit placeholder (for example
'--branch <release-version>' or '--branch release-x.y') so readers cannot
accidentally copy a non-functional literal; change the command text to: git
clone --single-branch --branch <release-version>
https://github.com/rook/rook.git and update the surrounding note to reference
the <release-version> placeholder.
🪄 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: 2c9f5039-20b4-417f-bdd9-07d7e9eb2f37

📥 Commits

Reviewing files that changed from the base of the PR and between 5e605d9 and 7631441.

📒 Files selected for processing (3)
  • docs/architecture/index.md
  • docs/architecture/rook-ceph-install.md
  • docs/usage/rook-ceph-install.md

Comment thread docs/architecture/rook-ceph-install.md
Comment thread docs/architecture/rook-ceph-install.md
Comment thread docs/architecture/rook-ceph-install.md
Comment thread docs/usage/rook-ceph-install.md
Comment thread docs/usage/rook-ceph-install.md
Comment thread docs/usage/rook-ceph-install.md
Comment thread docs/usage/rook-ceph-install.md
senolcolak
senolcolak previously approved these changes Jun 15, 2026

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

looks good

$TITLE

Signed-off-by: Zac Dover <zac.dover@clyso.com>
@zdover23 zdover23 force-pushed the docs-2026-05-21-rook-ceph-install-why-rook branch from 7631441 to c2cdbec Compare June 30, 2026 02:15

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

♻️ Duplicate comments (7)
docs/usage/rook-ceph-install.md (4)

97-100: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language identifier to this fenced code block.

The block lacks a language tag, which triggers markdownlint MD040.

📝 Suggested fix
-```
+```text
 NAME                                  READY   STATUS    RESTARTS   AGE
 rook-ceph-operator-<pod-id>           1/1     Running   0          30s
</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/usage/rook-ceph-install.md around lines 97 - 100, Add a language
identifier to the fenced block in the rook-ceph installation docs by updating
the markdown code fence around the kubectl output so it uses a text-style label.
This fixes the MD040 lint issue; locate the fenced snippet in the usage guide
and keep the existing content unchanged while adding the language tag to the
opening fence.


</details>

<!-- cr-comment:v1:eb2e843b278ce90959148e90 -->

---

`154-163`: _📐 Maintainability & Code Quality_ | _🟡 Minor_ | _⚡ Quick win_

**Add a language identifier to this fenced code block.**

The block lacks a language tag, which triggers markdownlint MD040.





<details>
<summary>📝 Suggested fix</summary>

```diff
-```
+```text
 cluster:
   id:     <cluster-id>
   health: HEALTH_OK
 
 services:
   mon: 3 daemons, quorum a,b,c
   mgr: a(active), standbys: b
   osd: X osds: X up, X in
</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/usage/rook-ceph-install.md around lines 154 - 163, Add a language
identifier to the fenced markdown block in the Rook Ceph install docs so it
satisfies markdownlint MD040; update the code fence around the cluster status
example to use a text-style language tag, keeping the existing content unchanged
and ensuring the fenced block is consistently labeled wherever that example
appears.


</details>

<!-- cr-comment:v1:4ba1fb51ca9b5f791af76151 -->

---

`65-72`: _📐 Maintainability & Code Quality_ | _🟡 Minor_ | _⚡ Quick win_

**Use an explicit branch placeholder to prevent copy-paste failures.**

`--branch release-` is incomplete and will fail if copied verbatim. Replace it with a clear placeholder token directly in the command.





<details>
<summary>📝 Suggested fix</summary>

```diff
 ```bash
-git clone --single-branch --branch release- https://github.com/rook/rook.git
+git clone --single-branch --branch <rook-release-tag> https://github.com/rook/rook.git
 cd rook/deploy/examples

Also update the note on line 70:

```diff
-**Note:** Replace `release-` with the desired Rook version. Check the Rook
+**Note:** Replace `<rook-release-tag>` with the desired Rook version. Check the Rook
🤖 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/usage/rook-ceph-install.md` around lines 65 - 72, The clone command in
the Rook install docs uses an incomplete branch name, so update the git clone
example in the documentation to use a clear placeholder token that readers can
replace directly, using the same command block around the rook clone
instructions. Also revise the adjacent note in that section to refer to the
placeholder token instead of the partial release- text so the example is
copy-paste safe and unambiguous.

58-61: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove malformed emphasis markers and make this normal paragraph text.

The asterisks create spaces-inside-emphasis (MD037) and unnecessarily italicize the entire paragraph. Convert to plain text for readability.

📝 Suggested fix
-*Rook is the unique Kubernetes operator for managing Ceph workloads, which is
-why cloud-storage uses Rook. The SAP cloud infrastructure is built on top of
-Kubernetes, and the automation and foundation stack is Kubernetes. Because
-Rook is the Kubernetes operator, SAP has chosen it for managing Ceph workloads. *
+Rook is the Kubernetes operator used to manage Ceph workloads. SAP cloud
+infrastructure is built on Kubernetes, and this alignment is why SAP chose
+Rook for Ceph lifecycle management.
🤖 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/usage/rook-ceph-install.md` around lines 58 - 61, The paragraph in
rook-ceph-install.md is wrapped in malformed emphasis markers, causing the whole
block to render as italicized text and trigger MD037. Update the affected
paragraph so it is plain paragraph content with no leading or trailing
asterisks, keeping the existing wording in the Rook/Ceph explanation unchanged.
Locate the text by the “Rook is the unique Kubernetes operator…” paragraph and
remove only the emphasis markers.
docs/architecture/rook-ceph-install.md (3)

60-67: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use an explicit branch placeholder to prevent copy-paste failures.

--branch release- is incomplete and will fail if copied verbatim. Replace it with a clear placeholder token directly in the command.

📝 Suggested fix
 ```bash
-git clone --single-branch --branch release- https://github.com/rook/rook.git
+git clone --single-branch --branch <rook-release-tag> https://github.com/rook/rook.git
 cd rook/deploy/examples

Also update the note on line 65:

```diff
-**Note:** Replace `release-` with the desired Rook version. Check the Rook
+**Note:** Replace `<rook-release-tag>` with the desired Rook version. Check the Rook
🤖 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 60 - 67, The clone
command in the rook installation docs uses an incomplete --branch release- value
that will fail when copied. Update the command in the rook install section to
use a clear placeholder token instead, and make the accompanying note in the
same snippet match that placeholder; use the nearby git clone and cd
rook/deploy/examples instructions as the anchor when editing.

149-158: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language identifier to this fenced code block.

The block lacks a language tag, which triggers markdownlint MD040.

📝 Suggested fix
-```
+```text
 cluster:
   id:     <cluster-id>
   health: HEALTH_OK
 
 services:
   mon: 3 daemons, quorum a,b,c
   mgr: a(active), standbys: b
   osd: X osds: X up, X in
</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 149 - 158, The fenced
code block in the documentation needs a language identifier to satisfy
markdownlint MD040. Update the Markdown snippet in the rook-ceph install doc by
adding an explicit language tag to the existing fenced block (using the same
code block around the cluster/service output), so the block is recognized as
text rather than an unlabeled fence.


</details>

<!-- cr-comment:v1:d80f0a0ca270f1d741e57441 -->

---

`92-95`: _📐 Maintainability & Code Quality_ | _🟡 Minor_ | _⚡ Quick win_

**Add a language identifier to this fenced code block.**

The block lacks a language tag, which triggers markdownlint MD040.





<details>
<summary>📝 Suggested fix</summary>

```diff
-```
+```text
 NAME                                  READY   STATUS    RESTARTS   AGE
 rook-ceph-operator-<pod-id>           1/1     Running   0          30s
</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 92 - 95, The fenced
output example in the Rook-Ceph install doc is missing a language identifier,
which triggers markdownlint MD040. Update the code block around the
kubectl-style table to use an explicit text fence so the snippet remains plain
text while satisfying the linter.


</details>

<!-- cr-comment:v1:81967a45e6eb83dcfd9b6cff -->

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with 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.

Duplicate comments:
In @docs/architecture/rook-ceph-install.md:

  • Around line 60-67: The clone command in the rook installation docs uses an
    incomplete --branch release- value that will fail when copied. Update the
    command in the rook install section to use a clear placeholder token instead,
    and make the accompanying note in the same snippet match that placeholder; use
    the nearby git clone and cd rook/deploy/examples instructions as the anchor when
    editing.
  • Around line 149-158: The fenced code block in the documentation needs a
    language identifier to satisfy markdownlint MD040. Update the Markdown snippet
    in the rook-ceph install doc by adding an explicit language tag to the existing
    fenced block (using the same code block around the cluster/service output), so
    the block is recognized as text rather than an unlabeled fence.
  • Around line 92-95: The fenced output example in the Rook-Ceph install doc is
    missing a language identifier, which triggers markdownlint MD040. Update the
    code block around the kubectl-style table to use an explicit text fence so the
    snippet remains plain text while satisfying the linter.

In @docs/usage/rook-ceph-install.md:

  • Around line 97-100: Add a language identifier to the fenced block in the
    rook-ceph installation docs by updating the markdown code fence around the
    kubectl output so it uses a text-style label. This fixes the MD040 lint issue;
    locate the fenced snippet in the usage guide and keep the existing content
    unchanged while adding the language tag to the opening fence.
  • Around line 154-163: Add a language identifier to the fenced markdown block in
    the Rook Ceph install docs so it satisfies markdownlint MD040; update the code
    fence around the cluster status example to use a text-style language tag,
    keeping the existing content unchanged and ensuring the fenced block is
    consistently labeled wherever that example appears.
  • Around line 65-72: The clone command in the Rook install docs uses an
    incomplete branch name, so update the git clone example in the documentation to
    use a clear placeholder token that readers can replace directly, using the same
    command block around the rook clone instructions. Also revise the adjacent note
    in that section to refer to the placeholder token instead of the partial
    release- text so the example is copy-paste safe and unambiguous.
  • Around line 58-61: The paragraph in rook-ceph-install.md is wrapped in
    malformed emphasis markers, causing the whole block to render as italicized text
    and trigger MD037. Update the affected paragraph so it is plain paragraph
    content with no leading or trailing asterisks, keeping the existing wording in
    the Rook/Ceph explanation unchanged. Locate the text by the “Rook is the unique
    Kubernetes operator…” paragraph and remove only the emphasis markers.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `5edfc07e-ed2e-4cbe-83e9-964254436c1b`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 76314416765ced23cf0a70844ae4f79763ec86f9 and c2cdbecca1cbf10fb9ba5ab1792f580c35011872.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `docs/architecture/index.md`
* `docs/architecture/rook-ceph-install.md`
* `docs/usage/rook-ceph-install.md`

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (1)</summary>

* docs/architecture/index.md

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

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