From 7eb74e036fd0a476e369d2157be7a38776019237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20G=C3=BC=C3=A7l=C3=BC?= Date: Fri, 2 Dec 2022 14:05:11 +0300 Subject: [PATCH] kubectl exec: return descriptive error message when multi resource passed `kubectl exec` command supports getting files as inputs. However, if the file contains multiple resources, it returns unclear error message; `cannot attach to *v1.List: selector for *v1.List not implemented`. Since `exec` command does not support multi resources, this PR handles that and returns descriptive error message earlier. Kubernetes-commit: 832644f0b38d536be7a5adce9bc62b0902710091 --- pkg/cmd/exec/exec.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/cmd/exec/exec.go b/pkg/cmd/exec/exec.go index ff7a3750d..3c312fac1 100644 --- a/pkg/cmd/exec/exec.go +++ b/pkg/cmd/exec/exec.go @@ -33,6 +33,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/remotecommand" + "k8s.io/apimachinery/pkg/api/meta" cmdutil "k8s.io/kubectl/pkg/cmd/util" "k8s.io/kubectl/pkg/cmd/util/podcmd" "k8s.io/kubectl/pkg/polymorphichelpers" @@ -310,6 +311,10 @@ func (p *ExecOptions) Run() error { return err } + if meta.IsListType(obj) { + return fmt.Errorf("cannot exec into multiple objects at a time") + } + p.Pod, err = p.ExecutablePodFn(p.restClientGetter, obj, p.GetPodTimeout) if err != nil { return err