Git Repository: https://github.com/kubernetes-csi/external-snapshotter
Status: GA v4.0.0+
Supported Versions Unsupported Versions List of previous versionsTo use the snapshot beta and GA feature, a snapshot controller is also required. For more information, see this snapshot-controller page.
Snapshot Beta/GA DescriptionThe CSI external-snapshotter
sidecar watches the Kubernetes API server for VolumeSnapshotContent
CRD objects. The CSI external-snapshotter
sidecar is also responsible for calling the CSI RPCs CreateSnapshot
, DeleteSnapshot
, and ListSnapshots
.
Volume Group Snapshot support can be enabled with the --enable-volume-group-snapshots
option. When enabled, the CSI external-snapshotter
sidecar watches the API server for VolumeGroupSnapshotContent
CRD object, and will be responsible for calling the CSI RPCs CreateVolumeGroupSnapshot
, DeleteVolumeGroupSnapshot
and GetVolumeGroupSnapshot
.
When provisioning a new volume snapshot, the CSI external-snapshotter
sets the map<string, string> parameters
field in the CSI CreateSnapshotRequest
call to the key/values specified in the VolumeSnapshotClass
it is handling.
When volume group snapshot support is enabled, the map<string, string> parameters
field is set in the CSI CreateVolumeGroupSnapshotRequest
call to the key/values specified in the VolumeGroupSnapshotClass
it is handling.
The CSI external-snapshotter
also reserves the parameter keys prefixed with csi.storage.k8s.io/
. Any VolumeSnapshotClass
or VolumeGroupSnapshotClass
keys prefixed with csi.storage.k8s.io/
are not passed to the CSI driver as an opaque parameter
.
The following reserved VolumeSnapshotClass
parameter keys trigger behavior in the CSI external-snapshotter
:
csi.storage.k8s.io/snapshotter-secret-name
(v1.0.1+)csi.storage.k8s.io/snapshotter-secret-namespace
(v1.0.1+)csi.storage.k8s.io/snapshotter-list-secret-name
(v2.1.0+)csi.storage.k8s.io/snapshotter-list-secret-namespace
(v2.1.0+)For more information on how secrets are handled see Secrets & Credentials.
VolumeSnapshot, VolumeSnapshotContent, VolumeGroupSnapshot and VolumeGroupSnapshotContent ParametersThe CSI external-snapshotter
(v4.0.0+) introduces the --extra-create-metadata
flag, which automatically sets the following map<string, string> parameters
in the CSI CreateSnapshotRequest
and CreateVolumeGroupSnapshotRequest
:
csi.storage.k8s.io/volumesnapshot/name
csi.storage.k8s.io/volumesnapshot/namespace
csi.storage.k8s.io/volumesnapshotcontent/name
These parameters are internally generated using the name and namespace of the source VolumeSnapshot
and VolumeSnapshotContent
.
For detailed snapshot beta design changes, see the design doc here.
For detailed information about volume snapshot and restore functionality, see Volume Snapshot & Restore.
UsageCSI drivers that support provisioning volume snapshots and the ability to provision new volumes using those snapshots should use this sidecar container, and advertise the CSI CREATE_DELETE_SNAPSHOT
controller capability.
CSI drivers that support provisioning volume group snapshots should use this side container too, and advertise the CSI CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT
controller capability.
For detailed information (binary parameters, RBAC rules, etc.), see https://github.com/kubernetes-csi/external-snapshotter/blob/release-6.2/README.md.
DeploymentThe CSI external-snapshotter
is deployed as a sidecar controller. See deployment section for more details.
For an example deployment, see this example which deploys external-snapshotter
and external-provisioner
with the Hostpath CSI driver.
The CSI external-snapshotter
is a sidecar container that watches the Kubernetes API server for VolumeSnapshot
and VolumeSnapshotContent
CRD objects.
The creation of a new VolumeSnapshot
object referencing a SnapshotClass
CRD object corresponding to this driver causes the sidecar container to trigger a CreateSnapshot
operation against the specified CSI endpoint to provision a new snapshot. When a new snapshot is successfully provisioned, the sidecar container creates a Kubernetes VolumeSnapshotContent
object to represent the new snapshot.
The deletion of a VolumeSnapshot
object bound to a VolumeSnapshotContent
corresponding to this driver with a delete
deletion policy causes the sidecar container to trigger a DeleteSnapshot
operation against the specified CSI endpoint to delete the snapshot. Once the snapshot is successfully deleted, the sidecar container also deletes the VolumeSnapshotContent
object representing the snapshot.
CSI drivers that support provisioning volume snapshots and the ability to provision new volumes using those snapshots should use this sidecar container, and advertise the CSI CREATE_DELETE_SNAPSHOT
controller capability.
For detailed information (binary parameters, RBAC rules, etc.), see https://github.com/kubernetes-csi/external-snapshotter/blob/release-1.2/README.md.
DeploymentThe CSI external-snapshotter
is deployed as a controller. See deployment section for more details.
For an example deployment, see this example which deploys external-snapshotter
and external-provisioner
with the Hostpath CSI driver.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4