Replaces the workstation-side Libation install with a daily CronJob that runs the official rmcrackan/libation image headlessly. SLEEP_TIME=-1 makes the entrypoint do one scan+liberate pass and exit; the schedule is handled by Kubernetes. Lives in the audiobookshelf namespace because k8s PVCs are namespace- scoped and we share /audiobooks with the audiobookshelf Deployment. A small RWO ceph-block PVC (libation-config) holds AccountsSettings.json, LibationContext.db, and the cover/search caches; an init container seeds it once from the SOPS-encrypted bootstrap secret (sentinel-file gated so token refreshes and DB updates persist across runs). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
939 B
YAML
26 lines
939 B
YAML
# Libation's config dir holds AccountsSettings.json (Audible identity
|
|
# tokens, refreshed by Libation across runs), LibationContext.db
|
|
# (library state — what's been downloaded), the cover-image cache, the
|
|
# Lucene search index, and Settings.json. The PVC is seeded from a
|
|
# SOPS-encrypted Secret on first boot (sentinel file gate); after that
|
|
# Libation reads and writes it directly so token rotation persists.
|
|
#
|
|
# Books are written to the audiobookshelf-books PVC (already provisioned
|
|
# by the audiobookshelf seed Kustomization, RWX ceph-filesystem). We
|
|
# share the same namespace so the PVC reference is direct — k8s PVCs
|
|
# are namespace-scoped.
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: libation-config
|
|
namespace: audiobookshelf
|
|
annotations:
|
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
storageClassName: ceph-block
|
|
resources:
|
|
requests:
|
|
storage: 2Gi
|