Add Source to volumegroupsnapshot
This commit is contained in:
@@ -25,6 +25,26 @@ import (
|
||||
|
||||
// VolumeGroupSnapshotSpec defines the desired state of VolumeGroupSnapshot
|
||||
type VolumeGroupSnapshotSpec struct {
|
||||
// Source specifies where a group snapshot will be created from.
|
||||
// This field is immutable after creation.
|
||||
// Required.
|
||||
Source VolumeGroupSnapshotSource `json:"source" protobuf:"bytes,1,opt,name=source"`
|
||||
|
||||
// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass
|
||||
// requested by the VolumeGroupSnapshot.
|
||||
// VolumeGroupSnapshotClassName may be left nil to indicate that the default
|
||||
// class will be used.
|
||||
// Empty string is not allowed for this field.
|
||||
// +optional
|
||||
VolumeGroupSnapshotClassName *string `json:"volumeGroupSnapshotClassName,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotClassName"`
|
||||
}
|
||||
|
||||
// VolumeGroupSnapshotSource specifies whether the underlying group snapshot should be
|
||||
// dynamically taken upon creation or if a pre-existing VolumeGroupSnapshotContent
|
||||
// object should be used.
|
||||
// Exactly one of its members must be set.
|
||||
// Members in VolumeGroupSnapshotSource are immutable.
|
||||
type VolumeGroupSnapshotSource struct {
|
||||
// Selector is a label query over PersistentVolumeClaims that are to be grouped
|
||||
// together for snapshotting.
|
||||
// This labelSelector will be used to match the label added to a PVC.
|
||||
@@ -35,13 +55,13 @@ type VolumeGroupSnapshotSpec struct {
|
||||
// Required.
|
||||
Selector metav1.LabelSelector `json:"selector" protobuf:"bytes,1,opt,name=selector"`
|
||||
|
||||
// VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass
|
||||
// requested by the VolumeGroupSnapshot.
|
||||
// VolumeGroupSnapshotClassName may be left nil to indicate that the default
|
||||
// class will be used.
|
||||
// Empty string is not allowed for this field.
|
||||
// VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent
|
||||
// object representing an existing volume group snapshot.
|
||||
// This field should be set if the volume group snapshot already exists and
|
||||
// only needs a representation in Kubernetes.
|
||||
// This field is immutable.
|
||||
// +optional
|
||||
VolumeGroupSnapshotClassName *string `json:"volumeGroupSnapshotClassName,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotClassName"`
|
||||
VolumeGroupSnapshotContentName *string `json:"volumeGroupSnapshotContentName,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotContentName"`
|
||||
}
|
||||
|
||||
// VolumeGroupSnapshotStatus defines the observed state of VolumeGroupSnapshot
|
||||
@@ -61,6 +81,9 @@ type VolumeGroupSnapshotStatus struct {
|
||||
// by the underlying storage system.
|
||||
// If not specified, it may indicate that the creation time of the 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.
|
||||
// +optional
|
||||
CreationTime *metav1.Time `json:"creationTime,omitempty" protobuf:"bytes,2,opt,name=creationTime"`
|
||||
|
||||
@@ -68,9 +91,6 @@ type VolumeGroupSnapshotStatus struct {
|
||||
// to be used to restore a volume.
|
||||
// ReadyToUse becomes true when ReadyToUse of all individual snapshots become true.
|
||||
// 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.
|
||||
// +optional
|
||||
ReadyToUse *bool `json:"readyToUse,omitempty" protobuf:"varint,3,opt,name=readyToUse"`
|
||||
|
||||
@@ -284,16 +304,16 @@ type VolumeGroupSnapshotContentStatus struct {
|
||||
// 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.
|
||||
// +optional
|
||||
CreationTime *int64 `json:"creationTime,omitempty" protobuf:"varint,2,opt,name=creationTime"`
|
||||
|
||||
// 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.
|
||||
// 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.
|
||||
// +optional
|
||||
ReadyToUse *bool `json:"readyToUse,omitempty" protobuf:"varint,3,opt,name=readyToUse"`
|
||||
|
||||
|
@@ -314,9 +314,31 @@ func (in *VolumeGroupSnapshotList) DeepCopyObject() runtime.Object {
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VolumeGroupSnapshotSpec) DeepCopyInto(out *VolumeGroupSnapshotSpec) {
|
||||
func (in *VolumeGroupSnapshotSource) DeepCopyInto(out *VolumeGroupSnapshotSource) {
|
||||
*out = *in
|
||||
in.Selector.DeepCopyInto(&out.Selector)
|
||||
if in.VolumeGroupSnapshotContentName != nil {
|
||||
in, out := &in.VolumeGroupSnapshotContentName, &out.VolumeGroupSnapshotContentName
|
||||
*out = new(string)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeGroupSnapshotSource.
|
||||
func (in *VolumeGroupSnapshotSource) DeepCopy() *VolumeGroupSnapshotSource {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(VolumeGroupSnapshotSource)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *VolumeGroupSnapshotSpec) DeepCopyInto(out *VolumeGroupSnapshotSpec) {
|
||||
*out = *in
|
||||
in.Source.DeepCopyInto(&out.Source)
|
||||
if in.VolumeGroupSnapshotClassName != nil {
|
||||
in, out := &in.VolumeGroupSnapshotClassName, &out.VolumeGroupSnapshotClassName
|
||||
*out = new(string)
|
||||
|
@@ -149,7 +149,11 @@ spec:
|
||||
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.
|
||||
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:
|
||||
@@ -171,10 +175,7 @@ spec:
|
||||
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. 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.
|
||||
true.
|
||||
type: boolean
|
||||
volumeGroupSnapshotHandle:
|
||||
description: VolumeGroupSnapshotHandle is a unique id returned by
|
||||
|
@@ -38,57 +38,71 @@ spec:
|
||||
description: Spec defines the desired characteristics of a group snapshot
|
||||
requested by a user. Required.
|
||||
properties:
|
||||
selector:
|
||||
description: Selector is a label query over PersistentVolumeClaims
|
||||
that are to be grouped together for snapshotting. This labelSelector
|
||||
will be used to match the label added to a PVC. If the label is
|
||||
added or removed to a volume after a group snapshot is created,
|
||||
the existing group snapshots won't be modified. Once a VolumeGroupSnapshotContent
|
||||
is created and the sidecar starts to process it, the volume list
|
||||
will not change with retries. Required.
|
||||
source:
|
||||
description: Source specifies where a group snapshot will be created
|
||||
from. This field is immutable after creation. Required.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector requirements.
|
||||
The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector that
|
||||
contains values, a key, and an operator that relates the key
|
||||
and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector applies
|
||||
to.
|
||||
selector:
|
||||
description: Selector is a label query over PersistentVolumeClaims
|
||||
that are to be grouped together for snapshotting. This labelSelector
|
||||
will be used to match the label added to a PVC. If the label
|
||||
is added or removed to a volume after a group snapshot is created,
|
||||
the existing group snapshots won't be modified. Once a VolumeGroupSnapshotContent
|
||||
is created and the sidecar starts to process it, the volume
|
||||
list will not change with retries. Required.
|
||||
properties:
|
||||
matchExpressions:
|
||||
description: matchExpressions is a list of label selector
|
||||
requirements. The requirements are ANDed.
|
||||
items:
|
||||
description: A label selector requirement is a selector
|
||||
that contains values, a key, and an operator that relates
|
||||
the key and values.
|
||||
properties:
|
||||
key:
|
||||
description: key is the label key that the selector
|
||||
applies to.
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship
|
||||
to a set of values. Valid operators are In, NotIn,
|
||||
Exists and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If
|
||||
the operator is In or NotIn, the values array must
|
||||
be non-empty. If the operator is Exists or DoesNotExist,
|
||||
the values array must be empty. This array is replaced
|
||||
during a strategic merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
operator:
|
||||
description: operator represents a key's relationship to
|
||||
a set of values. Valid operators are In, NotIn, Exists
|
||||
and DoesNotExist.
|
||||
type: string
|
||||
values:
|
||||
description: values is an array of string values. If the
|
||||
operator is In or NotIn, the values array must be non-empty.
|
||||
If the operator is Exists or DoesNotExist, the values
|
||||
array must be empty. This array is replaced during a strategic
|
||||
merge patch.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- key
|
||||
- operator
|
||||
type: object
|
||||
type: array
|
||||
matchLabels:
|
||||
additionalProperties:
|
||||
type: string
|
||||
description: matchLabels is a map of {key,value} pairs. A single
|
||||
{key,value} in the matchLabels map is equivalent to an element
|
||||
of matchExpressions, whose key field is "key", the operator
|
||||
is "In", and the values array contains only "value". The requirements
|
||||
are ANDed.
|
||||
description: matchLabels is a map of {key,value} pairs. A
|
||||
single {key,value} in the matchLabels map is equivalent
|
||||
to an element of matchExpressions, whose key field is "key",
|
||||
the operator is "In", and the values array contains only
|
||||
"value". The requirements are ANDed.
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
volumeGroupSnapshotContentName:
|
||||
description: volumeGroupSnapshotContentName specifies the name
|
||||
of a pre-existing VolumeGroupSnapshotContent object representing
|
||||
an existing volume group snapshot. This field should be set
|
||||
if the volume group snapshot already exists and only needs a
|
||||
representation in Kubernetes. This field is immutable.
|
||||
type: string
|
||||
required:
|
||||
- selector
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
volumeGroupSnapshotClassName:
|
||||
description: VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass
|
||||
requested by the VolumeGroupSnapshot. VolumeGroupSnapshotClassName
|
||||
@@ -96,7 +110,7 @@ spec:
|
||||
Empty string is not allowed for this field.
|
||||
type: string
|
||||
required:
|
||||
- selector
|
||||
- source
|
||||
type: object
|
||||
status:
|
||||
description: Status represents the current information of a group snapshot.
|
||||
@@ -119,7 +133,9 @@ spec:
|
||||
description: CreationTime is the timestamp when the point-in-time
|
||||
group snapshot is taken by the underlying storage system. If not
|
||||
specified, it may indicate that the creation time of the group snapshot
|
||||
is unknown.
|
||||
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: date-time
|
||||
type: string
|
||||
error:
|
||||
@@ -146,9 +162,7 @@ spec:
|
||||
in the group are ready to be used to restore a volume. ReadyToUse
|
||||
becomes true when ReadyToUse of all individual snapshots become
|
||||
true. 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.
|
||||
is unknown.
|
||||
type: boolean
|
||||
volumeSnapshotRefList:
|
||||
description: VolumeSnapshotRefList is the list of volume snapshot
|
||||
|
Reference in New Issue
Block a user