CI ACTIVE 1.5 min (6 intervals): data0 143.2 MB metadata 17.2 MB
CI IDLE 16.0 min (63 intervals): data0 0.0 MB metadata 11.0 MB
CI share of writes: data0 100% metadata 61%
cephfs-data0 takes zero bytes across 16 minutes without a pipeline. The 15s cadence is what made this visible at all — a pipeline creates, uses and deletes its PVC inside ~2 minutes, so 5-minute sampling reported ci_pods=0 during bursts CI was causing.
Per pipeline: ~168 MB → ~80 MB of drive writes.
Unchanged
STORAGE_RWX=true stays. Pipeline steps share the workspace PVC and the k8s backend can schedule them on different nodes, so RWO fails to mount on the second node. Only the filesystem underneath changes.
That PR justified leaving ceph-filesystem-ephemeral alone by claiming restore-test.sh handles "REAL data which must not land on unreplicated pools". That reasoning is wrong, and this PR fixes the comment.
Those probe PVCs are exactly as throwaway as a CI workspace — the authoritative copy is the backup on Hetzner, and losing a probe just means re-running the test. The script own comment already calls them throwaway.
The real reason it cannot move is technical: the probes are snapshot clones, and ceph fs subvolume snapshot clone operates within a single filesystem, so a snapshot taken in cephfs cannot be cloned into cephfs-ci. Landing them unreplicated would need a second size-1 data pool inside cephfs — and restore-test runs weekly against CI ~96 pipelines/day, so that is not worth the complexity.
What to watch after merge
First pipeline should provision its PVC from ceph-filesystem-ci and land in cephfs-ci-data0
cephfs-data0 write volume should drop to near zero
HEALTH_WARN ... 2 pool(s) have no replicas configured is expected and already present from #542
## What
Repoints `WOODPECKER_BACKEND_K8S_STORAGE_CLASS` at `ceph-filesystem-ci` — the dedicated size-1 filesystem from #542.
## Verified before repointing
#542 landed inert by design, so the filesystem was confirmed healthy first:
```
cephfs-ci PHASE Ready, ACTIVEMDS 1
rook-ceph-mds-cephfs-ci-a Running
cephfs-ci-metadata size: 1
cephfs-ci-data0 size: 1
```
## Measured
Polling both CephFS pools every **15 seconds**:
```
CI ACTIVE 1.5 min (6 intervals): data0 143.2 MB metadata 17.2 MB
CI IDLE 16.0 min (63 intervals): data0 0.0 MB metadata 11.0 MB
CI share of writes: data0 100% metadata 61%
```
`cephfs-data0` takes **zero bytes** across 16 minutes without a pipeline. The 15s cadence is what made this visible at all — a pipeline creates, uses and deletes its PVC inside ~2 minutes, so 5-minute sampling reported `ci_pods=0` during bursts CI was causing.
Per pipeline: **~168 MB → ~80 MB** of drive writes.
## Unchanged
`STORAGE_RWX=true` stays. Pipeline steps share the workspace PVC and the k8s backend can schedule them on different nodes, so RWO fails to mount on the second node. Only the filesystem underneath changes.
## Correction to #542
That PR justified leaving `ceph-filesystem-ephemeral` alone by claiming `restore-test.sh` handles *"REAL data which must not land on unreplicated pools"*. **That reasoning is wrong**, and this PR fixes the comment.
Those probe PVCs are exactly as throwaway as a CI workspace — the authoritative copy is the backup on Hetzner, and losing a probe just means re-running the test. The script own comment already calls them throwaway.
The real reason it cannot move is technical: the probes are snapshot **clones**, and `ceph fs subvolume snapshot clone` operates within a single filesystem, so a snapshot taken in `cephfs` cannot be cloned into `cephfs-ci`. Landing them unreplicated would need a second size-1 data pool inside `cephfs` — and restore-test runs **weekly** against CI ~96 pipelines/day, so that is not worth the complexity.
## What to watch after merge
- First pipeline should provision its PVC from `ceph-filesystem-ci` and land in `cephfs-ci-data0`
- `cephfs-data0` write volume should drop to near zero
- `HEALTH_WARN ... 2 pool(s) have no replicas configured` is expected and already present from #542
Repoints WOODPECKER_BACKEND_K8S_STORAGE_CLASS at ceph-filesystem-ci, the
dedicated filesystem added in #542 whose pools are both size 1.
Measured 2026-08-21, polling both CephFS pools every 15s:
CI active 1.5 min (6 intervals): data0 143.2 MB metadata 17.2 MB
CI idle 16.0 min (63 intervals): data0 0.0 MB metadata 11.0 MB
CI share of writes: data0 100%, metadata 61%
data0 takes zero bytes across 16 minutes without a pipeline, so its entire
write volume is CI. The 15s cadence is what made this visible: a pipeline
creates, uses and deletes its PVC inside ~2 minutes, so a 5-minute sample
reported no CI pods during bursts CI was causing.
Per pipeline this moves the drive cost from 71.6x2 + 8.2x3 = ~168 MB to
~80 MB, since neither pool is replicated on the new filesystem.
RWX is unchanged and still required: pipeline steps share the workspace PVC
and the k8s backend can schedule them on different nodes, so an RWO volume
fails to mount on the second node. Only the filesystem underneath changes.
Also corrects the justification written into #542 for leaving
ceph-filesystem-ephemeral alone. That commit claimed restore-test.sh handles
"REAL data which must not land on unreplicated pools". That is wrong: its
probe PVCs are as throwaway as a CI workspace -- the authoritative copy is the
backup on Hetzner, and losing a probe just means re-running the test.
The actual reason it cannot move is technical: those probes are snapshot
CLONES, and `ceph fs subvolume snapshot clone` operates within a single
filesystem, so a snapshot taken in `cephfs` cannot be cloned into `cephfs-ci`.
Landing them unreplicated would require a second size-1 data pool inside
`cephfs`; restore-test runs weekly against CI's ~96 pipelines/day, so that is
not worth the complexity.
cephfs-ci verified healthy before this change: PHASE Ready, MDS Running, both
pools reporting size 1.
🤖Automated review — model claude-haiku-4-5-20251001 (complexity: trivial), commit 7666d220c55442e4c9f46d97513efeb37a7ac780.
Advisory review by the review-bot pipeline. It never approves; a human merges. Push new commits to get a fresh review.
Summary
This PR repoints Woodpecker CI workspaces to a dedicated size-1 CephFS filesystem, reducing per-pipeline write volume from ~168 MB to ~80 MB by avoiding unnecessary replication of throwaway data. The infrastructure was verified healthy before this change, and the accompanying comment clarifies why the restore-test filesystem cannot be repointed (snapshot clones require same-filesystem operations, not data-safety concerns).
🔴 Blocking
None. No blocking issues found.
🟡 Suggestions
None. The change is well-executed.
🟢 Nits
None.
Tests
This is a configuration change to a deployed system, not testable via unit tests. The PR describes sufficient post-merge verification: the first pipeline should provision from ceph-filesystem-ci, cephfs-data0 write volume should drop to near zero, and a HEALTH_WARN for two unreplicated pools is expected (already present from #542).
Recommendation
Looks reasonable — no blocking issues; comments above are optional.
🤖 **Automated review** — model `claude-haiku-4-5-20251001` (complexity: trivial), commit `7666d220c55442e4c9f46d97513efeb37a7ac780`.
> Advisory review by the `review-bot` pipeline. It never approves; a human merges. Push new commits to get a fresh review.
---
## Summary
This PR repoints Woodpecker CI workspaces to a dedicated size-1 CephFS filesystem, reducing per-pipeline write volume from ~168 MB to ~80 MB by avoiding unnecessary replication of throwaway data. The infrastructure was verified healthy before this change, and the accompanying comment clarifies why the restore-test filesystem cannot be repointed (snapshot clones require same-filesystem operations, not data-safety concerns).
## 🔴 Blocking
None. No blocking issues found.
## 🟡 Suggestions
None. The change is well-executed.
## 🟢 Nits
None.
## Tests
This is a configuration change to a deployed system, not testable via unit tests. The PR describes sufficient post-merge verification: the first pipeline should provision from `ceph-filesystem-ci`, `cephfs-data0` write volume should drop to near zero, and a `HEALTH_WARN` for two unreplicated pools is expected (already present from #542).
## Recommendation
Looks reasonable — no blocking issues; comments above are optional.
<!-- pr-review:sha=7666d220c55442e4c9f46d97513efeb37a7ac780 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Repoints
WOODPECKER_BACKEND_K8S_STORAGE_CLASSatceph-filesystem-ci— the dedicated size-1 filesystem from #542.Verified before repointing
#542 landed inert by design, so the filesystem was confirmed healthy first:
Measured
Polling both CephFS pools every 15 seconds:
cephfs-data0takes zero bytes across 16 minutes without a pipeline. The 15s cadence is what made this visible at all — a pipeline creates, uses and deletes its PVC inside ~2 minutes, so 5-minute sampling reportedci_pods=0during bursts CI was causing.Per pipeline: ~168 MB → ~80 MB of drive writes.
Unchanged
STORAGE_RWX=truestays. Pipeline steps share the workspace PVC and the k8s backend can schedule them on different nodes, so RWO fails to mount on the second node. Only the filesystem underneath changes.Correction to #542
That PR justified leaving
ceph-filesystem-ephemeralalone by claimingrestore-test.shhandles "REAL data which must not land on unreplicated pools". That reasoning is wrong, and this PR fixes the comment.Those probe PVCs are exactly as throwaway as a CI workspace — the authoritative copy is the backup on Hetzner, and losing a probe just means re-running the test. The script own comment already calls them throwaway.
The real reason it cannot move is technical: the probes are snapshot clones, and
ceph fs subvolume snapshot cloneoperates within a single filesystem, so a snapshot taken incephfscannot be cloned intocephfs-ci. Landing them unreplicated would need a second size-1 data pool insidecephfs— and restore-test runs weekly against CI ~96 pipelines/day, so that is not worth the complexity.What to watch after merge
ceph-filesystem-ciand land incephfs-ci-data0cephfs-data0write volume should drop to near zeroHEALTH_WARN ... 2 pool(s) have no replicas configuredis expected and already present from #542🤖 Automated review — model
claude-haiku-4-5-20251001(complexity: trivial), commit7666d220c55442e4c9f46d97513efeb37a7ac780.Summary
This PR repoints Woodpecker CI workspaces to a dedicated size-1 CephFS filesystem, reducing per-pipeline write volume from ~168 MB to ~80 MB by avoiding unnecessary replication of throwaway data. The infrastructure was verified healthy before this change, and the accompanying comment clarifies why the restore-test filesystem cannot be repointed (snapshot clones require same-filesystem operations, not data-safety concerns).
🔴 Blocking
None. No blocking issues found.
🟡 Suggestions
None. The change is well-executed.
🟢 Nits
None.
Tests
This is a configuration change to a deployed system, not testable via unit tests. The PR describes sufficient post-merge verification: the first pipeline should provision from
ceph-filesystem-ci,cephfs-data0write volume should drop to near zero, and aHEALTH_WARNfor two unreplicated pools is expected (already present from #542).Recommendation
Looks reasonable — no blocking issues; comments above are optional.