Helm chart values for static PV binding

The static PV binding Helm chart values bind Red Hat Edge Manager PersistentVolumeClaims to pre-provisioned PersistentVolumes on clusters without dynamic storage provisioning, configuring PVC-to-PV binding for the built-in PostgreSQL database and the Alertmanager.

Table 1. Static PV binding Helm chart values
Parameter Type Default Description

db.builtin.volumeName

string

""

Name of a pre-provisioned PV to bind the database PVC to. Immutable after PVC creation. The target PV must have capacity greater than or equal to db.builtin.storage.size.

db.builtin.selector.matchLabels

object

{}

Label selector for label-based PV binding for the database PVC. Immutable after PVC creation.

db.builtin.fsGroup

string

""

File system group ID for the database pod security context. Set this value when the PV requires a specific group owner for the PostgreSQL data directory.

db.builtin.storage.size

string

"60Gi"

Persistent volume size for the database PVC. The target PV must have at least this capacity.

db.builtin.additionalPVCLabels

object

nil

Additional labels applied to the database PVC.

alertmanager.volumeName

string

""

Name of a pre-provisioned PV to bind the Alertmanager PVC to. Immutable after PVC creation. The target PV must have capacity greater than or equal to 2 GiB.

alertmanager.selector.matchLabels

object

{}

Label selector for label-based PV binding for the Alertmanager PVC. Immutable after PVC creation.

alertmanager.additionalPVCLabels

object

nil

Additional labels applied to the Alertmanager PVC.

global.storageClassName

string

""

StorageClass to set on all PVCs. Set to "" (empty string) when using static PV binding on a cluster that has a default StorageClass, to prevent the DefaultStorageClass admission controller from injecting a class that does not match the target PV. Set to a specific class name if the PVs use a non-default StorageClass.

global.additionalPVCLabels

object

nil

Additional labels applied to all PVCs. Merged with component-specific labels.

Usage guidelines

StorageClass interaction
On a cluster that has a default StorageClass, leaving global.storageClassName unset can cause the DefaultStorageClass admission controller to inject the default class on the PVC. This causes the PVC to target the dynamic provisioner instead of the intended static PV, resulting in a binding failure. To prevent this, explicitly set global.storageClassName to "" (empty string) when using static PV binding on a cluster with a default StorageClass.
Immutability constraint
The volumeName and selector fields, including matchLabels, are immutable Kubernetes PVC spec fields. After a PVC is created and bound, these fields cannot be changed. Attempting to change them through helm upgrade fails with a Kubernetes validation error. To change the PV binding, you must delete the PVC, unbind or re-create the PV, and reinstall.
Binding precedence
If both volumeName and selector.matchLabels are set for the same component, volumeName takes precedence per Kubernetes binding semantics. The label selector is ignored when volumeName is set.