k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.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: volumesnapshotcontents.snapshot.storage.k8s.io 12 spec: 13 group: snapshot.storage.k8s.io 14 names: 15 kind: VolumeSnapshotContent 16 listKind: VolumeSnapshotContentList 17 plural: volumesnapshotcontents 18 shortNames: 19 - vsc 20 - vscs 21 singular: volumesnapshotcontent 22 scope: Cluster 23 versions: 24 - additionalPrinterColumns: 25 - description: Indicates if the snapshot is ready to be used to restore a volume. 26 jsonPath: .status.readyToUse 27 name: ReadyToUse 28 type: boolean 29 - description: Represents the complete size of the snapshot in bytes 30 jsonPath: .status.restoreSize 31 name: RestoreSize 32 type: integer 33 - description: Determines whether this VolumeSnapshotContent and its physical 34 snapshot on the underlying storage system should be deleted when its bound 35 VolumeSnapshot is deleted. 36 jsonPath: .spec.deletionPolicy 37 name: DeletionPolicy 38 type: string 39 - description: Name of the CSI driver used to create the physical snapshot on 40 the underlying storage system. 41 jsonPath: .spec.driver 42 name: Driver 43 type: string 44 - description: Name of the VolumeSnapshotClass to which this snapshot belongs. 45 jsonPath: .spec.volumeSnapshotClassName 46 name: VolumeSnapshotClass 47 type: string 48 - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent 49 object is bound. 50 jsonPath: .spec.volumeSnapshotRef.name 51 name: VolumeSnapshot 52 type: string 53 - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. 54 jsonPath: .spec.volumeSnapshotRef.namespace 55 name: VolumeSnapshotNamespace 56 type: string 57 - jsonPath: .metadata.creationTimestamp 58 name: Age 59 type: date 60 name: v1 61 schema: 62 openAPIV3Schema: 63 description: VolumeSnapshotContent represents the actual "on-disk" snapshot 64 object in the underlying storage system 65 properties: 66 apiVersion: 67 description: 'APIVersion defines the versioned schema of this representation 68 of an object. Servers should convert recognized schemas to the latest 69 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 70 type: string 71 kind: 72 description: 'Kind is a string value representing the REST resource this 73 object represents. Servers may infer this from the endpoint the client 74 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 75 type: string 76 spec: 77 description: spec defines properties of a VolumeSnapshotContent created 78 by the underlying storage system. Required. 79 properties: 80 deletionPolicy: 81 description: deletionPolicy determines whether this VolumeSnapshotContent 82 and its physical snapshot on the underlying storage system should 83 be deleted when its bound VolumeSnapshot is deleted. Supported values 84 are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent 85 and its physical snapshot on underlying storage system are kept. 86 "Delete" means that the VolumeSnapshotContent and its physical snapshot 87 on underlying storage system are deleted. For dynamically provisioned 88 snapshots, this field will automatically be filled in by the CSI 89 snapshotter sidecar with the "DeletionPolicy" field defined in the 90 corresponding VolumeSnapshotClass. For pre-existing snapshots, users 91 MUST specify this field when creating the VolumeSnapshotContent 92 object. Required. 93 enum: 94 - Delete 95 - Retain 96 type: string 97 driver: 98 description: driver is the name of the CSI driver used to create the 99 physical snapshot on the underlying storage system. This MUST be 100 the same as the name returned by the CSI GetPluginName() call for 101 that driver. Required. 102 type: string 103 source: 104 description: source specifies whether the snapshot is (or should be) 105 dynamically provisioned or already exists, and just requires a Kubernetes 106 object representation. This field is immutable after creation. Required. 107 properties: 108 snapshotHandle: 109 description: snapshotHandle specifies the CSI "snapshot_id" of 110 a pre-existing snapshot on the underlying storage system for 111 which a Kubernetes object representation was (or should be) 112 created. This field is immutable. 113 type: string 114 volumeHandle: 115 description: volumeHandle specifies the CSI "volume_id" of the 116 volume from which a snapshot should be dynamically taken from. 117 This field is immutable. 118 type: string 119 type: object 120 oneOf: 121 - required: ["snapshotHandle"] 122 - required: ["volumeHandle"] 123 sourceVolumeMode: 124 description: SourceVolumeMode is the mode of the volume whose snapshot 125 is taken. Can be either “Filesystem” or “Block”. If not specified, 126 it indicates the source volume's mode is unknown. This field is 127 immutable. This field is an alpha field. 128 type: string 129 volumeSnapshotClassName: 130 description: name of the VolumeSnapshotClass from which this snapshot 131 was (or will be) created. Note that after provisioning, the VolumeSnapshotClass 132 may be deleted or recreated with different set of values, and as 133 such, should not be referenced post-snapshot creation. 134 type: string 135 volumeSnapshotRef: 136 description: volumeSnapshotRef specifies the VolumeSnapshot object 137 to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName 138 field must reference to this VolumeSnapshotContent's name for the 139 bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent 140 object, name and namespace of the VolumeSnapshot object MUST be 141 provided for binding to happen. This field is immutable after creation. 142 Required. 143 properties: 144 apiVersion: 145 description: API version of the referent. 146 type: string 147 fieldPath: 148 description: 'If referring to a piece of an object instead of 149 an entire object, this string should contain a valid JSON/Go 150 field access statement, such as desiredState.manifest.containers[2]. 151 For example, if the object reference is to a container within 152 a pod, this would take on a value like: "spec.containers{name}" 153 (where "name" refers to the name of the container that triggered 154 the event) or if no container name is specified "spec.containers[2]" 155 (container with index 2 in this pod). This syntax is chosen 156 only to have some well-defined way of referencing a part of 157 an object. TODO: this design is not final and this field is 158 subject to change in the future.' 159 type: string 160 kind: 161 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 162 type: string 163 name: 164 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 165 type: string 166 namespace: 167 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 168 type: string 169 resourceVersion: 170 description: 'Specific resourceVersion to which this reference 171 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 172 type: string 173 uid: 174 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 175 type: string 176 type: object 177 required: 178 - deletionPolicy 179 - driver 180 - source 181 - volumeSnapshotRef 182 type: object 183 status: 184 description: status represents the current information of a snapshot. 185 properties: 186 creationTime: 187 description: creationTime is the timestamp when the point-in-time 188 snapshot is taken by the underlying storage system. In dynamic snapshot 189 creation case, this field will be filled in by the CSI snapshotter 190 sidecar with the "creation_time" value returned from CSI "CreateSnapshot" 191 gRPC call. For a pre-existing snapshot, this field will be filled 192 with the "creation_time" value returned from the CSI "ListSnapshots" 193 gRPC call if the driver supports it. If not specified, it indicates 194 the creation time is unknown. The format of this field is a Unix 195 nanoseconds time encoded as an int64. On Unix, the command `date 196 +%s%N` returns the current time in nanoseconds since 1970-01-01 197 00:00:00 UTC. 198 format: int64 199 type: integer 200 error: 201 description: error is the last observed error during snapshot creation, 202 if any. Upon success after retry, this error field will be cleared. 203 properties: 204 message: 205 description: 'message is a string detailing the encountered error 206 during snapshot creation if specified. NOTE: message may be 207 logged, and it should not contain sensitive information.' 208 type: string 209 time: 210 description: time is the timestamp when the error was encountered. 211 format: date-time 212 type: string 213 type: object 214 readyToUse: 215 description: readyToUse indicates if a snapshot is ready to be used 216 to restore a volume. In dynamic snapshot creation case, this field 217 will be filled in by the CSI snapshotter sidecar with the "ready_to_use" 218 value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing 219 snapshot, this field will be filled with the "ready_to_use" value 220 returned from the CSI "ListSnapshots" gRPC call if the driver supports 221 it, otherwise, this field will be set to "True". If not specified, 222 it means the readiness of a snapshot is unknown. 223 type: boolean 224 restoreSize: 225 description: restoreSize represents the complete size of the snapshot 226 in bytes. In dynamic snapshot creation case, this field will be 227 filled in by the CSI snapshotter sidecar with the "size_bytes" value 228 returned from CSI "CreateSnapshot" gRPC call. For a pre-existing 229 snapshot, this field will be filled with the "size_bytes" value 230 returned from the CSI "ListSnapshots" gRPC call if the driver supports 231 it. When restoring a volume from this snapshot, the size of the 232 volume MUST NOT be smaller than the restoreSize if it is specified, 233 otherwise the restoration will fail. If not specified, it indicates 234 that the size is unknown. 235 format: int64 236 minimum: 0 237 type: integer 238 snapshotHandle: 239 description: snapshotHandle is the CSI "snapshot_id" of a snapshot 240 on the underlying storage system. If not specified, it indicates 241 that dynamic snapshot creation has either failed or it is still 242 in progress. 243 type: string 244 type: object 245 required: 246 - spec 247 type: object 248 served: true 249 storage: true 250 subresources: 251 status: {} 252 - additionalPrinterColumns: 253 - description: Indicates if the snapshot is ready to be used to restore a volume. 254 jsonPath: .status.readyToUse 255 name: ReadyToUse 256 type: boolean 257 - description: Represents the complete size of the snapshot in bytes 258 jsonPath: .status.restoreSize 259 name: RestoreSize 260 type: integer 261 - description: Determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. 262 jsonPath: .spec.deletionPolicy 263 name: DeletionPolicy 264 type: string 265 - description: Name of the CSI driver used to create the physical snapshot on the underlying storage system. 266 jsonPath: .spec.driver 267 name: Driver 268 type: string 269 - description: Name of the VolumeSnapshotClass to which this snapshot belongs. 270 jsonPath: .spec.volumeSnapshotClassName 271 name: VolumeSnapshotClass 272 type: string 273 - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. 274 jsonPath: .spec.volumeSnapshotRef.name 275 name: VolumeSnapshot 276 type: string 277 - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. 278 jsonPath: .spec.volumeSnapshotRef.namespace 279 name: VolumeSnapshotNamespace 280 type: string 281 - jsonPath: .metadata.creationTimestamp 282 name: Age 283 type: date 284 name: v1beta1 285 # This indicates the v1beta1 version of the custom resource is deprecated. 286 # API requests to this version receive a warning in the server response. 287 deprecated: true 288 # This overrides the default warning returned to clients making v1beta1 API requests. 289 deprecationWarning: "snapshot.storage.k8s.io/v1beta1 VolumeSnapshotContent is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshotContent" 290 schema: 291 openAPIV3Schema: 292 description: VolumeSnapshotContent represents the actual "on-disk" snapshot object in the underlying storage system 293 properties: 294 apiVersion: 295 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' 296 type: string 297 kind: 298 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' 299 type: string 300 spec: 301 description: spec defines properties of a VolumeSnapshotContent created by the underlying storage system. Required. 302 properties: 303 deletionPolicy: 304 description: deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. For dynamically provisioned snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeSnapshotContent object. Required. 305 enum: 306 - Delete 307 - Retain 308 type: string 309 driver: 310 description: driver is the name of the CSI driver used to create the physical snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required. 311 type: string 312 source: 313 description: source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. 314 properties: 315 snapshotHandle: 316 description: snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. 317 type: string 318 volumeHandle: 319 description: volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot should be dynamically taken from. This field is immutable. 320 type: string 321 type: object 322 volumeSnapshotClassName: 323 description: name of the VolumeSnapshotClass from which this snapshot was (or will be) created. 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. 324 type: string 325 volumeSnapshotRef: 326 description: volumeSnapshotRef specifies the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to this VolumeSnapshotContent's name for the bidirectional binding to be valid. 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. 327 properties: 328 apiVersion: 329 description: API version of the referent. 330 type: string 331 fieldPath: 332 description: 'If referring to a piece of an object instead of an entire object, this string 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 a pod, this would take on a value like: "spec.containers{name}" (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 index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' 333 type: string 334 kind: 335 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 336 type: string 337 name: 338 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 339 type: string 340 namespace: 341 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 342 type: string 343 resourceVersion: 344 description: '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' 345 type: string 346 uid: 347 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 348 type: string 349 type: object 350 required: 351 - deletionPolicy 352 - driver 353 - source 354 - volumeSnapshotRef 355 type: object 356 status: 357 description: status represents the current information of a snapshot. 358 properties: 359 creationTime: 360 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 CSI snapshotter sidecar 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 indicates the creation time is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command `date +%s%N` returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. 361 format: int64 362 type: integer 363 error: 364 description: error is the last observed error during snapshot creation, if any. Upon success after retry, this error field will be cleared. 365 properties: 366 message: 367 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.' 368 type: string 369 time: 370 description: time is the timestamp when the error was encountered. 371 format: date-time 372 type: string 373 type: object 374 readyToUse: 375 description: readyToUse indicates if a snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar 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. 376 type: boolean 377 restoreSize: 378 description: restoreSize represents the complete size of the snapshot in bytes. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar 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. 379 format: int64 380 minimum: 0 381 type: integer 382 snapshotHandle: 383 description: snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system. If not specified, it indicates that dynamic snapshot creation has either failed or it is still in progress. 384 type: string 385 type: object 386 required: 387 - spec 388 type: object 389 served: false 390 storage: false 391 subresources: 392 status: {} 393 status: 394 acceptedNames: 395 kind: "" 396 plural: "" 397 conditions: [] 398 storedVersions: []