Update snapshot.storage.k8s.io_volumesnapshotcontents.yaml

Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
This commit is contained in:
Kjeld Schouten
2024-10-08 14:14:26 +02:00
committed by GitHub
parent 07118ea714
commit c41cc5922d
@@ -3,9 +3,8 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.15.0
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/955" api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/955"
controller-gen.kubebuilder.io/version: v0.12.0
creationTimestamp: null
name: volumesnapshotcontents.snapshot.storage.k8s.io name: volumesnapshotcontents.snapshot.storage.k8s.io
spec: spec:
group: snapshot.storage.k8s.io group: snapshot.storage.k8s.io
@@ -48,7 +47,8 @@ spec:
jsonPath: .spec.volumeSnapshotRef.name jsonPath: .spec.volumeSnapshotRef.name
name: VolumeSnapshot name: VolumeSnapshot
type: string type: string
- description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent
object is bound.
jsonPath: .spec.volumeSnapshotRef.namespace jsonPath: .spec.volumeSnapshotRef.namespace
name: VolumeSnapshotNamespace name: VolumeSnapshotNamespace
type: string type: string
@@ -58,154 +58,206 @@ spec:
name: v1 name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: VolumeSnapshotContent represents the actual "on-disk" snapshot description: |-
object in the underlying storage system VolumeSnapshotContent represents the actual "on-disk" snapshot object in the
underlying storage system
properties: properties:
apiVersion: apiVersion:
description: 'APIVersion defines the versioned schema of this representation description: |-
of an object. Servers should convert recognized schemas to the latest APIVersion defines the versioned schema of this representation of an object.
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string type: string
kind: kind:
description: 'Kind is a string value representing the REST resource this description: |-
object represents. Servers may infer this from the endpoint the client Kind is a string value representing the REST resource this object represents.
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
metadata: metadata:
type: object type: object
spec: spec:
description: spec defines properties of a VolumeSnapshotContent created description: |-
by the underlying storage system. Required. spec defines properties of a VolumeSnapshotContent created by the underlying storage system.
Required.
properties: properties:
deletionPolicy: deletionPolicy:
description: deletionPolicy determines whether this VolumeSnapshotContent description: |-
and its physical snapshot on the underlying storage system should deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on
be deleted when its bound VolumeSnapshot is deleted. Supported values the underlying storage system should be deleted when its bound VolumeSnapshot is deleted.
are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent Supported values are "Retain" and "Delete".
and its physical snapshot on underlying storage system are kept. "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept.
"Delete" means that the VolumeSnapshotContent and its physical snapshot "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted.
on underlying storage system are deleted. For dynamically provisioned For dynamically provisioned snapshots, this field will automatically be filled in by the
snapshots, this field will automatically be filled in by the CSI CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding
snapshotter sidecar with the "DeletionPolicy" field defined in the VolumeSnapshotClass.
corresponding VolumeSnapshotClass. For pre-existing snapshots, users For pre-existing snapshots, users MUST specify this field when creating the
MUST specify this field when creating the VolumeSnapshotContent VolumeSnapshotContent object.
object. Required. Required.
enum: enum:
- Delete - Delete
- Retain - Retain
type: string type: string
driver: driver:
description: driver is the name of the CSI driver used to create the description: |-
physical snapshot on the underlying storage system. This MUST be driver is the name of the CSI driver used to create the physical snapshot on
the same as the name returned by the CSI GetPluginName() call for the underlying storage system.
that driver. Required. This MUST be the same as the name returned by the CSI GetPluginName() call for
that driver.
Required.
type: string type: string
source: source:
description: source specifies whether the snapshot is (or should be) description: |-
dynamically provisioned or already exists, and just requires a Kubernetes source specifies whether the snapshot is (or should be) dynamically provisioned
object representation. This field is immutable after creation. Required. or already exists, and just requires a Kubernetes object representation.
This field is immutable after creation.
Required.
properties: properties:
snapshotHandle: snapshotHandle:
description: snapshotHandle specifies the CSI "snapshot_id" of description: |-
a pre-existing snapshot on the underlying storage system for snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on
which a Kubernetes object representation was (or should be) the underlying storage system for which a Kubernetes object representation
created. This field is immutable. was (or should be) created.
type: string
volumeHandle:
description: volumeHandle specifies the CSI "volume_id" of the
volume from which a snapshot should be dynamically taken from.
This field is immutable. This field is immutable.
type: string type: string
x-kubernetes-validations:
- message: snapshotHandle is immutable
rule: self == oldSelf
volumeHandle:
description: |-
volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot
should be dynamically taken from.
This field is immutable.
type: string
x-kubernetes-validations:
- message: volumeHandle is immutable
rule: self == oldSelf
type: object type: object
oneOf: x-kubernetes-validations:
- required: ["snapshotHandle"] - message: volumeHandle is required once set
- required: ["volumeHandle"] rule: '!has(oldSelf.volumeHandle) || has(self.volumeHandle)'
- message: snapshotHandle is required once set
rule: '!has(oldSelf.snapshotHandle) || has(self.snapshotHandle)'
- message: exactly one of volumeHandle and snapshotHandle must be
set
rule: (has(self.volumeHandle) && !has(self.snapshotHandle)) || (!has(self.volumeHandle)
&& has(self.snapshotHandle))
sourceVolumeMode: sourceVolumeMode:
description: SourceVolumeMode is the mode of the volume whose snapshot description: |-
is taken. Can be either “Filesystem” or “Block”. If not specified, SourceVolumeMode is the mode of the volume whose snapshot is taken.
it indicates the source volume's mode is unknown. This field is Can be either “Filesystem” or “Block”.
immutable. This field is an alpha field. If not specified, it indicates the source volume's mode is unknown.
This field is immutable.
This field is an alpha field.
type: string type: string
x-kubernetes-validations:
- message: sourceVolumeMode is immutable
rule: self == oldSelf
volumeSnapshotClassName: volumeSnapshotClassName:
description: name of the VolumeSnapshotClass from which this snapshot description: |-
was (or will be) created. Note that after provisioning, the VolumeSnapshotClass name of the VolumeSnapshotClass from which this snapshot was (or will be)
may be deleted or recreated with different set of values, and as created.
such, should not be referenced post-snapshot creation. Note that after provisioning, the VolumeSnapshotClass may be deleted or
recreated with different set of values, and as such, should not be referenced
post-snapshot creation.
type: string type: string
volumeSnapshotRef: volumeSnapshotRef:
description: volumeSnapshotRef specifies the VolumeSnapshot object description: |-
to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName volumeSnapshotRef specifies the VolumeSnapshot object to which this
field must reference to this VolumeSnapshotContent's name for the VolumeSnapshotContent object is bound.
bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to
object, name and namespace of the VolumeSnapshot object MUST be this VolumeSnapshotContent's name for the bidirectional binding to be valid.
provided for binding to happen. This field is immutable after creation. For a pre-existing VolumeSnapshotContent object, name and namespace of the
VolumeSnapshot object MUST be provided for binding to happen.
This field is immutable after creation.
Required. Required.
properties: properties:
apiVersion: apiVersion:
description: API version of the referent. description: API version of the referent.
type: string type: string
fieldPath: fieldPath:
description: 'If referring to a piece of an object instead of description: |-
an entire object, this string should contain a valid JSON/Go If referring to a piece of an object instead of an entire object, this string
field access statement, such as desiredState.manifest.containers[2]. should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within For example, if the object reference is to a container within a pod, this would take on a value like:
a pod, this would take on a value like: "spec.containers{name}" "spec.containers{name}" (where "name" refers to the name of the container that triggered
(where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with
the event) or if no container name is specified "spec.containers[2]" index 2 in this pod). This syntax is chosen only to have some well-defined way of
(container with index 2 in this pod). This syntax is chosen referencing a part of an object.
only to have some well-defined way of referencing a part of TODO: this design is not final and this field is subject to change in the future.
an object. TODO: this design is not final and this field is
subject to change in the future.'
type: string type: string
kind: kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string type: string
name: name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string type: string
namespace: namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string type: string
resourceVersion: resourceVersion:
description: 'Specific resourceVersion to which this reference description: |-
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string type: string
uid: uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
x-kubernetes-validations:
- message: both spec.volumeSnapshotRef.name and spec.volumeSnapshotRef.namespace
must be set
rule: has(self.name) && has(self.__namespace__)
required: required:
- deletionPolicy - deletionPolicy
- driver - driver
- source - source
- volumeSnapshotRef - volumeSnapshotRef
type: object type: object
x-kubernetes-validations:
- message: sourceVolumeMode is required once set
rule: '!has(oldSelf.sourceVolumeMode) || has(self.sourceVolumeMode)'
status: status:
description: status represents the current information of a snapshot. description: status represents the current information of a snapshot.
properties: properties:
creationTime: creationTime:
description: creationTime is the timestamp when the point-in-time description: |-
snapshot is taken by the underlying storage system. In dynamic snapshot creationTime is the timestamp when the point-in-time snapshot is taken
creation case, this field will be filled in by the CSI snapshotter by the underlying storage system.
sidecar with the "creation_time" value returned from CSI "CreateSnapshot" In dynamic snapshot creation case, this field will be filled in by the
gRPC call. For a pre-existing snapshot, this field will be filled CSI snapshotter sidecar with the "creation_time" value returned from CSI
with the "creation_time" value returned from the CSI "ListSnapshots" "CreateSnapshot" gRPC call.
gRPC call if the driver supports it. If not specified, it indicates For a pre-existing snapshot, this field will be filled with the "creation_time"
the creation time is unknown. The format of this field is a Unix value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
nanoseconds time encoded as an int64. On Unix, the command `date If not specified, it indicates the creation time is unknown.
+%s%N` returns the current time in nanoseconds since 1970-01-01 The format of this field is a Unix nanoseconds time encoded as an int64.
00:00:00 UTC. On Unix, the command `date +%s%N` returns the current time in nanoseconds
since 1970-01-01 00:00:00 UTC.
format: int64 format: int64
type: integer type: integer
error: error:
description: error is the last observed error during snapshot creation, description: |-
if any. Upon success after retry, this error field will be cleared. error is the last observed error during snapshot creation, if any.
Upon success after retry, this error field will be cleared.
properties: properties:
message: message:
description: 'message is a string detailing the encountered error description: |-
during snapshot creation if specified. NOTE: message may be message is a string detailing the encountered error during snapshot
logged, and it should not contain sensitive information.' creation if specified.
NOTE: message may be logged, and it should not contain sensitive
information.
type: string type: string
time: time:
description: time is the timestamp when the error was encountered. description: time is the timestamp when the error was encountered.
@@ -213,38 +265,40 @@ spec:
type: string type: string
type: object type: object
readyToUse: readyToUse:
description: readyToUse indicates if a snapshot is ready to be used description: |-
to restore a volume. In dynamic snapshot creation case, this field readyToUse indicates if a snapshot is ready to be used to restore a volume.
will be filled in by the CSI snapshotter sidecar with the "ready_to_use" In dynamic snapshot creation case, this field will be filled in by the
value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing CSI snapshotter sidecar with the "ready_to_use" value returned from CSI
snapshot, this field will be filled with the "ready_to_use" value "CreateSnapshot" gRPC call.
returned from the CSI "ListSnapshots" gRPC call if the driver supports For a pre-existing snapshot, this field will be filled with the "ready_to_use"
it, otherwise, this field will be set to "True". If not specified, value returned from the CSI "ListSnapshots" gRPC call if the driver supports it,
it means the readiness of a snapshot is unknown. otherwise, this field will be set to "True".
If not specified, it means the readiness of a snapshot is unknown.
type: boolean type: boolean
restoreSize: restoreSize:
description: restoreSize represents the complete size of the snapshot description: |-
in bytes. In dynamic snapshot creation case, this field will be restoreSize represents the complete size of the snapshot in bytes.
filled in by the CSI snapshotter sidecar with the "size_bytes" value In dynamic snapshot creation case, this field will be filled in by the
returned from CSI "CreateSnapshot" gRPC call. For a pre-existing CSI snapshotter sidecar with the "size_bytes" value returned from CSI
snapshot, this field will be filled with the "size_bytes" value "CreateSnapshot" gRPC call.
returned from the CSI "ListSnapshots" gRPC call if the driver supports For a pre-existing snapshot, this field will be filled with the "size_bytes"
it. When restoring a volume from this snapshot, the size of the value returned from the CSI "ListSnapshots" gRPC call if the driver supports it.
volume MUST NOT be smaller than the restoreSize if it is specified, When restoring a volume from this snapshot, the size of the volume MUST NOT
otherwise the restoration will fail. If not specified, it indicates be smaller than the restoreSize if it is specified, otherwise the restoration will fail.
that the size is unknown. If not specified, it indicates that the size is unknown.
format: int64 format: int64
minimum: 0 minimum: 0
type: integer type: integer
snapshotHandle: snapshotHandle:
description: snapshotHandle is the CSI "snapshot_id" of a snapshot description: |-
on the underlying storage system. If not specified, it indicates snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system.
that dynamic snapshot creation has either failed or it is still If not specified, it indicates that dynamic snapshot creation has either failed
in progress. or it is still in progress.
type: string type: string
volumeGroupSnapshotHandle: volumeGroupSnapshotHandle:
description: VolumeGroupSnapshotHandle is the CSI "group_snapshot_id" description: |-
of a group snapshot on the underlying storage system. VolumeGroupSnapshotHandle is the CSI "group_snapshot_id" of a group snapshot
on the underlying storage system.
type: string type: string
type: object type: object
required: required: