mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 11:38:15 +00:00
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.
This commit is contained in:
parent
d89d5ab268
commit
457bb58ebb
@ -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
|
||||
|
@ -57,6 +57,14 @@ run_kubectl_events_tests() {
|
||||
output_message=$(kubectl events -n test-events --for=Cronjob/pi "${kube_flags[@]:?}" 2>&1)
|
||||
kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi"
|
||||
|
||||
# Post-Condition: events returns event for fully qualified Cronjob.v1.batch/pi when --for flag is used
|
||||
output_message=$(kubectl events -n test-events --for Cronjob.v1.batch/pi "${kube_flags[@]:?}" 2>&1)
|
||||
kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi"
|
||||
|
||||
# Post-Condition: events returns event for fully qualified without version Cronjob.batch/pi when --for flag is used
|
||||
output_message=$(kubectl events -n test-events --for=Cronjob.batch/pi "${kube_flags[@]:?}" 2>&1)
|
||||
kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi"
|
||||
|
||||
# Post-Condition: events returns event for Cronjob/pi when watch is enabled
|
||||
output_message=$(kubectl events -n test-events --for=Cronjob/pi --watch --request-timeout=1 "${kube_flags[@]:?}" 2>&1)
|
||||
kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi"
|
||||
|
Loading…
Reference in New Issue
Block a user