Charmarr Storage
| Channel | Revision | Published | Runs on |
|---|---|---|---|
| latest/edge | 10 | 28 Jan 2026 |
juju deploy charmarr-storage-k8s --channel edge
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
-
access-mode | string
Default: ReadWriteMany
PVC access mode (storage-class backend only).
ReadWriteMany: Pods can run on any node (requires NFS or similar) ReadWriteOnce: All pods locked to same node (works with local storage)
Ignored for native-nfs backend (always ReadWriteMany).
If StorageClass doesn't support ReadWriteMany, charm will detect and suggest changing to ReadWriteOnce.
-
backend-type | string
Storage backend type. REQUIRED.
Options:
- storage-class: Use existing Kubernetes StorageClass
- native-nfs: Use Kubernetes native NFS driver (managed by charm)
- hostpath: Use host filesystem path (single-node clusters)
Cannot be changed after initial deployment.
-
cleanup-on-remove | boolean
Default: True
Delete charm-managed K8s storage resources when the charm is removed.
When false (default): Resources persist for manual cleanup or reattachment. When true: Resources are cleaned up on removal.
WARNING: Setting to true may cause data loss depending on StorageClass reclaim policy.
-
hostpath | string
Host filesystem path (backend-type: hostpath).
The path must exist on the node and be accessible to pods. Best for single-node clusters with existing local storage (ZFS, BTRFS).
Example: /media or /mnt/storage/charmarr
-
nfs-path | string
NFS export path (backend-type: native-nfs).
Example: /mnt/pool/charmarr-media
-
nfs-server | string
NFS server IP or hostname (backend-type: native-nfs).
Example: 192.168.1.100 or nas.local
-
pgid | int
Default: 1000
Group ID for file ownership. Published to all connected applications.
All LinuxServer.io containers will use this GID, ensuring consistent file ownership across the entire media stack.
Default 1000 is the standard first non-root group on most Linux systems.
For NFS backends, set this to match your NFS export's expected GID.
-
puid | int
Default: 1000
User ID for file ownership. Published to all connected applications.
All LinuxServer.io containers will run as this UID, ensuring consistent file ownership across the entire media stack.
Default 1000 is the standard first non-root user on most Linux systems.
For NFS backends, set this to match your NFS export's expected UID.
-
size | string
Default: 100Gi
Storage size to provision. Can be increased later (not decreased).
For storage-class: Initial PVC size, expansion handled by CSI driver. For native-nfs: Informational only (NFS share size managed externally).
Examples: 100Gi, 1Ti, 5Ti
-
storage-class | string
Kubernetes StorageClass name to use (backend-type: storage-class).
Examples:
- local-path (single-node, RWO)
- topolvm-provisioner (multi-node local storage, RWO)
- nfs-csi (multi-node NFS, RWX)
Use 'kubectl get storageclass' to see available options.