feat(audiobookshelf): move books to the EC bulk pool #955

Merged
k.renner merged 1 commits from feat/abs-books-bulk into master 2026-09-25 05:49:44 +00:00
Member

Follow-up to #953. Points the Audiobookshelf Deployment and the libation CronJob at audiobookshelf-books-bulk (ceph-filesystem-bulk, EC 2+1).

Data

Copied with rsync -aH from audiobookshelf-books, old volume mounted read-only. Verified: 574 files, 87,315,610,958 bytes on both sides. cephfs-bulk holds 76 GiB stored in 113 GiB raw (1.5×).

Rollout

  • Deployment uses Recreate, so ABS restarts once.
  • libation runs at 04:00. Nothing new has been written to the old volume since the copy unless someone uploads through the ABS UI. After merge, a delta rsync -a (no --delete) from old to new picks up anything that did.

Not in this PR

audiobookshelf-books stays in pvcs.yaml (prune disabled). Removing it, which frees about 245 GiB raw, is a separate change after the new volume is confirmed in use.

🤖 Generated with Claude Code

Follow-up to #953. Points the Audiobookshelf Deployment and the libation CronJob at `audiobookshelf-books-bulk` (ceph-filesystem-bulk, EC 2+1). ## Data Copied with `rsync -aH` from `audiobookshelf-books`, old volume mounted read-only. Verified: 574 files, 87,315,610,958 bytes on both sides. `cephfs-bulk` holds 76 GiB stored in 113 GiB raw (1.5×). ## Rollout - Deployment uses `Recreate`, so ABS restarts once. - libation runs at 04:00. Nothing new has been written to the old volume since the copy unless someone uploads through the ABS UI. After merge, a delta `rsync -a` (no `--delete`) from old to new picks up anything that did. ## Not in this PR `audiobookshelf-books` stays in `pvcs.yaml` (prune disabled). Removing it, which frees about 245 GiB raw, is a separate change after the new volume is confirmed in use. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-bot added 1 commit 2026-09-25 05:48:19 +00:00
feat(audiobookshelf): move books to the EC bulk pool
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
ci/woodpecker/pr/pr-review Pipeline was successful
77d1e050f0
Points the audiobookshelf Deployment and the libation CronJob at
audiobookshelf-books-bulk (ceph-filesystem-bulk, EC 2+1). The data was
copied with rsync -aH from the old PVC and verified: 574 files,
87315610958 bytes on both sides.

audiobookshelf-books stays in pvcs.yaml (prune disabled) until the
new volume is confirmed in use; its removal is a separate change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
k.renner merged commit fabd86e111 into master 2026-09-25 05:49:44 +00:00
review-bot left a comment
Member

🤖 Automated review — model claude-haiku-4-5-20251001 (complexity: trivial), commit 77d1e050f068d19b3fa2c209b8e78da244e87445.

Advisory review by the review-bot pipeline. It never approves; a human merges. Push new commits to get a fresh review.


Summary

This PR updates the Audiobookshelf Deployment and libation CronJob to use the new audiobookshelf-books-bulk PVC (with EC 2+1 storage) instead of audiobookshelf-books. The functional changes are correct and well-scoped: the deployment volume claims and cronjob volume claims are properly updated, and the new PVC is already defined in kubernetes/apps/audiobookshelf/pvcs.yaml. However, there are outdated comments in related files that should be updated for consistency.

🟡 Suggestions

  1. kubernetes/clusters/homelab/libation.yaml:8 — The Kustomization comment says "downloads new Audible books into the audiobookshelf-books PVC" but should say "audiobookshelf-books-bulk PVC" to match the actual volume claim in the CronJob (line 141 of cronjob.yaml).

  2. kubernetes/apps/libation/pvc.yaml:8 — The libation-config PVC documentation says "Books are written to the audiobookshelf-books PVC" but should say "audiobookshelf-books-bulk PVC" to match the updated volume claim.

These comments don't affect functionality but keeping them current prevents confusion for future maintainers.

Tests

No tests are applicable — this is a Kubernetes manifest change that was validated by the operator (data copied and verified via rsync: 574 files, 87 TB; storage efficiency confirmed: 76 GiB stored in 113 GiB raw with EC 2+1). The safe rollout strategy (Recreate deployment restart + scheduled CronJob at 04:00) is documented in the PR body.

Recommendation

Looks reasonable — no blocking issues; comments above are optional but recommended for maintainability.

🤖 **Automated review** — model `claude-haiku-4-5-20251001` (complexity: trivial), commit `77d1e050f068d19b3fa2c209b8e78da244e87445`. > Advisory review by the `review-bot` pipeline. It never approves; a human merges. Push new commits to get a fresh review. --- ## Summary This PR updates the Audiobookshelf Deployment and libation CronJob to use the new `audiobookshelf-books-bulk` PVC (with EC 2+1 storage) instead of `audiobookshelf-books`. The functional changes are correct and well-scoped: the deployment volume claims and cronjob volume claims are properly updated, and the new PVC is already defined in `kubernetes/apps/audiobookshelf/pvcs.yaml`. However, there are outdated comments in related files that should be updated for consistency. ## 🟡 Suggestions 1. **`kubernetes/clusters/homelab/libation.yaml:8`** — The Kustomization comment says "downloads new Audible books into the audiobookshelf-books PVC" but should say "audiobookshelf-books-bulk PVC" to match the actual volume claim in the CronJob (line 141 of cronjob.yaml). 2. **`kubernetes/apps/libation/pvc.yaml:8`** — The libation-config PVC documentation says "Books are written to the audiobookshelf-books PVC" but should say "audiobookshelf-books-bulk PVC" to match the updated volume claim. These comments don't affect functionality but keeping them current prevents confusion for future maintainers. ## Tests No tests are applicable — this is a Kubernetes manifest change that was validated by the operator (data copied and verified via rsync: 574 files, 87 TB; storage efficiency confirmed: 76 GiB stored in 113 GiB raw with EC 2+1). The safe rollout strategy (`Recreate` deployment restart + scheduled CronJob at 04:00) is documented in the PR body. ## Recommendation Looks reasonable — no blocking issues; comments above are optional but recommended for maintainability. <!-- pr-review:sha=77d1e050f068d19b3fa2c209b8e78da244e87445 -->
Sign in to join this conversation.