From 5de8e8f539601c05703f0c5c19a98cf405c8f5d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20G=C3=BC=C3=A7l=C3=BC?= Date: Fri, 31 Mar 2023 12:34:00 +0300 Subject: [PATCH] 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 --- pkg/cmd/events/events.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/cmd/events/events.go b/pkg/cmd/events/events.go index f2cc941ca..4cc12fbfa 100644 --- a/pkg/cmd/events/events.go +++ b/pkg/cmd/events/events.go @@ -386,11 +386,18 @@ func decodeResourceTypeName(mapper meta.RESTMapper, s string) (gvk schema.GroupV } resource, name := seg[0], seg[1] - var gvr schema.GroupVersionResource - gvr, err = mapper.ResourceFor(schema.GroupVersionResource{Resource: resource}) - if err != nil { - return + fullySpecifiedGVR, groupResource := schema.ParseResourceArg(strings.ToLower(resource)) + gvr := schema.GroupVersionResource{} + if fullySpecifiedGVR != nil { + gvr, _ = mapper.ResourceFor(*fullySpecifiedGVR) } + if gvr.Empty() { + gvr, err = mapper.ResourceFor(groupResource.WithVersion("")) + if err != nil { + return + } + } + gvk, err = mapper.KindFor(gvr) if err != nil { return