Helm Chart Reference
This page documents all configurable values for the minio/directpv Helm chart.
Chart information
| Field | Value |
|---|---|
| Chart name | minio/directpv |
| Chart version | 0.4.5 |
| App version | 5.1.3 |
Global configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
annotations | object | {} | Annotations applied to all resources. |
labels | object | {} | Labels applied to all resources. |
license | string | "" | Deprecated. License verification is no longer required. Accepted for backwards compatibility but ignored. |
Cluster configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
forceOpenShift | boolean | auto-detect | Override OpenShift auto-detection. If not set, the chart attempts auto-detection using API capabilities. |
forceLegacyFlag | boolean | auto-detect | Override legacy DirectPV auto-detection. If not set, the chart auto-detects by checking for legacy volumes or migration labels. |
kubeletDirPath | string | /var/lib/kubelet | Custom kubelet directory path for non-standard Kubernetes installations. |
Image configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
images.pullPolicy | string | IfNotPresent | Image pull policy for all container images. |
images.pullSecrets | array | [] | Image pull secrets for private registries. |
images.directpv | string | See below | DirectPV container image. |
images.livenessprobe | string | See below | Liveness probe container image. |
images.csiNodeDriverRegistrar | string | See below | CSI Node Driver Registrar image. |
images.csiProvisioner | string | See below | CSI Provisioner image. |
images.csiResizer | string | See below | CSI Resizer image. |
Default images for Kubernetes
| Image | Default value |
|---|---|
directpv | quay.io/minio/directpv:v5.1.3 |
livenessprobe | quay.io/minio/livenessprobe:v2.19.0-0 |
csiNodeDriverRegistrar | quay.io/minio/csi-node-driver-registrar:v2.17.0-0 |
csiProvisioner | quay.io/minio/csi-provisioner:v6.3.0-0 |
csiResizer | quay.io/minio/csi-resizer:v2.2.1-0 |
Controller configuration
The controller deployment manages CSI provisioning and resizing operations.
| Parameter | Type | Default | Description |
|---|---|---|---|
controller.replicas | integer | 3 | Number of controller pod replicas. |
controller.podAnnotations | object | {} | Annotations to apply to controller pods. |
controller.podLabels | object | {} | Labels to apply to controller pods. |
controller.hostNetwork | boolean | false | Enable host network namespace for controller pods. |
controller.podSecurityContext | object | {} | Pod-level security context for controller containers. |
Node server configuration
The node server DaemonSet runs on each node to manage local drives.
| Parameter | Type | Default | Description |
|---|---|---|---|
nodeserver.podAnnotations | object | {} | Annotations to apply to node server pods. |
nodeserver.podLabels | object | {} | Labels to apply to node server pods. |
nodeserver.hostNetwork | boolean | false | Enable host network namespace for node server pods. |
nodeserver.nodeSelector | object | {} | Node selector constraints for scheduling node server pods. |
nodeserver.tolerations | array | [] | Tolerations for scheduling node server pods on tainted nodes. |
nodeserver.seccompLocalhostProfile | string | "" | Seccomp localhost profile path for container security. |
Examples
Limit nodes with node selector
Restrict DirectPV to specific nodes using labels:
nodeserver:
nodeSelector:
aistor.min.io/pool-id: "1"Allow scheduling on control plane nodes
Add tolerations to schedule on tainted nodes:
nodeserver:
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"Configure seccomp profile
Enable seccomp security profile:
nodeserver:
seccompLocalhostProfile: "profiles/seccomp.json"You must load the seccomp profile on nodes before enabling this option. See the security profiles documentation.
Use private registry
Configure image pull secrets for air-gapped environments:
images:
pullSecrets:
- name: my-registry-secret
directpv: my-registry.example.com/minio/directpv:v5.1.3
livenessprobe: my-registry.example.com/minio/livenessprobe:v2.19.0-0
csiNodeDriverRegistrar: my-registry.example.com/minio/csi-node-driver-registrar:v2.17.0-0
csiProvisioner: my-registry.example.com/minio/csi-provisioner:v6.3.0-0
csiResizer: my-registry.example.com/minio/csi-resizer:v2.2.1-0Complete custom values file
Example directpv-values.yaml with common customizations:
annotations:
environment: production
labels:
team: storage
nodeserver:
nodeSelector:
node-role.kubernetes.io/storage: "true"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "storage"
effect: "NoSchedule"
seccompLocalhostProfile: "directpv-seccomp.json"
controller:
replicas: 3
podAnnotations:
prometheus.io/scrape: "true"Install using the custom values:
helm install directpv minio/directpv -f directpv-values.yaml