Merge pull request #130788 from jpbetz/fix-subresources

Fix subresource parsing for declarative validation
This commit is contained in:
Kubernetes Prow Robot 2025-03-13 14:56:08 -07:00 committed by GitHub
commit dabb4e2445
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 6 deletions

View File

@ -102,10 +102,12 @@ func parseSubresourcePath(subresourcePath string) ([]string, error) {
if len(subresourcePath) == 0 {
return nil, nil
}
if subresourcePath[0] != '/' {
return nil, fmt.Errorf("invalid subresource path: %s", subresourcePath)
parts := strings.Split(subresourcePath, "/")
for _, part := range parts {
if len(part) == 0 {
return nil, fmt.Errorf("invalid subresource path: %s", subresourcePath)
}
}
parts := strings.Split(subresourcePath[1:], "/")
return parts, nil
}

View File

@ -85,15 +85,22 @@ func TestValidateDeclaratively(t *testing.T) {
expected: field.ErrorList{invalidRestartPolicyErr, mutatedRestartPolicyErr},
},
{
name: "update subresource",
subresource: "/status",
name: "update subresource with declarative validation",
subresource: "status",
object: valid,
oldObject: valid,
expected: field.ErrorList{invalidStatusErr},
},
{
name: "update subresource without declarative validation",
subresource: "scale",
object: valid,
oldObject: valid,
expected: field.ErrorList{}, // Expect no errors if there is no registered validation
},
{
name: "invalid subresource",
subresource: "invalid/status",
subresource: "/invalid/status",
object: valid,
oldObject: valid,
expected: field.ErrorList{invalidSubresourceErr},