kubectl events: Support fully qualified names for --for flag

Users can pass resources into `kubectl events` command via `--for` flag,
if they have desire to only get events for the resource they specify.

However, current `kubectl events` does not support passing fully qualified
names(e.g. `replicasets.apps`, `cronjobs.v1.batch`, etc.). This PR adds support
for this.

Kubernetes-commit: 457bb58ebbf5a863ce30f51c53a84bc41c2380dc
This commit is contained in:
Arda Güçlü 2023-03-31 12:34:00 +03:00 committed by Kubernetes Publisher
parent 65639830b2
commit 5de8e8f539
1 changed files with 11 additions and 4 deletions

View File

@ -386,11 +386,18 @@ func decodeResourceTypeName(mapper meta.RESTMapper, s string) (gvk schema.GroupV
} }
resource, name := seg[0], seg[1] resource, name := seg[0], seg[1]
var gvr schema.GroupVersionResource fullySpecifiedGVR, groupResource := schema.ParseResourceArg(strings.ToLower(resource))
gvr, err = mapper.ResourceFor(schema.GroupVersionResource{Resource: resource}) gvr := schema.GroupVersionResource{}
if err != nil { if fullySpecifiedGVR != nil {
return gvr, _ = mapper.ResourceFor(*fullySpecifiedGVR)
} }
if gvr.Empty() {
gvr, err = mapper.ResourceFor(groupResource.WithVersion(""))
if err != nil {
return
}
}
gvk, err = mapper.KindFor(gvr) gvk, err = mapper.KindFor(gvr)
if err != nil { if err != nil {
return return