Skip to content

Commit 982f11e

Browse files
committed
Address comments
1 parent 4d6c52e commit 982f11e

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

client/apis/volumegroupsnapshot/v1alpha1/types.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type VolumeGroupSnapshotSpec struct {
3636
// class will be used.
3737
// Empty string is not allowed for this field.
3838
// +optional
39-
// +kubebuilder:validation:XValidation:rule="size(self) > 0",message="VolumeGroupSnapshotClassName must not be the empty string when set"
39+
// +kubebuilder:validation:XValidation:rule="size(self) > 0",message="volumeGroupSnapshotClassName must not be the empty string when set"
4040
VolumeGroupSnapshotClassName *string `json:"volumeGroupSnapshotClassName,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotClassName"`
4141
}
4242

@@ -47,6 +47,7 @@ type VolumeGroupSnapshotSpec struct {
4747
// Members in VolumeGroupSnapshotSource are immutable.
4848
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.selector) || has(self.selector)", message="selector is required once set"
4949
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.volumeGroupSnapshotContentName) || has(self.volumeGroupSnapshotContentName)", message="volumeGroupSnapshotContentName is required once set"
50+
// +kubebuilder:validation:XValidation:rule="(has(self.selector) && !has(self.volumeGroupSnapshotContentName)) || (!has(self.selector) && has(self.volumeGroupSnapshotContentName))", message="exactly one of selector and volumeGroupSnapshotContentName must be set"
5051
type VolumeGroupSnapshotSource struct {
5152
// Selector is a label query over persistent volume claims that are to be
5253
// grouped together for snapshotting.
@@ -56,7 +57,7 @@ type VolumeGroupSnapshotSource struct {
5657
// Once a VolumeGroupSnapshotContent is created and the sidecar starts to process
5758
// it, the volume list will not change with retries.
5859
// +optional
59-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.Selector is immutable"
60+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="selector is immutable"
6061
Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,opt,name=selector"`
6162

6263
// VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent
@@ -65,7 +66,7 @@ type VolumeGroupSnapshotSource struct {
6566
// only needs a representation in Kubernetes.
6667
// This field is immutable.
6768
// +optional
68-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.VolumeGroupSnapshotContentName is immutable"
69+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeGroupSnapshotContentName is immutable"
6970
VolumeGroupSnapshotContentName *string `json:"volumeGroupSnapshotContentName,omitempty" protobuf:"bytes,2,opt,name=volumeGroupSnapshotContentName"`
7071
}
7172

@@ -270,9 +271,8 @@ type VolumeGroupSnapshotContentSpec struct {
270271
// VolumeGroupSnapshot object MUST be provided for binding to happen.
271272
// This field is immutable after creation.
272273
// Required.
273-
// +kubebuilder:validation:XValidation:rule="has(self.name) && has(self.__namespace__)",message="both Spec.VolumeGroupSnapshotRef.Name and Spec.VolumeGroupSnapshotRef.Namespace must be set"
274-
// +kubebuilder:validation:XValidation:rule="self.name == oldSelf.name",message="Spec.VolumeGroupSnapshotRef.Name is immutable"
275-
// +kubebuilder:validation:XValidation:rule="self.__namespace__ == oldSelf.__namespace__",message="Spec.VolumeGroupSnapshotRef.Namespace is immutable"
274+
// +kubebuilder:validation:XValidation:rule="has(self.name) && has(self.__namespace__)",message="both volumeGroupSnapshotRef.name and volumeGroupSnapshotRef.namespace must be set"
275+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeGroupSnapshotRef is immutable"
276276
VolumeGroupSnapshotRef core_v1.ObjectReference `json:"volumeGroupSnapshotRef" protobuf:"bytes,1,opt,name=volumeGroupSnapshotRef"`
277277

278278
// DeletionPolicy determines whether this VolumeGroupSnapshotContent and the
@@ -355,14 +355,15 @@ type VolumeGroupSnapshotContentStatus struct {
355355
// VolumeGroupSnapshotContentSource represents the CSI source of a group snapshot.
356356
// Exactly one of its members must be set.
357357
// Members in VolumeGroupSnapshotContentSource are immutable.
358-
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.volumeHandle) || has(self.volumeHandle)", message="volumeHandle is required once set"
358+
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.volumeHandles) || has(self.volumeHandles)", message="volumeHandles is required once set"
359359
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.groupSnapshotHandles) || has(self.groupSnapshotHandles)", message="groupSnapshotHandles is required once set"
360+
// +kubebuilder:validation:XValidation:rule="(has(self.volumeHandles) && !has(self.groupSnapshotHandles)) || (!has(self.volumeHandles) && has(self.groupSnapshotHandles))", message="exactly one of volumeHandles and groupSnapshotHandles must be set"
360361
type VolumeGroupSnapshotContentSource struct {
361362
// VolumeHandles is a list of volume handles on the backend to be snapshotted
362363
// together. It is specified for dynamic provisioning of the VolumeGroupSnapshot.
363364
// This field is immutable.
364365
// +optional
365-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.VolumeHandle is immutable"
366+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeHandles is immutable"
366367
VolumeHandles []string `json:"volumeHandles,omitempty" protobuf:"bytes,1,opt,name=volumeHandles"`
367368

368369
// GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing
@@ -371,7 +372,7 @@ type VolumeGroupSnapshotContentSource struct {
371372
// representation was (or should be) created.
372373
// This field is immutable.
373374
// +optional
374-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.GroupSnapshotHandles is immutable"
375+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="groupSnapshotHandles is immutable"
375376
GroupSnapshotHandles *GroupSnapshotHandles `json:"groupSnapshotHandles,omitempty" protobuf:"bytes,2,opt,name=groupSnapshotHandles"`
376377
}
377378

client/apis/volumesnapshot/v1/types.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ type VolumeSnapshotSpec struct {
102102
// Members in VolumeSnapshotSource are immutable.
103103
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.persistentVolumeClaimName) || has(self.persistentVolumeClaimName)", message="persistentVolumeClaimName is required once set"
104104
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.volumeSnapshotContentName) || has(self.volumeSnapshotContentName)", message="volumeSnapshotContentName is required once set"
105+
// +kubebuilder:validation:XValidation:rule="(has(self.volumeSnapshotContentName) && !has(self.persistentVolumeClaimName)) || (!has(self.volumeSnapshotContentName) && has(self.persistentVolumeClaimName))", message="exactly one of volumeSnapshotContentName and persistentVolumeClaimName must be set"
105106
type VolumeSnapshotSource struct {
106107
// persistentVolumeClaimName specifies the name of the PersistentVolumeClaim
107108
// object representing the volume from which a snapshot should be created.
@@ -111,15 +112,15 @@ type VolumeSnapshotSource struct {
111112
// created.
112113
// This field is immutable.
113114
// +optional
114-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.PersistentVolumeClaimName is immutable"
115+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="persistentVolumeClaimName is immutable"
115116
PersistentVolumeClaimName *string `json:"persistentVolumeClaimName,omitempty" protobuf:"bytes,1,opt,name=persistentVolumeClaimName"`
116117

117118
// volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent
118119
// object representing an existing volume snapshot.
119120
// This field should be set if the snapshot already exists and only needs a representation in Kubernetes.
120121
// This field is immutable.
121122
// +optional
122-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.VolumeSnapshotContentName is immutable"
123+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeSnapshotContentName is immutable"
123124
VolumeSnapshotContentName *string `json:"volumeSnapshotContentName,omitempty" protobuf:"bytes,2,opt,name=volumeSnapshotContentName"`
124125
}
125126

@@ -347,7 +348,7 @@ type VolumeSnapshotContentSpec struct {
347348
// This field is immutable.
348349
// This field is an alpha field.
349350
// +optional
350-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.sourceVolumeMode is immutable"
351+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="sourceVolumeMode is immutable"
351352
SourceVolumeMode *core_v1.PersistentVolumeMode `json:"sourceVolumeMode" protobuf:"bytes,6,opt,name=sourceVolumeMode"`
352353
}
353354

@@ -356,20 +357,21 @@ type VolumeSnapshotContentSpec struct {
356357
// Members in VolumeSnapshotContentSource are immutable.
357358
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.volumeHandle) || has(self.volumeHandle)", message="volumeHandle is required once set"
358359
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.snapshotHandle) || has(self.snapshotHandle)", message="snapshotHandle is required once set"
360+
// +kubebuilder:validation:XValidation:rule="(has(self.volumeHandle) && !has(self.snapshotHandle)) || (!has(self.volumeHandle) && has(self.snapshotHandle))", message="exactly one of volumeHandle and snapshotHandle must be set"
359361
type VolumeSnapshotContentSource struct {
360362
// volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot
361363
// should be dynamically taken from.
362364
// This field is immutable.
363365
// +optional
364-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.VolumeHandle is immutable"
366+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeHandle is immutable"
365367
VolumeHandle *string `json:"volumeHandle,omitempty" protobuf:"bytes,1,opt,name=volumeHandle"`
366368

367369
// snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on
368370
// the underlying storage system for which a Kubernetes object representation
369371
// was (or should be) created.
370372
// This field is immutable.
371373
// +optional
372-
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec.Source.SnapshotHandle is immutable"
374+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="snapshotHandle is immutable"
373375
SnapshotHandle *string `json:"snapshotHandle,omitempty" protobuf:"bytes,2,opt,name=snapshotHandle"`
374376
}
375377

0 commit comments

Comments
 (0)