Merge pull request #3754 from deads2k/deads-remove-ns-path

remove --ns-path option from .kubeconfig file
pull/6/head
Jeff Lowdermilk 2015-02-04 08:10:21 -08:00
commit 6acac8f761
7 changed files with 32 additions and 104 deletions

View File

@ -72,9 +72,7 @@ __kubectl_pre_command()
--client-key= --client-key=
--insecure-skip-tls-verify= --insecure-skip-tls-verify=
--match-server-version= --match-server-version=
-n
--namespace= --namespace=
--ns-path=
-s -s
--server= --server=
) )
@ -85,7 +83,7 @@ __kubectl_pre_command()
COMPREPLY=( $(compgen -W "${api_versions[*]}" -- "$cur") ) COMPREPLY=( $(compgen -W "${api_versions[*]}" -- "$cur") )
return 0 return 0
;; ;;
-a | --auth-path | --certificate-authority | --client-certificate | --client-key | --ns-path) -a | --auth-path | --certificate-authority | --client-certificate | --client-key)
_filedir _filedir
return 0 return 0
;; ;;

View File

@ -30,7 +30,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -66,7 +65,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-p, --port=8001: The port on which to run the proxy -p, --port=8001: The port on which to run the proxy
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
@ -124,7 +122,6 @@ Usage:
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--no-headers=false: When using the default output, don't print headers --no-headers=false: When using the default output, don't print headers
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-o, --output="": Output format: json|yaml|template|templatefile -o, --output="": Output format: json|yaml|template|templatefile
--output-version="": Output the formatted object with the given version (default api-version) --output-version="": Output the formatted object with the given version (default api-version)
-l, --selector="": Selector (label query) to filter on -l, --selector="": Selector (label query) to filter on
@ -168,7 +165,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -214,7 +210,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -263,7 +258,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
--patch="": A JSON document to override the existing resource. The resource is downloaded, then patched with the JSON, the updated --patch="": A JSON document to override the existing resource. The resource is downloaded, then patched with the JSON, the updated
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
@ -323,7 +317,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-l, --selector="": Selector (label query) to filter on -l, --selector="": Selector (label query) to filter on
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
@ -372,7 +365,6 @@ Available Commands:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -390,7 +382,7 @@ Additional help topics:
kubectl update Update a resource by filename or stdin kubectl update Update a resource by filename or stdin
kubectl delete Delete a resource by filename, stdin or resource and id kubectl delete Delete a resource by filename, stdin or resource and id
kubectl config config modifies .kubeconfig files kubectl config config modifies .kubeconfig files
kubectl namespace Set and view the current Kubernetes namespace kubectl namespace SUPERCEDED: Set and view the current Kubernetes namespace
kubectl log Print the logs for a container in a pod. kubectl log Print the logs for a container in a pod.
kubectl rollingupdate Perform a rolling update of the given ReplicationController kubectl rollingupdate Perform a rolling update of the given ReplicationController
kubectl resize Set a new size for a resizable resource (currently only Replication Controllers) kubectl resize Set a new size for a resizable resource (currently only Replication Controllers)
@ -430,7 +422,6 @@ Usage:
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--merge=false: merge together the full hierarchy of .kubeconfig files --merge=false: merge together the full hierarchy of .kubeconfig files
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -474,7 +465,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
--server=: server for the cluster entry in .kubeconfig --server=: server for the cluster entry in .kubeconfig
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -518,7 +508,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token=: token for the user entry in .kubeconfig --token=: token for the user entry in .kubeconfig
@ -562,7 +551,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace=: namespace for the context entry in .kubeconfig --namespace=: namespace for the context entry in .kubeconfig
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -606,7 +594,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -648,7 +635,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -687,7 +673,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -699,16 +684,10 @@ Usage:
``` ```
#### namespace #### namespace
Set and view the current Kubernetes namespace scope for command line requests. SUPERCEDED: Set and view the current Kubernetes namespace scope for command line requests.
A Kubernetes namespace subdivides the cluster into groups of logically related pods, services, and replication controllers. namespace has been superceded by the context.namespace field of .kubeconfig files. See 'kubectl config set-context --help' for more details.
Examples:
$ kubectl namespace
Using namespace default
$ kubectl namespace other
Set current namespace to other
Usage: Usage:
``` ```
@ -731,7 +710,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -774,7 +752,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -822,7 +799,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
--poll-interval="3s": Time delay between polling controller status after update. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". --poll-interval="3s": Time delay between polling controller status after update. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
@ -876,7 +852,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
--replicas=-1: The new number desired number of replicas. Required. --replicas=-1: The new number desired number of replicas. Required.
--resource-version="": Precondition for resource version. Requires that the current resource version match this value in order to resize --resource-version="": Precondition for resource version. Requires that the current resource version match this value in order to resize
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
@ -933,7 +908,6 @@ Usage:
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--no-headers=false: When using the default output, don't print headers --no-headers=false: When using the default output, don't print headers
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-o, --output="": Output format: json|yaml|template|templatefile -o, --output="": Output format: json|yaml|template|templatefile
--output-version="": Output the formatted object with the given version (default api-version) --output-version="": Output the formatted object with the given version (default api-version)
--overrides="": An inline JSON override for the generated object. If this is non-empty, it is parsed used to override the generated object. Requires that the object supply a valid apiVersion field. --overrides="": An inline JSON override for the generated object. If this is non-empty, it is parsed used to override the generated object. Requires that the object supply a valid apiVersion field.
@ -982,7 +956,6 @@ Usage:
--logtostderr=true: log to standard error instead of files --logtostderr=true: log to standard error instead of files
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-s, --server="": The address of the Kubernetes API server -s, --server="": The address of the Kubernetes API server
--stderrthreshold=2: logs at or above this threshold go to stderr --stderrthreshold=2: logs at or above this threshold go to stderr
--token="": Bearer token for authentication to the API server. --token="": Bearer token for authentication to the API server.
@ -1034,7 +1007,6 @@ Usage:
--match-server-version=false: Require server version to match client version --match-server-version=false: Require server version to match client version
--namespace="": If present, the namespace scope for this CLI request. --namespace="": If present, the namespace scope for this CLI request.
--no-headers=false: When using the default output, don't print headers --no-headers=false: When using the default output, don't print headers
--ns-path="": Path to the namespace info file that holds the namespace context to use for CLI requests.
-o, --output="": Output format: json|yaml|template|templatefile -o, --output="": Output format: json|yaml|template|templatefile
--output-version="": Output the formatted object with the given version (default api-version) --output-version="": Output the formatted object with the given version (default api-version)
--overrides="": An inline JSON override for the generated object. If this is non-empty, it is parsed used to override the generated object. Requires that the object supply a valid apiVersion field. --overrides="": An inline JSON override for the generated object. If this is non-empty, it is parsed used to override the generated object. Requires that the object supply a valid apiVersion field.

