Update CRDs to include additional get information
This commit is contained in:
@@ -4,19 +4,32 @@ apiVersion: apiextensions.k8s.io/v1beta1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: (devel)
|
controller-gen.kubebuilder.io/version: v0.2.5
|
||||||
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139"
|
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
name: volumesnapshotclasses.snapshot.storage.k8s.io
|
name: volumesnapshotclasses.snapshot.storage.k8s.io
|
||||||
spec:
|
spec:
|
||||||
|
additionalPrinterColumns:
|
||||||
|
- JSONPath: .driver
|
||||||
|
name: Driver
|
||||||
|
type: string
|
||||||
|
- JSONPath: .deletionPolicy
|
||||||
|
description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass
|
||||||
|
should be deleted when its bound VolumeSnapshot is deleted.
|
||||||
|
name: DeletionPolicy
|
||||||
|
type: string
|
||||||
|
- JSONPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
group: snapshot.storage.k8s.io
|
group: snapshot.storage.k8s.io
|
||||||
names:
|
names:
|
||||||
kind: VolumeSnapshotClass
|
kind: VolumeSnapshotClass
|
||||||
listKind: VolumeSnapshotClassList
|
listKind: VolumeSnapshotClassList
|
||||||
plural: volumesnapshotclasses
|
plural: volumesnapshotclasses
|
||||||
singular: volumesnapshotclass
|
singular: volumesnapshotclass
|
||||||
scope: Cluster
|
|
||||||
preserveUnknownFields: false
|
preserveUnknownFields: false
|
||||||
|
scope: Cluster
|
||||||
|
subresources: {}
|
||||||
validation:
|
validation:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
description: VolumeSnapshotClass specifies parameters that a underlying storage
|
description: VolumeSnapshotClass specifies parameters that a underlying storage
|
||||||
@@ -27,7 +40,7 @@ spec:
|
|||||||
apiVersion:
|
apiVersion:
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
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/api-conventions.md#resources'
|
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
|
||||||
deletionPolicy:
|
deletionPolicy:
|
||||||
description: deletionPolicy determines whether a VolumeSnapshotContent created
|
description: deletionPolicy determines whether a VolumeSnapshotContent created
|
||||||
@@ -47,7 +60,7 @@ spec:
|
|||||||
kind:
|
kind:
|
||||||
description: 'Kind is a string value representing the REST resource this
|
description: 'Kind is a string value representing the REST resource this
|
||||||
object represents. Servers may infer this from the endpoint the client
|
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/api-conventions.md#types-kinds'
|
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
|
||||||
parameters:
|
parameters:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
|
@@ -4,21 +4,53 @@ apiVersion: apiextensions.k8s.io/v1beta1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: (devel)
|
controller-gen.kubebuilder.io/version: v0.2.5
|
||||||
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139"
|
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
name: volumesnapshotcontents.snapshot.storage.k8s.io
|
name: volumesnapshotcontents.snapshot.storage.k8s.io
|
||||||
spec:
|
spec:
|
||||||
|
additionalPrinterColumns:
|
||||||
|
- JSONPath: .status.readyToUse
|
||||||
|
description: Indicates if a snapshot is ready to be used to restore a volume.
|
||||||
|
name: ReadyToUse
|
||||||
|
type: boolean
|
||||||
|
- JSONPath: .status.restoreSize
|
||||||
|
description: Represents the complete size of the snapshot in bytes
|
||||||
|
name: RestoreSize
|
||||||
|
type: integer
|
||||||
|
- JSONPath: .spec.deletionPolicy
|
||||||
|
description: Determines whether this VolumeSnapshotContent and its physical snapshot
|
||||||
|
on the underlying storage system should be deleted when its bound VolumeSnapshot
|
||||||
|
is deleted.
|
||||||
|
name: DeletionPolicy
|
||||||
|
type: string
|
||||||
|
- JSONPath: .spec.driver
|
||||||
|
description: Name of the CSI driver used to create the physical snapshot on the
|
||||||
|
underlying storage system.
|
||||||
|
name: Driver
|
||||||
|
type: string
|
||||||
|
- JSONPath: .spec.volumeSnapshotClassName
|
||||||
|
description: Name of the VolumeSnapshotClass to which this snapshot belongs.
|
||||||
|
name: VolumeSnapshotClass
|
||||||
|
type: string
|
||||||
|
- JSONPath: .spec.volumeSnapshotRef.name
|
||||||
|
description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent
|
||||||
|
object is bound.
|
||||||
|
name: VolumeSnapshot
|
||||||
|
type: string
|
||||||
|
- JSONPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
group: snapshot.storage.k8s.io
|
group: snapshot.storage.k8s.io
|
||||||
names:
|
names:
|
||||||
kind: VolumeSnapshotContent
|
kind: VolumeSnapshotContent
|
||||||
listKind: VolumeSnapshotContentList
|
listKind: VolumeSnapshotContentList
|
||||||
plural: volumesnapshotcontents
|
plural: volumesnapshotcontents
|
||||||
singular: volumesnapshotcontent
|
singular: volumesnapshotcontent
|
||||||
|
preserveUnknownFields: false
|
||||||
scope: Cluster
|
scope: Cluster
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
preserveUnknownFields: false
|
|
||||||
validation:
|
validation:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
description: VolumeSnapshotContent represents the actual "on-disk" snapshot
|
description: VolumeSnapshotContent represents the actual "on-disk" snapshot
|
||||||
@@ -27,12 +59,12 @@ spec:
|
|||||||
apiVersion:
|
apiVersion:
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
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/api-conventions.md#resources'
|
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: 'Kind is a string value representing the REST resource this
|
||||||
object represents. Servers may infer this from the endpoint the client
|
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/api-conventions.md#types-kinds'
|
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
|
||||||
spec:
|
spec:
|
||||||
description: spec defines properties of a VolumeSnapshotContent created
|
description: spec defines properties of a VolumeSnapshotContent created
|
||||||
@@ -104,7 +136,7 @@ spec:
|
|||||||
in the future.'
|
in the future.'
|
||||||
type: string
|
type: string
|
||||||
kind:
|
kind:
|
||||||
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/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'
|
||||||
@@ -114,7 +146,7 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
resourceVersion:
|
resourceVersion:
|
||||||
description: 'Specific resourceVersion to which this reference is
|
description: 'Specific resourceVersion to which this reference is
|
||||||
made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
|
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'
|
||||||
|
@@ -4,21 +4,57 @@ apiVersion: apiextensions.k8s.io/v1beta1
|
|||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
controller-gen.kubebuilder.io/version: (devel)
|
controller-gen.kubebuilder.io/version: v0.2.5
|
||||||
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139"
|
api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260"
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
name: volumesnapshots.snapshot.storage.k8s.io
|
name: volumesnapshots.snapshot.storage.k8s.io
|
||||||
spec:
|
spec:
|
||||||
|
additionalPrinterColumns:
|
||||||
|
- JSONPath: .status.readyToUse
|
||||||
|
description: Indicates if a snapshot is ready to be used to restore a volume.
|
||||||
|
name: ReadyToUse
|
||||||
|
type: boolean
|
||||||
|
- JSONPath: .spec.source.persistentVolumeClaimName
|
||||||
|
description: Name of the source PVC from where a dynamically taken snapshot will
|
||||||
|
be created.
|
||||||
|
name: SourcePVC
|
||||||
|
type: string
|
||||||
|
- JSONPath: .spec.source.volumeSnapshotContentName
|
||||||
|
description: Name of the VolumeSnapshotContent which represents a pre-provisioned
|
||||||
|
snapshot.
|
||||||
|
name: SourceSnapshotContent
|
||||||
|
type: string
|
||||||
|
- JSONPath: .status.restoreSize
|
||||||
|
description: Represents the complete size of the snapshot.
|
||||||
|
name: RestoreSize
|
||||||
|
type: string
|
||||||
|
- JSONPath: .spec.volumeSnapshotClassName
|
||||||
|
description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot.
|
||||||
|
name: SnapshotClass
|
||||||
|
type: string
|
||||||
|
- JSONPath: .status.boundVolumeSnapshotContentName
|
||||||
|
description: The name of the VolumeSnapshotContent to which this VolumeSnapshot
|
||||||
|
is bound.
|
||||||
|
name: SnapshotContent
|
||||||
|
type: string
|
||||||
|
- JSONPath: .status.creationTime
|
||||||
|
description: Timestamp when the point-in-time snapshot is taken by the underlying
|
||||||
|
storage system.
|
||||||
|
name: CreationTime
|
||||||
|
type: date
|
||||||
|
- JSONPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
group: snapshot.storage.k8s.io
|
group: snapshot.storage.k8s.io
|
||||||
names:
|
names:
|
||||||
kind: VolumeSnapshot
|
kind: VolumeSnapshot
|
||||||
listKind: VolumeSnapshotList
|
listKind: VolumeSnapshotList
|
||||||
plural: volumesnapshots
|
plural: volumesnapshots
|
||||||
singular: volumesnapshot
|
singular: volumesnapshot
|
||||||
|
preserveUnknownFields: false
|
||||||
scope: Namespaced
|
scope: Namespaced
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
preserveUnknownFields: false
|
|
||||||
validation:
|
validation:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
description: VolumeSnapshot is a user's request for either creating a point-in-time
|
description: VolumeSnapshot is a user's request for either creating a point-in-time
|
||||||
@@ -27,12 +63,12 @@ spec:
|
|||||||
apiVersion:
|
apiVersion:
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
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/api-conventions.md#resources'
|
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: 'Kind is a string value representing the REST resource this
|
||||||
object represents. Servers may infer this from the endpoint the client
|
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/api-conventions.md#types-kinds'
|
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
|
||||||
spec:
|
spec:
|
||||||
description: 'spec defines the desired characteristics of a snapshot requested
|
description: 'spec defines the desired characteristics of a snapshot requested
|
||||||
@@ -121,6 +157,9 @@ spec:
|
|||||||
of a snapshot is unknown.
|
of a snapshot is unknown.
|
||||||
type: boolean
|
type: boolean
|
||||||
restoreSize:
|
restoreSize:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
description: restoreSize represents the complete size of the snapshot
|
description: restoreSize represents the complete size of the snapshot
|
||||||
in bytes. In dynamic snapshot creation case, this field will be filled
|
in bytes. In dynamic snapshot creation case, this field will be filled
|
||||||
in with the "size_bytes" value returned from CSI "CreateSnapshotRequest"
|
in with the "size_bytes" value returned from CSI "CreateSnapshotRequest"
|
||||||
@@ -130,7 +169,8 @@ spec:
|
|||||||
this snapshot, the size of the volume MUST NOT be smaller than the
|
this snapshot, the size of the volume MUST NOT be smaller than the
|
||||||
restoreSize if it is specified, otherwise the restoration will fail.
|
restoreSize if it is specified, otherwise the restoration will fail.
|
||||||
If not specified, it indicates that the size is unknown.
|
If not specified, it indicates that the size is unknown.
|
||||||
type: string
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
- spec
|
- spec
|
||||||
|
@@ -26,7 +26,7 @@ then
|
|||||||
TMP_DIR=$(mktemp -d);
|
TMP_DIR=$(mktemp -d);
|
||||||
cd $TMP_DIR;
|
cd $TMP_DIR;
|
||||||
go mod init tmp;
|
go mod init tmp;
|
||||||
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.4;
|
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.5;
|
||||||
rm -rf $TMP_DIR;
|
rm -rf $TMP_DIR;
|
||||||
CONTROLLER_GEN=$(which controller-gen)
|
CONTROLLER_GEN=$(which controller-gen)
|
||||||
fi
|
fi
|
||||||
|
@@ -31,6 +31,14 @@ import (
|
|||||||
// +kubebuilder:object:root=true
|
// +kubebuilder:object:root=true
|
||||||
// +kubebuilder:resource:scope=Namespaced
|
// +kubebuilder:resource:scope=Namespaced
|
||||||
// +kubebuilder:subresource:status
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="ReadyToUse",type=boolean,JSONPath=`.status.readyToUse`,description="Indicates if a snapshot is ready to be used to restore a volume."
|
||||||
|
// +kubebuilder:printcolumn:name="SourcePVC",type=string,JSONPath=`.spec.source.persistentVolumeClaimName`,description="Name of the source PVC from where a dynamically taken snapshot will be created."
|
||||||
|
// +kubebuilder:printcolumn:name="SourceSnapshotContent",type=string,JSONPath=`.spec.source.volumeSnapshotContentName`,description="Name of the VolumeSnapshotContent which represents a pre-provisioned snapshot."
|
||||||
|
// +kubebuilder:printcolumn:name="RestoreSize",type=string,JSONPath=`.status.restoreSize`,description="Represents the complete size of the snapshot."
|
||||||
|
// +kubebuilder:printcolumn:name="SnapshotClass",type=string,JSONPath=`.spec.volumeSnapshotClassName`,description="The name of the VolumeSnapshotClass requested by the VolumeSnapshot."
|
||||||
|
// +kubebuilder:printcolumn:name="SnapshotContent",type=string,JSONPath=`.status.boundVolumeSnapshotContentName`,description="The name of the VolumeSnapshotContent to which this VolumeSnapshot is bound."
|
||||||
|
// +kubebuilder:printcolumn:name="CreationTime",type=date,JSONPath=`.status.creationTime`,description="Timestamp when the point-in-time snapshot is taken by the underlying storage system."
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
|
||||||
type VolumeSnapshot struct {
|
type VolumeSnapshot struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
@@ -163,6 +171,9 @@ type VolumeSnapshotStatus struct {
|
|||||||
// VolumeSnapshotClasses are non-namespaced
|
// VolumeSnapshotClasses are non-namespaced
|
||||||
// +kubebuilder:object:root=true
|
// +kubebuilder:object:root=true
|
||||||
// +kubebuilder:resource:scope=Cluster
|
// +kubebuilder:resource:scope=Cluster
|
||||||
|
// +kubebuilder:printcolumn:name="Driver",type=string,JSONPath=`.driver`
|
||||||
|
// +kubebuilder:printcolumn:name="DeletionPolicy",type=string,JSONPath=`.deletionPolicy`,description="Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted."
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
|
||||||
type VolumeSnapshotClass struct {
|
type VolumeSnapshotClass struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
@@ -212,6 +223,13 @@ type VolumeSnapshotClassList struct {
|
|||||||
// +kubebuilder:object:root=true
|
// +kubebuilder:object:root=true
|
||||||
// +kubebuilder:resource:scope=Cluster
|
// +kubebuilder:resource:scope=Cluster
|
||||||
// +kubebuilder:subresource:status
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="ReadyToUse",type=boolean,JSONPath=`.status.readyToUse`,description="Indicates if a snapshot is ready to be used to restore a volume."
|
||||||
|
// +kubebuilder:printcolumn:name="RestoreSize",type=integer,JSONPath=`.status.restoreSize`,description="Represents the complete size of the snapshot in bytes"
|
||||||
|
// +kubebuilder:printcolumn:name="DeletionPolicy",type=string,JSONPath=`.spec.deletionPolicy`,description="Determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted."
|
||||||
|
// +kubebuilder:printcolumn:name="Driver",type=string,JSONPath=`.spec.driver`,description="Name of the CSI driver used to create the physical snapshot on the underlying storage system."
|
||||||
|
// +kubebuilder:printcolumn:name="VolumeSnapshotClass",type=string,JSONPath=`.spec.volumeSnapshotClassName`,description="Name of the VolumeSnapshotClass to which this snapshot belongs."
|
||||||
|
// +kubebuilder:printcolumn:name="VolumeSnapshot",type=string,JSONPath=`.spec.volumeSnapshotRef.name`,description="Name of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound."
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
|
||||||
type VolumeSnapshotContent struct {
|
type VolumeSnapshotContent struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
// Standard object's metadata.
|
// Standard object's metadata.
|
||||||
|
Reference in New Issue
Block a user