prepend kube-context instead of append

pull/4946/head
Medya Gh 2019-07-23 19:51:27 -07:00
parent d1a41e0015
commit 29aa58df7e
1 changed files with 11 additions and 5 deletions

View File

@ -38,18 +38,23 @@ type KubectlRunner struct {
}
// NewKubectlRunner creates a new KubectlRunner
func NewKubectlRunner(t *testing.T, profile string) *KubectlRunner {
func NewKubectlRunner(t *testing.T, profile ...string) *KubectlRunner {
if profile == nil {
profile = []string{"minikube"}
}
p, err := exec.LookPath(kubectlBinary)
if err != nil {
t.Fatalf("Couldn't find kubectl on path.")
}
return &KubectlRunner{Profile: profile, BinaryPath: p, T: t}
return &KubectlRunner{Profile: profile[0], BinaryPath: p, T: t}
}
// RunCommandParseOutput runs a command and parses the JSON output
func (k *KubectlRunner) RunCommandParseOutput(args []string, outputObj interface{}) error {
func (k *KubectlRunner) RunCommandParseOutput(args []string, outputObj interface{}, setKubeContext ...bool) error {
kubecContextArg := fmt.Sprintf(" --context=%s", k.Profile)
args = append(args, kubecContextArg)
args = append([]string{kubecContextArg}, args...) // prepending --context so it can be with with -- space
args = append(args, "-o=json")
output, err := k.RunCommand(args)
if err != nil {
@ -65,7 +70,8 @@ func (k *KubectlRunner) RunCommandParseOutput(args []string, outputObj interface
// RunCommand runs a command, returning stdout
func (k *KubectlRunner) RunCommand(args []string) (stdout []byte, err error) {
kubecContextArg := fmt.Sprintf(" --context=%s", k.Profile)
args = append(args, kubecContextArg)
args = append([]string{kubecContextArg}, args...) // prepending --context so it can be with with -- space
inner := func() error {
cmd := exec.Command(k.BinaryPath, args...)
stdout, err = cmd.CombinedOutput()