VolumeSnapshotClass parameters

The chart creates one VolumeSnapshotClass, mgxcsi-snapshotclass. Its parameters decide what a snapshot means (a point in time, or a rolling backup), where the objects land in S3, and what happens to them when the Kubernetes object goes away.

Parameters

Helm valueParameterDefaultDescription
configconfigserver defaultSnapshot plugin config profile. Leave unset and the pool defaults it.
incrementalincremental"yes""yes" keeps full plus incremental history, so every snapshot is an independently restorable point in time. "no" keeps a single rolling latest-only backup and point-in-time restore is not possible.
storageClassstorage_classpool configGLACIER_IRDestination S3 storage class. Use one the objects can be read from directly: STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR. Empty means the parameter is not sent and the pool's snapshot config decides, which ships as GLACIER_IR.
labelslabelsunsetPer-snapshot labels.
deletionPolicyDeleteDelete or Retain — the fate of the backup in S3 when the VolumeSnapshot is removed.
isDefaultfalseMark the class as the cluster default.

Several classes, one per retention tier

Because the destination is a property of the class, retention tiers are expressed as classes rather than as bucket lifecycle rules — what you asked for is what the snapshot did, and kubectl get volumesnapshotclass shows it:

yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: mgxcsi-snapshotclass-monthly
driver: csi.migrx.io
deletionPolicy: Retain
parameters:
  incremental: "yes"
  storage_class: GLACIER_IR
  labels: "retention=monthly"

Not every S3 class works as a destination. GLACIER and DEEP_ARCHIVE need an explicit S3 restore before their objects can be read again, and a restore reads them directly — so a snapshot sent there is not restorable without that step. Stay on the instant-retrieval classes above; GLACIER_IR is the cheapest of them.

See Snapshots and restore for taking and restoring them.