From c9268e1fafe257a5bf1c9aae924f6674ad83d7b2 Mon Sep 17 00:00:00 2001 From: kargakis Date: Wed, 9 Sep 2015 20:55:56 +0200 Subject: [PATCH] expose: Avoid selector resolution if a selector is not needed --- pkg/kubectl/cmd/expose.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/kubectl/cmd/expose.go b/pkg/kubectl/cmd/expose.go index 790683bd893..adc36c1b1ba 100644 --- a/pkg/kubectl/cmd/expose.go +++ b/pkg/kubectl/cmd/expose.go @@ -129,14 +129,18 @@ func RunExpose(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []str names := generator.ParamNames() params := kubectl.MakeParams(cmd, names) params["default-name"] = info.Name - if s, found := params["selector"]; !found || kubectl.IsZero(s) || cmdutil.GetFlagInt(cmd, "port") < 1 { - if kubectl.IsZero(s) { - s, err := f.PodSelectorForObject(inputObject) - if err != nil { - return cmdutil.UsageError(cmd, fmt.Sprintf("couldn't find selectors via --selector flag or introspection: %s", err)) - } - params["selector"] = s + + // For objects that need a pod selector, derive it from the exposed object in case a user + // didn't explicitly specify one via --selector + if s, found := params["selector"]; found && kubectl.IsZero(s) { + s, err := f.PodSelectorForObject(inputObject) + if err != nil { + return cmdutil.UsageError(cmd, fmt.Sprintf("couldn't find selectors via --selector flag or introspection: %s", err)) } + params["selector"] = s + } + + if cmdutil.GetFlagInt(cmd, "port") < 1 { noPorts := true for _, param := range names { if param.Name == "port" {