@@ -256,7 +256,7 @@ func validateDeviceConfiguration(config resource.DeviceConfiguration, fldPath *f
256
256
func validateOpaqueConfiguration (config resource.OpaqueDeviceConfiguration , fldPath * field.Path , stored bool ) field.ErrorList {
257
257
var allErrs field.ErrorList
258
258
allErrs = append (allErrs , validateDriverName (config .Driver , fldPath .Child ("driver" ))... )
259
- allErrs = append (allErrs , validateRawExtension (config .Parameters , fldPath .Child ("parameters" ), stored )... )
259
+ allErrs = append (allErrs , validateRawExtension (config .Parameters , fldPath .Child ("parameters" ), stored , resource . OpaqueParametersMaxLength )... )
260
260
return allErrs
261
261
}
262
262
@@ -748,29 +748,29 @@ func validateDeviceStatus(device resource.AllocatedDeviceStatus, fldPath *field.
748
748
if ! allocatedDevices .Has (deviceID ) {
749
749
allErrs = append (allErrs , field .Invalid (fldPath , deviceID , "must be an allocated device in the claim" ))
750
750
}
751
- if len (device .Conditions ) > maxConditions {
752
- allErrs = append (allErrs , field .TooMany (fldPath .Child ("conditions" ), len (device .Conditions ), maxConditions ))
751
+ if len (device .Conditions ) > resource . AllocatedDeviceStatusMaxConditions {
752
+ allErrs = append (allErrs , field .TooMany (fldPath .Child ("conditions" ), len (device .Conditions ), resource . AllocatedDeviceStatusMaxConditions ))
753
753
}
754
754
allErrs = append (allErrs , metav1validation .ValidateConditions (device .Conditions , fldPath .Child ("conditions" ))... )
755
- if len (device .Data .Raw ) > 0 { // Data is an optional field.
756
- allErrs = append (allErrs , validateRawExtension (device .Data , fldPath .Child ("data" ), false )... )
755
+ if device . Data != nil && len (device .Data .Raw ) > 0 { // Data is an optional field.
756
+ allErrs = append (allErrs , validateRawExtension (* device .Data , fldPath .Child ("data" ), false , resource . AllocatedDeviceStatusDataMaxLength )... )
757
757
}
758
758
allErrs = append (allErrs , validateNetworkDeviceData (device .NetworkData , fldPath .Child ("networkData" ))... )
759
759
return allErrs
760
760
}
761
761
762
762
// validateRawExtension validates RawExtension as in https://github.com/kubernetes/kubernetes/pull/125549/
763
- func validateRawExtension (rawExtension runtime.RawExtension , fldPath * field.Path , stored bool ) field.ErrorList {
763
+ func validateRawExtension (rawExtension runtime.RawExtension , fldPath * field.Path , stored bool , rawExtensionMaxLength int ) field.ErrorList {
764
764
var allErrs field.ErrorList
765
765
var v any
766
766
if len (rawExtension .Raw ) == 0 {
767
767
allErrs = append (allErrs , field .Required (fldPath , "" ))
768
- } else if ! stored && len (rawExtension .Raw ) > resource . OpaqueParametersMaxLength {
768
+ } else if ! stored && len (rawExtension .Raw ) > rawExtensionMaxLength {
769
769
// Don't even bother with parsing when too large.
770
770
// Only applies on create. Existing parameters are grand-fathered in
771
771
// because the limit was introduced in 1.32. This also means that it
772
772
// can be changed in the future.
773
- allErrs = append (allErrs , field .TooLong (fldPath , "" /* unused */ , resource . OpaqueParametersMaxLength ))
773
+ allErrs = append (allErrs , field .TooLong (fldPath , "" /* unused */ , rawExtensionMaxLength ))
774
774
} else if err := json .Unmarshal (rawExtension .Raw , & v ); err != nil {
775
775
allErrs = append (allErrs , field .Invalid (fldPath , "<value omitted>" , fmt .Sprintf ("error parsing data as JSON: %v" , err .Error ())))
776
776
} else if v == nil {
@@ -781,26 +781,21 @@ func validateRawExtension(rawExtension runtime.RawExtension, fldPath *field.Path
781
781
return allErrs
782
782
}
783
783
784
- const maxConditions int = 8
785
- const maxIPs int = 16
786
- const interfaceNameMaxLength int = 256
787
- const hardwareAddressMaxLength int = 128
788
-
789
784
func validateNetworkDeviceData (networkDeviceData * resource.NetworkDeviceData , fldPath * field.Path ) field.ErrorList {
790
785
var allErrs field.ErrorList
791
786
if networkDeviceData == nil {
792
787
return allErrs
793
788
}
794
789
795
- if len (networkDeviceData .InterfaceName ) > interfaceNameMaxLength {
796
- allErrs = append (allErrs , field .TooLong (fldPath .Child ("interfaceName" ), "" /* unused */ , interfaceNameMaxLength ))
790
+ if len (networkDeviceData .InterfaceName ) > resource . NetworkDeviceDataInterfaceNameMaxLength {
791
+ allErrs = append (allErrs , field .TooLong (fldPath .Child ("interfaceName" ), "" /* unused */ , resource . NetworkDeviceDataInterfaceNameMaxLength ))
797
792
}
798
793
799
- if len (networkDeviceData .HardwareAddress ) > hardwareAddressMaxLength {
800
- allErrs = append (allErrs , field .TooLong (fldPath .Child ("hardwareAddress" ), "" /* unused */ , hardwareAddressMaxLength ))
794
+ if len (networkDeviceData .HardwareAddress ) > resource . NetworkDeviceDataHardwareAddressMaxLength {
795
+ allErrs = append (allErrs , field .TooLong (fldPath .Child ("hardwareAddress" ), "" /* unused */ , resource . NetworkDeviceDataHardwareAddressMaxLength ))
801
796
}
802
797
803
- allErrs = append (allErrs , validateSet (networkDeviceData .IPs , maxIPs ,
798
+ allErrs = append (allErrs , validateSet (networkDeviceData .IPs , resource . NetworkDeviceDataMaxIPs ,
804
799
func (address string , fldPath * field.Path ) field.ErrorList {
805
800
// reformat CIDR to handle different ways IPs can be written
806
801
// (e.g. 2001:db8::1/64 == 2001:0db8::1/64)
0 commit comments