From fccf212e4ddfc543b221d0378d505f285c668fec Mon Sep 17 00:00:00 2001
From: Jessica Yuen <im.jessicayuen@gmail.com>
Date: Wed, 29 Nov 2017 12:45:56 -0800
Subject: [PATCH] Only overwrite namespace, server if not explicitly specified

Currently, namespace and server is being overwritten by the environment
despite the user explicitly passing in the `--namespace` flag.

Ex: during `ks apply dev --namespace=ns2`, `ns2` should take preference
to the namespace specified by the dev environment.

Signed-off-by: Jessica Yuen <im.jessicayuen@gmail.com>
---
 cmd/root.go | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/cmd/root.go b/cmd/root.go
index 7a4045b9..adeed59a 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -360,10 +360,14 @@ func overrideCluster(envName string, clientConfig clientcmd.ClientConfig, overri
 
 	if _, ok := servers[server]; ok {
 		clusterName := servers[server]
-		log.Debugf("Overwriting --cluster flag with '%s'", clusterName)
-		overrides.Context.Cluster = clusterName
-		log.Debugf("Overwriting --namespace flag with '%s'", env.Namespace)
-		overrides.Context.Namespace = env.Namespace
+		if overrides.Context.Cluster == "" {
+			log.Debugf("Overwriting --cluster flag with '%s'", clusterName)
+			overrides.Context.Cluster = clusterName
+		}
+		if overrides.Context.Namespace == "" {
+			log.Debugf("Overwriting --namespace flag with '%s'", env.Namespace)
+			overrides.Context.Namespace = env.Namespace
+		}
 		return nil
 	}
 
-- 
GitLab