k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1 3 kind: CustomResourceDefinition 4 metadata: 5 labels: 6 addonmanager.kubernetes.io/mode: Reconcile 7 annotations: 8 controller-gen.kubebuilder.io/version: v0.8.0 9 api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/665" 10 creationTimestamp: null 11 name: volumesnapshots.snapshot.storage.k8s.io 12 spec: 13 group: snapshot.storage.k8s.io 14 names: 15 kind: VolumeSnapshot 16 listKind: VolumeSnapshotList 17 plural: volumesnapshots 18 shortNames: 19 - vs 20 singular: volumesnapshot 21 scope: Namespaced 22 versions: 23 - additionalPrinterColumns: 24 - description: Indicates if the snapshot is ready to be used to restore a volume. 25 jsonPath: .status.readyToUse 26 name: ReadyToUse 27 type: boolean 28 - description: If a new snapshot needs to be created, this contains the name of 29 the source PVC from which this snapshot was (or will be) created. 30 jsonPath: .spec.source.persistentVolumeClaimName 31 name: SourcePVC 32 type: string 33 - description: If a snapshot already exists, this contains the name of the existing 34 VolumeSnapshotContent object representing the existing snapshot. 35 jsonPath: .spec.source.volumeSnapshotContentName 36 name: SourceSnapshotContent 37 type: string 38 - description: Represents the minimum size of volume required to rehydrate from 39 this snapshot. 40 jsonPath: .status.restoreSize 41 name: RestoreSize 42 type: string 43 - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. 44 jsonPath: .spec.volumeSnapshotClassName 45 name: SnapshotClass 46 type: string 47 - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot 48 object intends to bind to. Please note that verification of binding actually 49 requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure 50 both are pointing at each other. Binding MUST be verified prior to usage of 51 this object. 52 jsonPath: .status.boundVolumeSnapshotContentName 53 name: SnapshotContent 54 type: string 55 - description: Timestamp when the point-in-time snapshot was taken by the underlying 56 storage system. 57 jsonPath: .status.creationTime 58 name: CreationTime 59 type: date 60 - jsonPath: .metadata.creationTimestamp 61 name: Age 62 type: date 63 name: v1 64 schema: 65 openAPIV3Schema: 66 description: VolumeSnapshot is a user's request for either creating a point-in-time 67 snapshot of a persistent volume, or binding to a pre-existing snapshot. 68 properties: 69 apiVersion: 70 description: 'APIVersion defines the versioned schema of this representation 71 of an object. Servers should convert recognized schemas to the latest 72 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 73 type: string 74 kind: 75 description: 'Kind is a string value representing the REST resource this 76 object represents. Servers may infer this from the endpoint the client 77 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 78 type: string 79 spec: 80 description: 'spec defines the desired characteristics of a snapshot requested 81 by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots 82 Required.' 83 properties: 84 source: 85 description: source specifies where a snapshot will be created from. 86 This field is immutable after creation. Required. 87 properties: 88 persistentVolumeClaimName: 89 description: persistentVolumeClaimName specifies the name of the 90 PersistentVolumeClaim object representing the volume from which 91 a snapshot should be created. This PVC is assumed to be in the 92 same namespace as the VolumeSnapshot object. This field should 93 be set if the snapshot does not exists, and needs to be created. 94 This field is immutable. 95 type: string 96 volumeSnapshotContentName: 97 description: volumeSnapshotContentName specifies the name of a 98 pre-existing VolumeSnapshotContent object representing an existing 99 volume snapshot. This field should be set if the snapshot already 100 exists and only needs a representation in Kubernetes. This field 101 is immutable. 102 type: string 103 type: object 104 oneOf: 105 - required: ["persistentVolumeClaimName"] 106 - required: ["volumeSnapshotContentName"] 107 volumeSnapshotClassName: 108 description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass 109 requested by the VolumeSnapshot. VolumeSnapshotClassName may be 110 left nil to indicate that the default SnapshotClass should be used. 111 A given cluster may have multiple default Volume SnapshotClasses: 112 one default per CSI Driver. If a VolumeSnapshot does not specify 113 a SnapshotClass, VolumeSnapshotSource will be checked to figure 114 out what the associated CSI Driver is, and the default VolumeSnapshotClass 115 associated with that CSI Driver will be used. If more than one VolumeSnapshotClass 116 exist for a given CSI Driver and more than one have been marked 117 as default, CreateSnapshot will fail and generate an event. Empty 118 string is not allowed for this field.' 119 type: string 120 required: 121 - source 122 type: object 123 status: 124 description: status represents the current information of a snapshot. 125 Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent 126 objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent 127 point at each other) before using this object. 128 properties: 129 boundVolumeSnapshotContentName: 130 description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent 131 object to which this VolumeSnapshot object intends to bind to. If 132 not specified, it indicates that the VolumeSnapshot object has not 133 been successfully bound to a VolumeSnapshotContent object yet. NOTE: 134 To avoid possible security issues, consumers must verify binding 135 between VolumeSnapshot and VolumeSnapshotContent objects is successful 136 (by validating that both VolumeSnapshot and VolumeSnapshotContent 137 point at each other) before using this object.' 138 type: string 139 creationTime: 140 description: creationTime is the timestamp when the point-in-time 141 snapshot is taken by the underlying storage system. In dynamic snapshot 142 creation case, this field will be filled in by the snapshot controller 143 with the "creation_time" value returned from CSI "CreateSnapshot" 144 gRPC call. For a pre-existing snapshot, this field will be filled 145 with the "creation_time" value returned from the CSI "ListSnapshots" 146 gRPC call if the driver supports it. If not specified, it may indicate 147 that the creation time of the snapshot is unknown. 148 format: date-time 149 type: string 150 error: 151 description: error is the last observed error during snapshot creation, 152 if any. This field could be helpful to upper level controllers(i.e., 153 application controller) to decide whether they should continue on 154 waiting for the snapshot to be created based on the type of error 155 reported. The snapshot controller will keep retrying when an error 156 occurs during the snapshot creation. Upon success, this error field 157 will be cleared. 158 properties: 159 message: 160 description: 'message is a string detailing the encountered error 161 during snapshot creation if specified. NOTE: message may be 162 logged, and it should not contain sensitive information.' 163 type: string 164 time: 165 description: time is the timestamp when the error was encountered. 166 format: date-time 167 type: string 168 type: object 169 readyToUse: 170 description: readyToUse indicates if the snapshot is ready to be used 171 to restore a volume. In dynamic snapshot creation case, this field 172 will be filled in by the snapshot controller with the "ready_to_use" 173 value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing 174 snapshot, this field will be filled with the "ready_to_use" value 175 returned from the CSI "ListSnapshots" gRPC call if the driver supports 176 it, otherwise, this field will be set to "True". If not specified, 177 it means the readiness of a snapshot is unknown. 178 type: boolean 179 restoreSize: 180 type: string 181 description: restoreSize represents the minimum size of volume required 182 to create a volume from this snapshot. In dynamic snapshot creation 183 case, this field will be filled in by the snapshot controller with 184 the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. 185 For a pre-existing snapshot, this field will be filled with the 186 "size_bytes" value returned from the CSI "ListSnapshots" gRPC call 187 if the driver supports it. When restoring a volume from this snapshot, 188 the size of the volume MUST NOT be smaller than the restoreSize 189 if it is specified, otherwise the restoration will fail. If not 190 specified, it indicates that the size is unknown. 191 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 192 x-kubernetes-int-or-string: true 193 type: object 194 required: 195 - spec 196 type: object 197 served: true 198 storage: true 199 subresources: 200 status: {} 201 - additionalPrinterColumns: 202 - description: Indicates if the snapshot is ready to be used to restore a volume. 203 jsonPath: .status.readyToUse 204 name: ReadyToUse 205 type: boolean 206 - description: If a new snapshot needs to be created, this contains the name of the source PVC from which this snapshot was (or will be) created. 207 jsonPath: .spec.source.persistentVolumeClaimName 208 name: SourcePVC 209 type: string 210 - description: If a snapshot already exists, this contains the name of the existing VolumeSnapshotContent object representing the existing snapshot. 211 jsonPath: .spec.source.volumeSnapshotContentName 212 name: SourceSnapshotContent 213 type: string 214 - description: Represents the minimum size of volume required to rehydrate from this snapshot. 215 jsonPath: .status.restoreSize 216 name: RestoreSize 217 type: string 218 - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. 219 jsonPath: .spec.volumeSnapshotClassName 220 name: SnapshotClass 221 type: string 222 - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot object intends to bind to. Please note that verification of binding actually requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure both are pointing at each other. Binding MUST be verified prior to usage of this object. 223 jsonPath: .status.boundVolumeSnapshotContentName 224 name: SnapshotContent 225 type: string 226 - description: Timestamp when the point-in-time snapshot was taken by the underlying storage system. 227 jsonPath: .status.creationTime 228 name: CreationTime 229 type: date 230 - jsonPath: .metadata.creationTimestamp 231 name: Age 232 type: date 233 name: v1beta1 234 # This indicates the v1beta1 version of the custom resource is deprecated. 235 # API requests to this version receive a warning in the server response. 236 deprecated: true 237 # This overrides the default warning returned to clients making v1beta1 API requests. 238 deprecationWarning: "snapshot.storage.k8s.io/v1beta1 VolumeSnapshot is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshot" 239 schema: 240 openAPIV3Schema: 241 description: VolumeSnapshot is a user's request for either creating a point-in-time snapshot of a persistent volume, or binding to a pre-existing snapshot. 242 properties: 243 apiVersion: 244 description: 'APIVersion defines the versioned schema of this representation of an object. 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' 245 type: string 246 kind: 247 description: 'Kind is a string value representing the REST resource this object represents. 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' 248 type: string 249 spec: 250 description: 'spec defines the desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots Required.' 251 properties: 252 source: 253 description: source specifies where a snapshot will be created from. This field is immutable after creation. Required. 254 properties: 255 persistentVolumeClaimName: 256 description: persistentVolumeClaimName specifies the name of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. This PVC is assumed to be in the same namespace as the VolumeSnapshot object. This field should be set if the snapshot does not exists, and needs to be created. This field is immutable. 257 type: string 258 volumeSnapshotContentName: 259 description: volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. This field should be set if the snapshot already exists and only needs a representation in Kubernetes. This field is immutable. 260 type: string 261 type: object 262 volumeSnapshotClassName: 263 description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass requested by the VolumeSnapshot. VolumeSnapshotClassName may be left nil to indicate that the default SnapshotClass should be used. A given cluster may have multiple default Volume SnapshotClasses: one default per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass, VolumeSnapshotSource will be checked to figure out what the associated CSI Driver is, and the default VolumeSnapshotClass associated with that CSI Driver will be used. If more than one VolumeSnapshotClass exist for a given CSI Driver and more than one have been marked as default, CreateSnapshot will fail and generate an event. Empty string is not allowed for this field.' 264 type: string 265 required: 266 - source 267 type: object 268 status: 269 description: status represents the current information of a snapshot. Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object. 270 properties: 271 boundVolumeSnapshotContentName: 272 description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent object to which this VolumeSnapshot object intends to bind to. If not specified, it indicates that the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object.' 273 type: string 274 creationTime: 275 description: creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "creation_time" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "creation_time" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. If not specified, it may indicate that the creation time of the snapshot is unknown. 276 format: date-time 277 type: string 278 error: 279 description: error is the last observed error during snapshot creation, if any. This field could be helpful to upper level controllers(i.e., application controller) to decide whether they should continue on waiting for the snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the snapshot creation. Upon success, this error field will be cleared. 280 properties: 281 message: 282 description: 'message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information.' 283 type: string 284 time: 285 description: time is the timestamp when the error was encountered. 286 format: date-time 287 type: string 288 type: object 289 readyToUse: 290 description: readyToUse indicates if the snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "ready_to_use" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "ready_to_use" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, this field will be set to "True". If not specified, it means the readiness of a snapshot is unknown. 291 type: boolean 292 restoreSize: 293 type: string 294 description: restoreSize represents the minimum size of volume required to create a volume from this snapshot. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "size_bytes" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown. 295 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 296 x-kubernetes-int-or-string: true 297 type: object 298 required: 299 - spec 300 type: object 301 served: false 302 storage: false 303 subresources: 304 status: {} 305 status: 306 acceptedNames: 307 kind: "" 308 plural: "" 309 conditions: [] 310 storedVersions: []