# Custom storage

## 1. Configure a custom Helm values.yaml file

Either create a new custom-values.yaml or edit your existing groundcover values.yaml agent:

<pre class="language-yaml"><code class="lang-yaml"><strong>clickhouse:
</strong><strong>  # logs storage
</strong>  persistence:
    size: 128Gi

victoria-metrics-single:
  # metrics storage
  server:
    persistentVolume:
      size: 100Gi 
</code></pre>

## 2. Upgrade groundcover

### If your StorageClass support allowVolumeExpansion

#### For groundcover CLI-based installations

```bash
groundcover deploy -f <custom-values.yaml>
```

#### For helm-based installations

```bash
helm upgrade <groundcover release name> groundcover/groundcover \
    -n <groundcover namespace> --reuse-values -f <custom-values.yaml>
```

### allowVolumeExpansion is not supported

{% hint style="warning" %}
Warning! this will require to re-install groundcover, existing groundcover information will be lost.
{% endhint %}

#### For groundcover CLI-based installations

```bash
groundcover uninstall
# On "delete pvc?" prompt, press Y
groundcover deploy -f <custom-values.yaml>
```

#### For helm-based installations

<pre class="language-bash"><code class="lang-bash"># Uninstall groundcover
helm uninstall &#x3C;groundcover release name> -n &#x3C;groundcover namespace> 
<strong># Delete groundcover namespace (make sure no non-groundcover assets are involved)
</strong><strong>kubectl delete ns &#x3C;groundcover namespace>
</strong><strong># Install groundcover with the updated values
</strong><strong>helm install &#x3C;groundcover release name> groundcover/groundcover \
</strong>    -n &#x3C;groundcover namespace> --reuse-values -f &#x3C;custom-values.yaml>
</code></pre>
