Helm Chart Reference

This page documents all configurable values for the minio/directpv Helm chart.

Chart information

FieldValue
Chart nameminio/directpv
Chart version0.4.5
App version5.1.3

Global configuration

ParameterTypeDefaultDescription
annotationsobject{}Annotations applied to all resources.
labelsobject{}Labels applied to all resources.
licensestring""Deprecated. License verification is no longer required. Accepted for backwards compatibility but ignored.

Cluster configuration

ParameterTypeDefaultDescription
forceOpenShiftbooleanauto-detectOverride OpenShift auto-detection. If not set, the chart attempts auto-detection using API capabilities.
forceLegacyFlagbooleanauto-detectOverride legacy DirectPV auto-detection. If not set, the chart auto-detects by checking for legacy volumes or migration labels.
kubeletDirPathstring/var/lib/kubeletCustom kubelet directory path for non-standard Kubernetes installations.

Image configuration

ParameterTypeDefaultDescription
images.pullPolicystringIfNotPresentImage pull policy for all container images.
images.pullSecretsarray[]Image pull secrets for private registries.
images.directpvstringSee belowDirectPV container image.
images.livenessprobestringSee belowLiveness probe container image.
images.csiNodeDriverRegistrarstringSee belowCSI Node Driver Registrar image.
images.csiProvisionerstringSee belowCSI Provisioner image.
images.csiResizerstringSee belowCSI Resizer image.

Default images for Kubernetes

ImageDefault value
directpvquay.io/minio/directpv:v5.1.3
livenessprobequay.io/minio/livenessprobe:v2.19.0-0
csiNodeDriverRegistrarquay.io/minio/csi-node-driver-registrar:v2.17.0-0
csiProvisionerquay.io/minio/csi-provisioner:v6.3.0-0
csiResizerquay.io/minio/csi-resizer:v2.2.1-0

Controller configuration

The controller deployment manages CSI provisioning and resizing operations.

ParameterTypeDefaultDescription
controller.replicasinteger3Number of controller pod replicas.
controller.podAnnotationsobject{}Annotations to apply to controller pods.
controller.podLabelsobject{}Labels to apply to controller pods.
controller.hostNetworkbooleanfalseEnable host network namespace for controller pods.
controller.podSecurityContextobject{}Pod-level security context for controller containers.

Node server configuration

The node server DaemonSet runs on each node to manage local drives.

ParameterTypeDefaultDescription
nodeserver.podAnnotationsobject{}Annotations to apply to node server pods.
nodeserver.podLabelsobject{}Labels to apply to node server pods.
nodeserver.hostNetworkbooleanfalseEnable host network namespace for node server pods.
nodeserver.nodeSelectorobject{}Node selector constraints for scheduling node server pods.
nodeserver.tolerationsarray[]Tolerations for scheduling node server pods on tainted nodes.
nodeserver.seccompLocalhostProfilestring""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-0

Complete 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

On this page