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
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},