View File

@ -83,8 +83,6 @@ type Context struct {
AuthInfo string `json:"user"` AuthInfo string `json:"user"`
// Namespace is the default namespace to use on unspecified requests // Namespace is the default namespace to use on unspecified requests
Namespace string `json:"namespace,omitempty"` Namespace string `json:"namespace,omitempty"`
// NamespacePath is the path to a kubernetes ns file (~/.kubernetes_ns)
NamespacePath string `json:"namespace-path,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields // Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
Extensions map[string]runtime.EmbeddedObject `json:"extensions,omitempty"` Extensions map[string]runtime.EmbeddedObject `json:"extensions,omitempty"`
} }

View File

@ -83,8 +83,6 @@ type Context struct {
AuthInfo string `json:"user"` AuthInfo string `json:"user"`
// Namespace is the default namespace to use on unspecified requests // Namespace is the default namespace to use on unspecified requests
Namespace string `json:"namespace,omitempty"` Namespace string `json:"namespace,omitempty"`
// NamespacePath is the path to a kubernetes ns file (~/.kubernetes_ns)
NamespacePath string `json:"namespace-path,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields // Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
Extensions []NamedExtension `json:"extensions,omitempty"` Extensions []NamedExtension `json:"extensions,omitempty"`
} }

View File

@ -22,10 +22,10 @@ import (
"github.com/imdario/mergo" "github.com/imdario/mergo"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/client"
clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api" clientcmdapi "github.com/GoogleCloudPlatform/kubernetes/pkg/client/clientcmd/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth" "github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors" "github.com/GoogleCloudPlatform/kubernetes/pkg/util/errors"
) )
@ -241,25 +241,10 @@ func (config DirectClientConfig) Namespace() (string, error) {
configContext := config.getContext() configContext := config.getContext()
if len(configContext.Namespace) != 0 { if len(configContext.Namespace) == 0 {
return configContext.Namespace, nil return api.NamespaceDefault, nil
} }
return configContext.Namespace, nil
if len(configContext.NamespacePath) != 0 {
nsInfo, err := kubectl.LoadNamespaceInfo(configContext.NamespacePath)
if err != nil {
return "", err
}
return nsInfo.Namespace, nil
}
// if nothing was specified, try the default file
nsInfo, err := kubectl.LoadNamespaceInfo(os.Getenv("HOME") + "/.kubernetes_ns")
if err != nil {
return "", err
}
return nsInfo.Namespace, nil
} }
// ConfirmUsable looks a particular context and determines if that particular part of the config is useable. There might still be errors in the config, // ConfirmUsable looks a particular context and determines if that particular part of the config is useable. There might still be errors in the config,

View File

