NAME
IO::K8s::VolumeSnapshot - VolumeSnapshot CRD resource map provider for IO::K8s
VERSION
version 1.108
SYNOPSIS
my $k8s = IO::K8s->new(with => ['IO::K8s::VolumeSnapshot']);
my $vs = $k8s->new_object('VolumeSnapshot',
metadata => { name => 'my-snapshot', namespace => 'default' },
spec => { source => { persistentVolumeClaimName => 'my-pvc' } },
);
my $group = $k8s->new_object('VolumeGroupSnapshot',
metadata => { name => 'database-group', namespace => 'default' },
spec => {
volumeGroupSnapshotClassName => 'csi-group-snapshot-class',
source => { selector => { matchLabels => { app => 'database' } } },
},
);
print $group->to_yaml;
DESCRIPTION
Resource-map provider for the VolumeSnapshot and VolumeGroupSnapshot Custom Resource Definitions from the external-snapshotter project, pinned to external-snapshotter v8.6.0. Its crd_sources lists the six raw CRD manifests for that release.
The provider has 12 raw resource-map entries. The three snapshot Kinds, VolumeSnapshot, VolumeSnapshotClass, and VolumeSnapshotContent, are modeled at snapshot.storage.k8s.io/v1. VolumeSnapshot is namespace-scoped; VolumeSnapshotClass and VolumeSnapshotContent are cluster-scoped. The deprecated, non-served snapshot.storage.k8s.io/v1beta1 track that upstream ships alongside v1 is not modeled. Both snapshot-class Kinds keep their upstream shape: driver, deletionPolicy, and parameters are direct fields rather than a spec/status wrapper.
The provider additionally models the three group-snapshot Kinds, VolumeGroupSnapshot, VolumeGroupSnapshotClass, and VolumeGroupSnapshotContent, in all three served groupsnapshot.storage.k8s.io tracks: v1, v1beta1, and v1beta2. The bare group-snapshot names select their v1beta2 classes because v1beta2 is the sole storage version. Use an explicit GVK such as groupsnapshot.storage.k8s.io/v1/VolumeGroupSnapshot or groupsnapshot.storage.k8s.io/v1beta1/VolumeGroupSnapshot to select either of the other served tracks.
The provider models 33 group-snapshot types and 10 snapshot types. VolumeGroupSnapshot is namespace-scoped; VolumeGroupSnapshotClass and VolumeGroupSnapshotContent are cluster-scoped. The group-snapshot source reuses the stock IO::K8s::Apimachinery::Pkg::Apis::Meta::V1::LabelSelector, and the content reference reuses IO::K8s::Api::Core::V1::ObjectReference.
v1 and v1beta2 use their VolumeSnapshotInfo type for volumeSnapshotInfoList; v1beta1 uses VolumeSnapshotHandlePair for volumeSnapshotHandlePairList. All tracks reuse IO::K8s::VolumeSnapshot::V1::VolumeSnapshotError. The IO::K8s::CRD::Emitter-rendered maint/crd-render overlay does not yet support this shared error leaf as a cross-version alias.
Not loaded by default. Opt in through the with constructor parameter of IO::K8s or by calling $k8s->add('IO::K8s::VolumeSnapshot') at runtime.
upstream_version
Returns the external-snapshotter release whose CRDs this provider models.
crd_sources
Returns the six raw CRD manifest locations pinned to upstream_version.
resource_map
Returns the twelve short-name and fully qualified group-version-kind routes provided by this provider.
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/pplu/io-k8s-p5/issues.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHORS
Torsten Raudssus <getty@cpan.org>
Jose Luis Martinez Torres <jlmartin@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018-2026 by Jose Luis Martinez Torres <jlmartin@cpan.org>.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004