DRA: remove "source" indirection from v1 Pod API
This makes the API nicer: resourceClaims: - name: with-template resourceClaimTemplateName: test-inline-claim-template - name: with-claim resourceClaimName: test-shared-claim Previously, this was: resourceClaims: - name: with-template source: resourceClaimTemplateName: test-inline-claim-template - name: with-claim source: resourceClaimName: test-shared-claim A more long-term benefit is that other, future alternatives might not make sense under the "source" umbrella. This is a breaking change. It's justified because DRA is still alpha and will have several other API breaks in 1.31.
This commit is contained in:
@@ -3020,7 +3020,7 @@ func validatePodResourceClaim(podMeta *metav1.ObjectMeta, claim core.PodResource
|
||||
nameErrs := ValidateDNS1123Label(claim.Name, fldPath.Child("name"))
|
||||
if len(nameErrs) > 0 {
|
||||
allErrs = append(allErrs, nameErrs...)
|
||||
} else if podMeta != nil && claim.Source.ResourceClaimTemplateName != nil {
|
||||
} else if podMeta != nil && claim.ResourceClaimTemplateName != nil {
|
||||
claimName := podMeta.Name + "-" + claim.Name
|
||||
for _, detail := range ValidateResourceClaimName(claimName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("name"), claimName, "final ResourceClaim name: "+detail))
|
||||
@@ -3028,27 +3028,20 @@ func validatePodResourceClaim(podMeta *metav1.ObjectMeta, claim core.PodResource
|
||||
}
|
||||
podClaimNames.Insert(claim.Name)
|
||||
}
|
||||
allErrs = append(allErrs, validatePodResourceClaimSource(claim.Source, fldPath.Child("source"))...)
|
||||
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func validatePodResourceClaimSource(claimSource core.ClaimSource, fldPath *field.Path) field.ErrorList {
|
||||
var allErrs field.ErrorList
|
||||
if claimSource.ResourceClaimName != nil && claimSource.ResourceClaimTemplateName != nil {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath, claimSource, "at most one of `resourceClaimName` or `resourceClaimTemplateName` may be specified"))
|
||||
if claim.ResourceClaimName != nil && claim.ResourceClaimTemplateName != nil {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath, claim, "at most one of `resourceClaimName` or `resourceClaimTemplateName` may be specified"))
|
||||
}
|
||||
if claimSource.ResourceClaimName == nil && claimSource.ResourceClaimTemplateName == nil {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath, claimSource, "must specify one of: `resourceClaimName`, `resourceClaimTemplateName`"))
|
||||
if claim.ResourceClaimName == nil && claim.ResourceClaimTemplateName == nil {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath, claim, "must specify one of: `resourceClaimName`, `resourceClaimTemplateName`"))
|
||||
}
|
||||
if claimSource.ResourceClaimName != nil {
|
||||
for _, detail := range ValidateResourceClaimName(*claimSource.ResourceClaimName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("resourceClaimName"), *claimSource.ResourceClaimName, detail))
|
||||
if claim.ResourceClaimName != nil {
|
||||
for _, detail := range ValidateResourceClaimName(*claim.ResourceClaimName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("resourceClaimName"), *claim.ResourceClaimName, detail))
|
||||
}
|
||||
}
|
||||
if claimSource.ResourceClaimTemplateName != nil {
|
||||
for _, detail := range ValidateResourceClaimTemplateName(*claimSource.ResourceClaimTemplateName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("resourceClaimTemplateName"), *claimSource.ResourceClaimTemplateName, detail))
|
||||
if claim.ResourceClaimTemplateName != nil {
|
||||
for _, detail := range ValidateResourceClaimTemplateName(*claim.ResourceClaimTemplateName, false) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("resourceClaimTemplateName"), *claim.ResourceClaimTemplateName, detail))
|
||||
}
|
||||
}
|
||||
return allErrs
|
||||
|
Reference in New Issue
Block a user