feat(dra): add k8s:optional on AllocatedDeviceStatus.NetworkData

This commit is contained in:
yongruilin
2025-10-22 07:06:15 +00:00
parent 8124b22f90
commit 2b4495f66a
9 changed files with 69 additions and 3 deletions

View File

@@ -136,7 +136,27 @@ func Validate_AllocatedDeviceStatus(ctx context.Context, op operation.Operation,
// field resourcev1.AllocatedDeviceStatus.Conditions has no validation
// field resourcev1.AllocatedDeviceStatus.Data has no validation
// field resourcev1.AllocatedDeviceStatus.NetworkData has no validation
// field resourcev1.AllocatedDeviceStatus.NetworkData
errs = append(errs,
func(fldPath *field.Path, obj, oldObj *resourcev1.NetworkDeviceData) (errs field.ErrorList) {
// don't revalidate unchanged data
if op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
return nil
}
// call field-attached validations
earlyReturn := false
if e := validate.OptionalPointer(ctx, op, fldPath, obj, oldObj); len(e) != 0 {
earlyReturn = true
}
if earlyReturn {
return // do not proceed
}
return
}(fldPath.Child("networkData"), obj.NetworkData, safe.Field(oldObj, func(oldObj *resourcev1.AllocatedDeviceStatus) *resourcev1.NetworkDeviceData {
return oldObj.NetworkData
}))...)
return errs
}

View File

@@ -136,7 +136,27 @@ func Validate_AllocatedDeviceStatus(ctx context.Context, op operation.Operation,
// field resourcev1beta1.AllocatedDeviceStatus.Conditions has no validation
// field resourcev1beta1.AllocatedDeviceStatus.Data has no validation
// field resourcev1beta1.AllocatedDeviceStatus.NetworkData has no validation
// field resourcev1beta1.AllocatedDeviceStatus.NetworkData
errs = append(errs,
func(fldPath *field.Path, obj, oldObj *resourcev1beta1.NetworkDeviceData) (errs field.ErrorList) {
// don't revalidate unchanged data
if op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
return nil
}
// call field-attached validations
earlyReturn := false
if e := validate.OptionalPointer(ctx, op, fldPath, obj, oldObj); len(e) != 0 {
earlyReturn = true
}
if earlyReturn {
return // do not proceed
}
return
}(fldPath.Child("networkData"), obj.NetworkData, safe.Field(oldObj, func(oldObj *resourcev1beta1.AllocatedDeviceStatus) *resourcev1beta1.NetworkDeviceData {
return oldObj.NetworkData
}))...)
return errs
}

View File

@@ -136,7 +136,27 @@ func Validate_AllocatedDeviceStatus(ctx context.Context, op operation.Operation,
// field resourcev1beta2.AllocatedDeviceStatus.Conditions has no validation
// field resourcev1beta2.AllocatedDeviceStatus.Data has no validation
// field resourcev1beta2.AllocatedDeviceStatus.NetworkData has no validation
// field resourcev1beta2.AllocatedDeviceStatus.NetworkData
errs = append(errs,
func(fldPath *field.Path, obj, oldObj *resourcev1beta2.NetworkDeviceData) (errs field.ErrorList) {
// don't revalidate unchanged data
if op.Type == operation.Update && equality.Semantic.DeepEqual(obj, oldObj) {
return nil
}
// call field-attached validations
earlyReturn := false
if e := validate.OptionalPointer(ctx, op, fldPath, obj, oldObj); len(e) != 0 {
earlyReturn = true
}
if earlyReturn {
return // do not proceed
}
return
}(fldPath.Child("networkData"), obj.NetworkData, safe.Field(oldObj, func(oldObj *resourcev1beta2.AllocatedDeviceStatus) *resourcev1beta2.NetworkDeviceData {
return oldObj.NetworkData
}))...)
return errs
}

View File

@@ -90,6 +90,7 @@ message AllocatedDeviceStatus {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
optional NetworkDeviceData networkData = 6;
}

View File

@@ -1905,6 +1905,7 @@ type AllocatedDeviceStatus struct {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
NetworkData *NetworkDeviceData `json:"networkData,omitempty" protobuf:"bytes,6,opt,name=networkData"`
}

View File

@@ -90,6 +90,7 @@ message AllocatedDeviceStatus {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
optional NetworkDeviceData networkData = 6;
}

View File

@@ -1913,6 +1913,7 @@ type AllocatedDeviceStatus struct {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
NetworkData *NetworkDeviceData `json:"networkData,omitempty" protobuf:"bytes,6,opt,name=networkData"`
}

View File

@@ -90,6 +90,7 @@ message AllocatedDeviceStatus {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
optional NetworkDeviceData networkData = 6;
}

View File

@@ -1905,6 +1905,7 @@ type AllocatedDeviceStatus struct {
// NetworkData contains network-related information specific to the device.
//
// +optional
// +k8s:optional
NetworkData *NetworkDeviceData `json:"networkData,omitempty" protobuf:"bytes,6,opt,name=networkData"`
}