Files
2025-10-15 15:11:59 +02:00

476 lines
12 KiB
Markdown

---
title: Persistence
---
:::note
- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/truecharts-common/persistence#full-examples) section for complete examples.
:::
## Appears in
- `.Values.persistence`
## Naming scheme
- `$FullName-$PersistenceName` (release-name-chart-name-PersistenceName)
:::tip
- Replace references to `$name`, `$podName`, `$containerName` with the actual name you want to use.
:::
---
## Target Selector
- `targetSelectAll` (bool): Whether to define the volume to all pods and mount it on all containers. `targetSelector` is ignored in this case. Useful for shared volumes.
- `targetSelector` (map): Define the pod(s) and container(s) to define the volume and mount it.
- `targetSelector` (empty): Define the volume to the primary pod and mount it on the primary container
## `persistence`
Define persistence objects
| | |
| ---------- | ------------- |
| Key | `persistence` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
persistence: {}
```
---
### `$name`
Define persistence
| | |
| ---------- | ------------------- |
| Key | `persistence.$name` |
| Type | `map` |
| Required | ✅ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
persistence:
some-vol: {}
```
---
#### `enabled`
Enables or Disables the persistence
| | |
| ---------- | --------------------------- |
| Key | `persistence.$name.enabled` |
| Type | `bool` |
| Required | ✅ |
| Helm `tpl` | ✅ |
| Default | `false` |
Example
```yaml
persistence:
some-vol:
enabled: true
```
---
#### `type`
Define the persistence type
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `persistence.$name.type` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | See default [here](/truecharts-common/fallbackdefaults#persistencetype) |
Valid Values:
- [`hostPath`](/truecharts-common/persistence/hostpath)
- [`configmap`](/truecharts-common/configmap)
- [`secret`](/truecharts-common/secret)
- [`device`](/truecharts-common/persistence/device)
- [`pvc`](/truecharts-common/persistence/pvc-vct)
- [`vct`](/truecharts-common/persistence/pvc-vct)
- [`nfs`](/truecharts-common/persistence/nfs)
- [`emptyDir`](/truecharts-common/persistence/emptydir)
- [`iscsi`](/truecharts-common/persistence/iscsi)
Example
```yaml
persistence:
some-vol:
type: pvc
```
---
#### `mountPath`
Define the mountPath for the persistence, applies to all containers that are selected
| | |
| ---------- | ----------------------------- |
| Key | `persistence.$name.mountPath` |
| Type | `string` |
| Required | ✅ |
| Helm `tpl` | ✅ |
| Default | `""` |
Example
```yaml
persistence:
some-vol:
mountPath: /path
```
---
#### `mountPropagation`
Define the mountPropagation for the persistence, applies to all containers that are selected
| | |
| ---------- | ------------------------------------ |
| Key | `persistence.$name.mountPropagation` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ✅ |
| Default | `""` |
Valid Values:
- `None`
- `HostToContainer`
- `Bidirectional`
Example
```yaml
persistence:
some-vol:
mountPropagation: HostToContainer
```
---
#### `subPath`
Define the subPath for the persistence, applies to all containers that are selected
| | |
| ---------- | --------------------------- |
| Key | `persistence.$name.subPath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ✅ |
| Default | `""` |
Example
```yaml
persistence:
some-vol:
subPath: some-path
```
---
#### `readOnly`
Define the readOnly for the persistence, applies to all containers that are selected
| | |
| ---------- | ---------------------------- |
| Key | `persistence.$name.readOnly` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
persistence:
some-vol:
readOnly: true
```
---
#### `targetSelectAll`
Define wether to define this volume to all workloads and mount it on all containers
| | |
| ---------- | ----------------------------------- |
| Key | `persistence.$name.targetSelectAll` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `false` |
Example
```yaml
persistence:
some-vol:
targetSelectAll: true
```
---
#### `targetSelector`
Define a map with pod and containers to mount
| | |
| ---------- | ---------------------------------- |
| Key | `persistence.$name.targetSelector` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
persistence:
some-vol:
targetSelector: {}
```
---
#### `targetSelector.$podName`
Define a map named after the pod to define the volume
| | |
| ---------- | ------------------------------------------- |
| Key | `persistence.$name.targetSelector.$podName` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod: {}
```
---
#### `targetSelector.$podName.$containerName`
Define a map named after the container to mount the volume
| | |
| ---------- | ---------------------------------------------------------- |
| Key | `persistence.$name.targetSelector.$podName.$containerName` |
| Type | `map` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `{}` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod:
my-container: {}
```
---
##### `targetSelector.$podName.$containerName.mountPath`
Define the mountPath for the container
| | |
| ---------- | -------------------------------------------------------------------- |
| Key | `persistence.$name.targetSelector.$podName.$containerName.mountPath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ✅ |
| Default | `$name.mountPath` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod:
my-container:
mountPath: /path
```
---
##### `targetSelector.$podName.$containerName.mountPropagation`
Define the mountPropagation for the container
| | |
| ---------- | --------------------------------------------------------------------------- |
| Key | `persistence.$name.targetSelector.$podName.$containerName.mountPropagation` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ✅ |
| Default | `$name.mountPropagation` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod:
my-container:
mountPropagation: HostToContainer
```
---
##### `targetSelector.$podName.$containerName.subPath`
Define the subPath for the container
| | |
| ---------- | ------------------------------------------------------------------ |
| Key | `persistence.$name.targetSelector.$podName.$containerName.subPath` |
| Type | `string` |
| Required | ❌ |
| Helm `tpl` | ✅ |
| Default | `$name.subPath` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod:
my-container:
subPath: some-path
```
---
##### `targetSelector.$podName.$containerName.readOnly`
Define the readOnly for the container
| | |
| ---------- | ------------------------------------------------------------------- |
| Key | `persistence.$name.targetSelector.$podName.$containerName.readOnly` |
| Type | `bool` |
| Required | ❌ |
| Helm `tpl` | ❌ |
| Default | `$name.readOnly` |
Example
```yaml
persistence:
some-vol:
targetSelector:
my-pod:
my-container:
readOnly: true
```
---
## Basic Examples
```yaml
# Example of a shared emptyDir volume
persistence:
shared:
enabled: true
type: emptyDir
mountPath: /shared
readOnly: false
targetSelectAll: true
```
```yaml
# Example of a volume mounted to a specific container with a specific mountPath
persistence:
config:
enabled: true
type: emptyDir
targetSelector:
my-pod:
my-container: {}
mountPath: /path
readOnly: false
my-other-container: {}
mountPath: /other/path
readOnly: false
```
```yaml
# Example of a volume mounted to a specific container using the default mountPath
persistence:
config:
enabled: true
type: emptyDir
mountPath: /path
readOnly: true
targetSelector:
my-pod:
my-container: {}
my-other-container:
mountPath: /other/path
readOnly: false
```
---
## Full Examples
Full examples can be found under each persistence type
- [hostPath](/truecharts-common/persistence/hostpath)
- [configmap](/truecharts-common/persistence/configmap)
- [secret](/truecharts-common/persistence/secret)
- [device](/truecharts-common/persistence/device)
- [pvc](/truecharts-common/persistence/pvc-vct)
- [vct](/truecharts-common/persistence/pvc-vct)
- [nfs](/truecharts-common/persistence/nfs)
- [emptyDir](/truecharts-common/persistence/emptydir)
- [iscsi](/truecharts-common/persistence/iscsi)