Trident 25.06 adds support for Kubernetes Volume Group Snapshots (tested with v1beta1) with ONTAP-SAN volumes. This feature enables point-in-time, crash-consistent snapshots of multiple Persistent Volumes (PVs) by leveraging NetApp ONTAP’s Consistency Group (CG) capabilities.
Why Volume Group Snapshots?
Trident has long supported Kubernetes Volume Snapshots, allowing admins to snapshot individual Kubernetes PVs with ONTAP storage. However, this doesn't work for scenarios where point-in-time consistency is required between multiple snapshots. With standard Kubernetes Volume Snapshots, neither Kubernetes nor Trident can guarantee point-in-time consistency.
Kubernetes Volume Group Snapshots
That’s where Kubernetes Volume Group Snapshots come in. This feature allows you to take point-in-time consistent snapshots of a group of PVs.
To support this, Kubernetes introduces three new Custom Resources (CRs):
VolumeGroupSnapshot VolumeGroupSnapshotContent VolumeGroupSnapshotClass
At the time of writing, Kubernetes 1.33 will support v1beta1 volume group snapshot CRDs. Trident will automatically detect if these CRDs are present to enable the relevant feature gates in our CSI sidecars. You will also need to enable the group snapshot feature gate in the "external-snapshotter" in Kubernetes.
ONTAP Consistency Groups
Trident leverages ONTAP's Consistency Group (CG) feature to achieve point-in-time consistency for multiple PVs. Trident creates an ONTAP CG to take a group snapshot of a set of volumes. Once the group snapshot is complete, Trident removes the ONTAP CG. This innovation treats CGs in an ephemeral manner.
Creating a Volume Group Snapshot
Label the PVC(s)
First, administrators will need to group volumes. This can be accomplished by applying a Kubernetes label consisting of their own custom key-value pair. A single Persistent Volume (PV) may be part of multiple groups, and those groups may be entirely disjoint or partially overlapping. For this example, we'll only map the PVC to a single group through the label: "group: myGroup". Labels may also be applied to existing PVCs that are already bound to a PV.
Example
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc1
labels:
group: myGroup
spec:
resources:
requests:
storage: 500Mi
storageClassName: sc1
Create the Volume Group Snapshot Custom Resources
Volume Group Snapshot Class
Then, define a VolumeGroupSnapshotClass CR that specifies all fields necessary. Similar to the Kubernetes VolumeSnapshotClass, a VolumeGroupSnapshotClass CR may be reused for multiple volume group snapshot instances. This connects the group snapshot to the right CSI driver (like Trident). The "driver" field must reference Trident, or the group snapshot will not be created. Depending on your use cases, it may be wise to specify the proper deletion policy.
You do not have to create a unique VolumeGroupSnapshotClass CR for every group snapshot.
Example
apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshotClass
metadata:
name: vgsclass1
driver: csi.trident.netapp.io
deletionPolicy: Delete
Volume Group Snapshot
Next, create a VolumeGroupSnapshot CR.
Be sure to specify the aforementioned VolumeGroupSnapshotClass CR and appropriate label.
Example
apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshot
metadata:
name: vgs1
namespace: trident
spec:
volumeGroupSnapshotClassName: vgsclass1
source:
selector:
matchLabels:
group: myGroup
Trident provisions a group snapshot
At this point, Trident receives a CSI request to create a group snapshot of the selected volumes.
This process creates several resources:
- A Kubernetes
VolumeGroupSnapshot and VolumeGroupSnapshotContent custom resource (CR) - A
VolumeSnapshot and VolumeSnapshotContent CR for each volume in the group - A
TridentGroupSnapshot CR - A
TridentSnapshot CR for each individual snapshot in the group
Examples
In this concrete example, I've created a group snapshot for a group of two volumes.
Let's walk through each resource, its purpose, and provide an example.
Kubernetes Custom Resources
Let's take a closer look at the following resources:
- A Kubernetes
VolumeGroupSnapshot CR - A Kubernetes
VolumeGroupSnapshotContent CR - Two Kubernetes
VolumeSnapshot CRs - Two Kubernetes
VolumeSnapshotContent CRs
Volume Group Snapshot
This resource represents the request to create a group snapshot.
Example
$ kubectl get volumegroupsnapshot -n trident -o yaml
apiVersion: v1
items:
- apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshot
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"groupsnapshot.storage.k8s.io/v1beta1","kind":"VolumeGroupSnapshot","metadata":{"annotations":{},"name":"vgs1","namespace":"trident"},"spec":{"source":{"selector":{"matchLabels":{"group":"myGroup"}}},"volumeGroupSnapshotClassName":"csi-group-snap-class"}}
creationTimestamp: "2025-06-26T18:32:42Z"
finalizers:
- groupsnapshot.storage.kubernetes.io/volumegroupsnapshot-bound-protection
generation: 1
name: vgs1
namespace: trident
resourceVersion: "200373"
uid: 411d2111-89ea-4129-a454-015d1fd8ae85
spec:
source:
selector:
matchLabels:
group: myGroup
volumeGroupSnapshotClassName: csi-group-snap-class
status:
boundVolumeGroupSnapshotContentName: groupsnapcontent-411d2111-89ea-4129-a454-015d1fd8ae85
creationTime: "2025-06-26T18:01:21Z"
readyToUse: true
Volume Group Snapshot Content
This resource represents the fulfillment of the VolumeGroupSnapshot request.
Example
$ kubectl get volumegroupsnapshotcontent -n trident -o yaml
apiVersion: v1
items:
- apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshotContent
metadata:
creationTimestamp: "2025-06-26T18:32:42Z"
finalizers:
- groupsnapshot.storage.kubernetes.io/volumegroupsnapshotcontent-bound-protection
generation: 1
name: groupsnapcontent-411d2111-89ea-4129-a454-015d1fd8ae85
resourceVersion: "200347"
uid: df01c3d7-8e91-4b0f-b992-eddc0a99e6ab
spec:
deletionPolicy: Delete
driver: csi.trident.netapp.io
source:
volumeHandles:
- pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
- pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
volumeGroupSnapshotClassName: csi-group-snap-class
volumeGroupSnapshotRef:
apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshot
name: vgs1
namespace: trident
resourceVersion: "200331"
uid: 411d2111-89ea-4129-a454-015d1fd8ae85
status:
creationTime: "2025-06-26T18:01:21Z"
readyToUse: true
volumeGroupSnapshotHandle: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeSnapshotHandlePairList:
- snapshotHandle: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeHandle: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
- snapshotHandle: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeHandle: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
Volume Snapshots
These resources represent the request for a volume snapshot. For group snapshots, these will have a new "ownerReferences" entry that points to their parent VolumeGroupSnapshot as the owner.
Read more about owner references.
Example
$ kubectl get volumesnapshot -n trident -o yaml
apiVersion: v1
items:
- apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- snapshot.storage.kubernetes.io/volumesnapshot-in-group-protection
- snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
generation: 1
name: snapshot-08f47b907f2f006f5d890a80afe11fbb977f63554498833f217435d95e435045
namespace: trident
ownerReferences:
- apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshot
name: vgs1
uid: 411d2111-89ea-4129-a454-015d1fd8ae85
resourceVersion: "200378"
uid: 2345f17a-5e8a-4ff6-a77d-47c2cc7b34d9
spec:
source:
persistentVolumeClaimName: pvc2-2
status:
boundVolumeSnapshotContentName: snapcontent-08f47b907f2f006f5d890a80afe11fbb977f63554498833f217435d95e435045
creationTime: "2025-06-26T18:01:21Z"
readyToUse: true
restoreSize: 100Mi
volumeGroupSnapshotName: vgs1
- apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- snapshot.storage.kubernetes.io/volumesnapshot-in-group-protection
- snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
generation: 1
name: snapshot-258720deb7c66ef2f4198286be15515d5908186da7d1888c08af3800e3bfed1e
namespace: trident
ownerReferences:
- apiVersion: groupsnapshot.storage.k8s.io/v1beta1
kind: VolumeGroupSnapshot
name: vgs1
uid: 411d2111-89ea-4129-a454-015d1fd8ae85
resourceVersion: "200370"
uid: 0637880a-6134-428d-a8fc-67214c726e99
spec:
source:
persistentVolumeClaimName: pvc2
status:
boundVolumeSnapshotContentName: snapcontent-258720deb7c66ef2f4198286be15515d5908186da7d1888c08af3800e3bfed1e
creationTime: "2025-06-26T18:01:21Z"
readyToUse: true
restoreSize: 100Mi
volumeGroupSnapshotName: vgs1
kind: List
metadata:
resourceVersion: ""
Volume Snapshot Contents
These resources represent the result of creating the requested VolumeSnapshot.
Example
$ kubectl get volumesnapshotcontent -n trident -o yaml
apiVersion: v1
items:
- apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
metadata:
annotations:
groupsnapshot.storage.k8s.io/volumeGroupSnapshotHandle: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- snapshot.storage.kubernetes.io/volumesnapshotcontent-bound-protection
generation: 2
name: snapcontent-08f47b907f2f006f5d890a80afe11fbb977f63554498833f217435d95e435045
resourceVersion: "200376"
uid: 8e161f10-40f9-478a-a2f1-04a2d70fa8a4
spec:
deletionPolicy: Delete
driver: csi.trident.netapp.io
source:
volumeHandle: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
sourceVolumeMode: Filesystem
volumeSnapshotRef:
kind: VolumeSnapshot
name: snapshot-08f47b907f2f006f5d890a80afe11fbb977f63554498833f217435d95e435045
namespace: trident
uid: 2345f17a-5e8a-4ff6-a77d-47c2cc7b34d9
status:
creationTime: 1750960881000000000
readyToUse: true
restoreSize: 104857600
snapshotHandle: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeGroupSnapshotHandle: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
- apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
metadata:
annotations:
groupsnapshot.storage.k8s.io/volumeGroupSnapshotHandle: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- snapshot.storage.kubernetes.io/volumesnapshotcontent-bound-protection
generation: 2
name: snapcontent-258720deb7c66ef2f4198286be15515d5908186da7d1888c08af3800e3bfed1e
resourceVersion: "200362"
uid: 5631b489-1bdf-4d47-a38d-153a08b944cf
spec:
deletionPolicy: Delete
driver: csi.trident.netapp.io
source:
volumeHandle: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
sourceVolumeMode: Filesystem
volumeSnapshotRef:
kind: VolumeSnapshot
name: snapshot-258720deb7c66ef2f4198286be15515d5908186da7d1888c08af3800e3bfed1e
namespace: trident
uid: 0637880a-6134-428d-a8fc-67214c726e99
status:
creationTime: 1750960881000000000
readyToUse: true
restoreSize: 104857600
snapshotHandle: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeGroupSnapshotHandle: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
kind: List
metadata:
resourceVersion: ""
Trident Custom Resources
Trident adds its own custom resources when creating a volume group snapshot. These Trident CRs are not meant to be manipulated by users directly but may be viewed via kubectl or tridentctl.
As part of a group snapshot, Trident creates the following CRs:
- A
TridentGroupSnapshot CR - A
TridentSnapshot CR
Trident Group Snapshot
This stores useful metadata about the group snapshot for Trident. Creating a group snapshot in Kubernetes should result in a 1-1 relationship between the TridentGroupSnapshot and Kubernetes VolumeGroupSnapshotContent.
Example
$ kubectl get tridentgroupsnapshot -n trident -o yaml
apiVersion: v1
items:
- apiVersion: trident.netapp.io/v1
dateCreated: "2025-06-26T18:01:21.000Z"
kind: TridentGroupSnapshot
metadata:
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- trident.netapp.io
generation: 1
name: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
namespace: trident
resourceVersion: "200340"
uid: e905c9b1-73c4-48b2-92e6-ecedaaadbd39
snapshotIDs:
- pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
- pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
spec:
internalName: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
name: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
version: "1"
volumeNames:
- pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
- pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
kind: List
metadata:
resourceVersion: ""
Trident Snapshot
This stores useful metadata about the individual snapshot for Trident. Creating a group snapshot in Kubernetes should result in a 1-1 relationship between Trident Snapshots and Kubernetes Volume Snapshot Contents.
Example
$ kubectl get tridentsnapshot -n trident -o yaml
apiVersion: v1
items:
- apiVersion: trident.netapp.io/v1
dateCreated: "2025-06-26T18:01:21.000Z"
kind: TridentSnapshot
metadata:
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- trident.netapp.io
generation: 1
name: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500-snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
namespace: trident
resourceVersion: "200342"
uid: 6e4e197e-2f13-4705-98f8-64df0a0fc475
size: 104857600
spec:
groupSnapshotName: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
importNotManaged: false
internalName: snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
name: snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeInternalName: websterj_pvc_373e0043_ca12_42ab_bcd9_4360f0ddc500
volumeName: pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
state: online
- apiVersion: trident.netapp.io/v1
dateCreated: "2025-06-26T18:01:21.000Z"
kind: TridentSnapshot
metadata:
creationTimestamp: "2025-06-26T18:32:47Z"
finalizers:
- trident.netapp.io
generation: 1
name: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa-snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
namespace: trident
resourceVersion: "200341"
uid: 881bbe33-1553-485a-a0c7-f79142918bdd
size: 104857600
spec:
groupSnapshotName: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
importNotManaged: false
internalName: snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
name: snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
volumeInternalName: websterj_pvc_cf598c63_5fc6_42af_83b0_f490180d23aa
volumeName: pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
state: online
kind: List
metadata:
resourceVersion: ""
Interacting with group snapshots via tridentctl
Trident's CLI, tridentctl, may be used to view group snapshots via the new "groupsnapshot" subcommand.
Example
$ tridentctl get groupsnapshot -h -n trident
Get one or more group snapshots from Trident
Usage:
tridentctl get groupsnapshot [<group snapshot name>...] [flags]
Aliases:
groupsnapshot, gs, gsnap, groupsnapshots
Flags:
-h, --help help for groupsnapshot
--max-snapshots int Set the maximum number of snapshots (inclusive) to display when displaying grouped snapshots.
Setting this to 0 will show all snapshots in the group. (default 3)
Global Flags:
-d, --debug Set the log level to debug
-k, --kubeconfig string Kubernetes config path
--log-level string Log level (trace, debug, warn, info, error, fatal (default "info")
-n, --namespace string Namespace of Trident deployment
-o, --output string Output format. One of json|yaml|name|wide|ps (default)
-s, --server string Address/port of Trident REST interface (127.0.0.1 or [::1] only)
You may also specify an output format: "-o json|yaml|wide":
$ tridentctl get groupsnapshot -n trident
+----------------------------------------------------+
| NAME |
+----------------------------------------------------+
| groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 |
+----------------------------------------------------+
$ tridentctl get groupsnapshot -n trident -o wide
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| NAME | CREATED | SNAPSHOTS | SNAPSHOT COUNT |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2025-06-26T18:01:21.000Z | pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2 |
| | | pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
$ tridentctl get groupsnapshot -n trident -o json
{
"items": [
{
"version": "1",
"name": "groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85",
"internalName": "groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85",
"volumeNames": [
"pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500",
"pvc-cf598c63-5fc6-42af-83b0-f490180d23aa"
],
"snapshotIDs": [
"pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85",
"pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85"
],
"dateCreated": "2025-06-26T18:01:21.000Z"
}
]
}
$ tridentctl get groupsnapshot -n trident -o yaml
items:
- dateCreated: "2025-06-26T18:01:21.000Z"
internalName: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
name: groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85
snapshotIDs:
- pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
- pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85
version: "1"
volumeNames:
- pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500
- pvc-cf598c63-5fc6-42af-83b0-f490180d23aa
The wide format option will display 3 additional columns:
- CREATED
- SNAPSHOTS
- The snapshot handle of each constituent snapshot.
- SNAPSHOT COUNT
- The snapshot count (# of constituent snapshots).
Because there may be a large number of snapshots in a single group snapshot, the number of snapshot handles is truncated to 3 but will display more should you supply the --max-snapshots flag. Specifying "0" will display all snapshots in the group.
$ tridentctl get groupsnapshot -o wide -n trident --max-snapshots=0
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| NAME | CREATED | SNAPSHOTS | SNAPSHOT COUNT |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2025-06-26T18:01:21.000Z | pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2 |
| | | pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
# If you specify a number less than the total count, but greater than 0, the list of constituent snapshot handles is truncated.
$ tridentctl get groupsnapshot -o wide -n trident --max-snapshots=1
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| NAME | CREATED | SNAPSHOTS | SNAPSHOT COUNT |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
| groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2025-06-26T18:01:21.000Z | pvc-cf598c63-5fc6-42af-83b0-f490180d23aa/snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | 2 |
| | | ... (+1 more) | |
+----------------------------------------------------+--------------------------+----------------------------------------------------------------------------------------+----------------+
Additionally, Trident Snapshots taken as a group will have an extra field ("GroupSnapshot") identifying its Trident Group Snapshot parent:
$ tridentctl get snapshot -o wide -n trident
+-----------------------------------------------+------------------------------------------+--------------------------+---------+-------+---------+----------------------------------------------------+
| NAME | VOLUME | CREATED | SIZE | STATE | MANAGED | GROUPSNAPSHOT |
+-----------------------------------------------+------------------------------------------+--------------------------+---------+-------+---------+----------------------------------------------------+
| snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | pvc-373e0043-ca12-42ab-bcd9-4360f0ddc500 | 2025-06-26T18:01:21.000Z | 100 MiB | | true | groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 |
| snapshot-411d2111-89ea-4129-a454-015d1fd8ae85 | pvc-cf598c63-5fc6-42af-83b0-f490180d23aa | 2025-06-26T18:01:21.000Z | 100 MiB | | true | groupsnapshot-411d2111-89ea-4129-a454-015d1fd8ae85 |
+-----------------------------------------------+------------------------------------------+--------------------------+---------+-------+---------+----------------------------------------------------+
Notes & Considerations
- Constituent snapshots cannot be individually deleted via
tridentctl while their parent TridentGroupSnapshotCR exists. - Deleting a
TridentGroupSnapshot with tridentctl is not recommended, as it may cause inconsistencies between Kubernetes and Trident. - Always create and delete group snapshots by managing the Kubernetes
VolumeGroupSnapshot resource. - Deleting a
VolumeGroupSnapshot also deletes all constituent snapshots, the TridentGroupSnapshot, and related TridentSnapshot resources. - Constituent snapshots in a group may be consumed in the same ways standard Kubernetes volume snapshots are.
- Constituent snapshots may also be imported to a different Kubernetes cluster independently of their group.
The Road Ahead
In future releases, the Trident team plans to broaden support for volume group snapshots to the ONTAP-SAN-Economy, ONTAP-NAS, and ONTAP-SAN (NVMe) drivers. Try out our new volume group snapshot feature with ONTAP-SAN volumes and let us know what you think.
Thanks for reading!
References