Previously, the CRD yaml files did not include the objectmeta field (metadata) that the CRD definitions themselves do include. This was causing issues for tools that parse only the schema, such as linters. This updates all of the yaml files to include the metadata field in their schemae.
262 lines
15 KiB
YAML
262 lines
15 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/814"
|
|
controller-gen.kubebuilder.io/version: v0.12.0
|
|
creationTimestamp: null
|
|
name: volumegroupsnapshotcontents.groupsnapshot.storage.k8s.io
|
|
spec:
|
|
group: groupsnapshot.storage.k8s.io
|
|
names:
|
|
kind: VolumeGroupSnapshotContent
|
|
listKind: VolumeGroupSnapshotContentList
|
|
plural: volumegroupsnapshotcontents
|
|
shortNames:
|
|
- vgsc
|
|
- vgscs
|
|
singular: volumegroupsnapshotcontent
|
|
scope: Cluster
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VolumeGroupSnapshotContent represents the actual "on-disk" group
|
|
snapshot object in the underlying storage system
|
|
properties:
|
|
apiVersion:
|
|
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'
|
|
type: string
|
|
kind:
|
|
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'
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
description: Spec defines properties of a VolumeGroupSnapshotContent created
|
|
by the underlying storage system. Required.
|
|
properties:
|
|
deletionPolicy:
|
|
description: DeletionPolicy determines whether this VolumeGroupSnapshotContent
|
|
and the physical group snapshot on the underlying storage system
|
|
should be deleted when the bound VolumeGroupSnapshot is deleted.
|
|
Supported values are "Retain" and "Delete". "Retain" means that
|
|
the VolumeGroupSnapshotContent and its physical group snapshot on
|
|
underlying storage system are kept. "Delete" means that the VolumeGroupSnapshotContent
|
|
and its physical group snapshot on underlying storage system are
|
|
deleted. For dynamically provisioned group snapshots, this field
|
|
will automatically be filled in by the CSI snapshotter sidecar with
|
|
the "DeletionPolicy" field defined in the corresponding VolumeGroupSnapshotClass.
|
|
For pre-existing snapshots, users MUST specify this field when creating
|
|
the VolumeGroupSnapshotContent object. Required.
|
|
enum:
|
|
- Delete
|
|
- Retain
|
|
type: string
|
|
driver:
|
|
description: Driver is the name of the CSI driver used to create the
|
|
physical group snapshot on the underlying storage system. This MUST
|
|
be the same as the name returned by the CSI GetPluginName() call
|
|
for that driver. Required.
|
|
type: string
|
|
source:
|
|
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.
|
|
properties:
|
|
persistentVolumeNames:
|
|
description: PersistentVolumeNames is a list of names of PersistentVolumes
|
|
to be snapshotted together. It is specified for dynamic provisioning
|
|
of the VolumeGroupSnapshot. This field is immutable.
|
|
items:
|
|
type: string
|
|
type: array
|
|
volumeGroupSnapshotHandle:
|
|
description: VolumeGroupSnapshotHandle specifies the CSI "group_snapshot_id"
|
|
of a pre-existing group snapshot on the underlying storage system
|
|
for which a Kubernetes object representation was (or should
|
|
be) created. This field is immutable.
|
|
type: string
|
|
type: object
|
|
oneOf:
|
|
- required: ["persistentVolumeNames"]
|
|
- required: ["volumeGroupSnapshotHandle"]
|
|
volumeGroupSnapshotClassName:
|
|
description: VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass
|
|
from which this group snapshot was (or will be) created. Note that
|
|
after provisioning, the VolumeGroupSnapshotClass may be deleted
|
|
or recreated with different set of values, and as such, should not
|
|
be referenced post-snapshot creation. For dynamic provisioning,
|
|
this field must be set. This field may be unset for pre-provisioned
|
|
snapshots.
|
|
type: string
|
|
volumeGroupSnapshotRef:
|
|
description: VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot
|
|
object to which this VolumeGroupSnapshotContent object is bound.
|
|
VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must
|
|
reference to this VolumeGroupSnapshotContent's name for the bidirectional
|
|
binding to be valid. For a pre-existing VolumeGroupSnapshotContent
|
|
object, name and namespace of the VolumeGroupSnapshot object MUST
|
|
be provided for binding to happen. This field is immutable after
|
|
creation. Required.
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
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.'
|
|
type: string
|
|
kind:
|
|
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
type: string
|
|
name:
|
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
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'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- deletionPolicy
|
|
- driver
|
|
- source
|
|
- volumeGroupSnapshotRef
|
|
type: object
|
|
status:
|
|
description: status represents the current information of a group snapshot.
|
|
properties:
|
|
creationTime:
|
|
description: CreationTime is the timestamp when the point-in-time
|
|
group snapshot is taken by the underlying storage system. If not
|
|
specified, it indicates the creation time is unknown. If not specified,
|
|
it means the readiness of a group snapshot 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.
|
|
format: int64
|
|
type: integer
|
|
error:
|
|
description: Error is the last observed error during group snapshot
|
|
creation, if any. Upon success after retry, this error field will
|
|
be cleared.
|
|
properties:
|
|
message:
|
|
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.'
|
|
type: string
|
|
time:
|
|
description: time is the timestamp when the error was encountered.
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
readyToUse:
|
|
description: ReadyToUse indicates if all the individual snapshots
|
|
in the group are ready to be used to restore a volume. ReadyToUse
|
|
becomes true when ReadyToUse of all individual snapshots become
|
|
true.
|
|
type: boolean
|
|
volumeGroupSnapshotHandle:
|
|
description: VolumeGroupSnapshotHandle is a unique id returned by
|
|
the CSI driver to identify the VolumeGroupSnapshot on the storage
|
|
system. If a storage system does not provide such an id, the CSI
|
|
driver can choose to return the VolumeGroupSnapshot name.
|
|
type: string
|
|
volumeSnapshotRefList:
|
|
description: VolumeSnapshotContentRefList is the list of volume snapshot
|
|
content references for this group snapshot. The maximum number of
|
|
allowed snapshots in the group is 100.
|
|
items:
|
|
description: "ObjectReference contains enough information to let
|
|
you inspect or modify the referred object. --- New uses of this
|
|
type are discouraged because of difficulty describing its usage
|
|
when embedded in APIs. 1. Ignored fields. It includes many fields
|
|
which are not generally honored. For instance, ResourceVersion
|
|
and FieldPath are both very rarely valid in actual usage. 2. Invalid
|
|
usage help. It is impossible to add specific help for individual
|
|
usage. In most embedded usages, there are particular restrictions
|
|
like, \"must refer only to types A and B\" or \"UID not honored\"
|
|
or \"name must be restricted\". Those cannot be well described
|
|
when embedded. 3. Inconsistent validation. Because the usages
|
|
are different, the validation rules are different by usage, which
|
|
makes it hard for users to predict what will happen. 4. The fields
|
|
are both imprecise and overly precise. Kind is not a precise
|
|
mapping to a URL. This can produce ambiguity during interpretation
|
|
and require a REST mapping. In most cases, the dependency is
|
|
on the group,resource tuple and the version of the actual struct
|
|
is irrelevant. 5. We cannot easily change it. Because this type
|
|
is embedded in many locations, updates to this type will affect
|
|
numerous schemas. Don't make new APIs embed an underspecified
|
|
API type they do not control. \n Instead of using this type, create
|
|
a locally provided and used type that is well-focused on your
|
|
reference. For example, ServiceReferences for admission registration:
|
|
https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
|
|
."
|
|
properties:
|
|
apiVersion:
|
|
description: API version of the referent.
|
|
type: string
|
|
fieldPath:
|
|
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.'
|
|
type: string
|
|
kind:
|
|
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
type: string
|
|
name:
|
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
|
|
type: string
|
|
namespace:
|
|
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
|
|
type: string
|
|
resourceVersion:
|
|
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'
|
|
type: string
|
|
uid:
|
|
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
type: array
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|