feat: migrate DeviceClaimConfiguration.Requests to declarative validation

This commit is contained in:
yongruilin
2025-10-09 07:36:04 +00:00
parent c81fc12900
commit ed932547cf
10 changed files with 19 additions and 1 deletions

View File

@@ -290,6 +290,8 @@ func Validate_DeviceClaimConfiguration(ctx context.Context, op operation.Operati
if earlyReturn {
return // do not proceed
}
// lists with set semantics require unique values
errs = append(errs, validate.Unique(ctx, op, fldPath, obj, oldObj, validate.DirectEqual)...)
return
}(fldPath.Child("requests"), obj.Requests, safe.Field(oldObj, func(oldObj *resourcev1.DeviceClaimConfiguration) []string { return oldObj.Requests }))...)

View File

@@ -296,6 +296,8 @@ func Validate_DeviceClaimConfiguration(ctx context.Context, op operation.Operati
if earlyReturn {
return // do not proceed
}
// lists with set semantics require unique values
errs = append(errs, validate.Unique(ctx, op, fldPath, obj, oldObj, validate.DirectEqual)...)
return
}(fldPath.Child("requests"), obj.Requests, safe.Field(oldObj, func(oldObj *resourcev1beta1.DeviceClaimConfiguration) []string { return oldObj.Requests }))...)

View File

@@ -296,6 +296,8 @@ func Validate_DeviceClaimConfiguration(ctx context.Context, op operation.Operati
if earlyReturn {
return // do not proceed
}
// lists with set semantics require unique values
errs = append(errs, validate.Unique(ctx, op, fldPath, obj, oldObj, validate.DirectEqual)...)
return
}(fldPath.Child("requests"), obj.Requests, safe.Field(oldObj, func(oldObj *resourcev1beta2.DeviceClaimConfiguration) []string { return oldObj.Requests }))...)

View File

@@ -353,7 +353,7 @@ func validateDeviceClaimConfiguration(config resource.DeviceClaimConfiguration,
allErrs = append(allErrs, validateSet(config.Requests, resource.DeviceRequestsMaxSize,
func(name string, fldPath *field.Path) field.ErrorList {
return validateRequestNameRef(name, fldPath, requestNames)
}, stringKey, fldPath.Child("requests"), sizeCovered)...)
}, stringKey, fldPath.Child("requests"), sizeCovered, uniquenessCovered)...)
allErrs = append(allErrs, validateDeviceConfiguration(config.DeviceConfiguration, fldPath, stored)...)
return allErrs
}

View File

@@ -597,6 +597,8 @@ message DeviceClaimConfiguration {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
repeated string requests = 1;

View File

@@ -1261,6 +1261,8 @@ type DeviceClaimConfiguration struct {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
Requests []string `json:"requests,omitempty" protobuf:"bytes,1,opt,name=requests"`

View File

@@ -605,6 +605,8 @@ message DeviceClaimConfiguration {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
repeated string requests = 1;

View File

@@ -1268,6 +1268,8 @@ type DeviceClaimConfiguration struct {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
Requests []string `json:"requests,omitempty" protobuf:"bytes,1,opt,name=requests"`

View File

@@ -597,6 +597,8 @@ message DeviceClaimConfiguration {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
repeated string requests = 1;

View File

@@ -1261,6 +1261,8 @@ type DeviceClaimConfiguration struct {
//
// +optional
// +listType=atomic
// +k8s:listType=atomic
// +k8s:unique=set
// +k8s:maxItems=32
Requests []string `json:"requests,omitempty" protobuf:"bytes,1,opt,name=requests"`