@ -56,7 +56,6 @@ type ContextOverrideFlags struct {
Namespace string Namespace string
// allow the potential for shorter namespace flags for commands that tend to work across namespaces // allow the potential for shorter namespace flags for commands that tend to work across namespaces
NamespaceShort string NamespaceShort string
NamespacePath string
} }
// ClusterOverride holds the flag names to be used for binding command line flags for Cluster objects // ClusterOverride holds the flag names to be used for binding command line flags for Cluster objects
@ -69,19 +68,18 @@ type ClusterOverrideFlags struct {
} }
const ( const (
FlagClusterName = "cluster" FlagClusterName = "cluster"
FlagAuthInfoName = "user" FlagAuthInfoName = "user"
FlagContext = "context" FlagContext = "context"
FlagNamespace = "namespace" FlagNamespace = "namespace"
FlagNamespacePath = "ns-path" FlagAPIServer = "server"
FlagAPIServer = "server" FlagAPIVersion = "api-version"
FlagAPIVersion = "api-version" FlagAuthPath = "auth-path"
FlagAuthPath = "auth-path" FlagInsecure = "insecure-skip-tls-verify"
FlagInsecure = "insecure-skip-tls-verify" FlagCertFile = "client-certificate"
FlagCertFile = "client-certificate" FlagKeyFile = "client-key"
FlagKeyFile = "client-key" FlagCAFile = "certificate-authority"
FlagCAFile = "certificate-authority" FlagBearerToken = "token"
FlagBearerToken = "token"
) )
// RecommendedAuthOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing // RecommendedAuthOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
@ -117,10 +115,9 @@ func RecommendedConfigOverrideFlags(prefix string) ConfigOverrideFlags {
// RecommendedContextOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing // RecommendedContextOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
func RecommendedContextOverrideFlags(prefix string) ContextOverrideFlags { func RecommendedContextOverrideFlags(prefix string) ContextOverrideFlags {
return ContextOverrideFlags{ return ContextOverrideFlags{
ClusterName: prefix + FlagClusterName, ClusterName: prefix + FlagClusterName,
AuthInfoName: prefix + FlagAuthInfoName, AuthInfoName: prefix + FlagAuthInfoName,
Namespace: prefix + FlagNamespace, Namespace: prefix + FlagNamespace,
NamespacePath: prefix + FlagNamespacePath,
} }
} }
@ -153,5 +150,4 @@ func BindContextFlags(contextInfo *clientcmdapi.Context, flags *pflag.FlagSet, f
flags.StringVar(&contextInfo.Cluster, flagNames.ClusterName, "", "The name of the kubeconfig cluster to use") flags.StringVar(&contextInfo.Cluster, flagNames.ClusterName, "", "The name of the kubeconfig cluster to use")
flags.StringVar(&contextInfo.AuthInfo, flagNames.AuthInfoName, "", "The name of the kubeconfig user to use") flags.StringVar(&contextInfo.AuthInfo, flagNames.AuthInfoName, "", "The name of the kubeconfig user to use")
flags.StringVarP(&contextInfo.Namespace, flagNames.Namespace, flagNames.NamespaceShort, "", "If present, the namespace scope for this CLI request.") flags.StringVarP(&contextInfo.Namespace, flagNames.Namespace, flagNames.NamespaceShort, "", "If present, the namespace scope for this CLI request.")
flags.StringVar(&contextInfo.NamespacePath, flagNames.NamespacePath, "", "Path to the namespace info file that holds the namespace context to use for CLI requests.")
} }

View File

@ -18,43 +18,24 @@ package cmd
import ( import (
"io" "io"
"os"
"fmt" "github.com/golang/glog"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
// TODO remove once people have been given enough time to notice
func NewCmdNamespace(out io.Writer) *cobra.Command { func NewCmdNamespace(out io.Writer) *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "namespace [<namespace>]", Use: "namespace [<namespace>]",
Short: "Set and view the current Kubernetes namespace", Short: "SUPERCEDED: Set and view the current Kubernetes namespace",
Long: `Set and view the current Kubernetes namespace scope for command line requests. Long: `SUPERCEDED: Set and view the current Kubernetes namespace scope for command line requests.
A Kubernetes namespace subdivides the cluster into groups of logically related pods, services, and replication controllers. namespace has been superceded by the context.namespace field of .kubeconfig files. See 'kubectl config set-context --help' for more details.
`,
Examples:
$ kubectl namespace
Using namespace default
$ kubectl namespace other
Set current namespace to other`,
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
nsPath := GetFlagString(cmd, "ns-path") glog.Errorln("namespace has been superceded by the context.namespace field of .kubeconfig files. See 'kubectl config set-context --help' for more details.")
var err error os.Exit(1)
var ns *kubectl.NamespaceInfo
switch len(args) {
case 0:
ns, err = kubectl.LoadNamespaceInfo(nsPath)
fmt.Printf("Using namespace %s\n", ns.Namespace)
case 1:
ns = &kubectl.NamespaceInfo{Namespace: args[0]}
err = kubectl.SaveNamespaceInfo(nsPath, ns)
fmt.Printf("Set current namespace to %s\n", ns.Namespace)
default:
usageError(cmd, "kubectl namespace [<namespace>]")
}
checkErr(err)
}, },
} }
return cmd return cmd