---
title: Charmhub | Deploy Charmarr Storage using Charmhub - The Open Operator Collection
description: Deploy the latest version of Charmarr Storage on any cloud.
url: https://charmhub.io/charmarr-storage-k8s/configurations
---

# Charmarr Storage

[Adhitya Sriram Ravi](https://charmhub.io/publisher/ivdi "View all packages from Adhitya Sriram Ravi")

* [Adhitya Sriram Ravi](https://charmhub.io/publisher/ivdi "View all packages from Adhitya Sriram Ravi")

Platform:

24.04

edge 18

```
juju deploy charmarr-storage-k8s --channel edge
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [access-mode](https://charmhub.io/charmarr-storage-k8s/configurations#access-mode)
* [backend-type](https://charmhub.io/charmarr-storage-k8s/configurations#backend-type)
* [cleanup-on-remove](https://charmhub.io/charmarr-storage-k8s/configurations#cleanup-on-remove)
* [hostpath](https://charmhub.io/charmarr-storage-k8s/configurations#hostpath)
* [nfs-path](https://charmhub.io/charmarr-storage-k8s/configurations#nfs-path)
* [nfs-server](https://charmhub.io/charmarr-storage-k8s/configurations#nfs-server)
* [pgid](https://charmhub.io/charmarr-storage-k8s/configurations#pgid)
* [puid](https://charmhub.io/charmarr-storage-k8s/configurations#puid)
* [size](https://charmhub.io/charmarr-storage-k8s/configurations#size)
* [storage-class](https://charmhub.io/charmarr-storage-k8s/configurations#storage-class)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

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