I want to use Kubernetes Go client to execute various actions in a cluster.
I am loading my local kubeconfig
which contains multiple clusters and contexts. The default context is prod
and one of the config values I want to override is the CurrentContext
clientConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: "/Users/me/.kube/config"},
&clientcmd.ConfigOverrides{
CurrentContext: "stage",
})
rawConfig, _ := clientConfig.RawConfig()
log.Printf(rawConfig.CurrentContext) // outputs "prod" instead of "stage"
When I inspect RawConfig()
the current context is still "prod" instead of "stage".
Why does the config override not work?
Also how does the override for AuthInfo etc. work? The override accepts only a single AuthInfo
whereas the configuration contains a map of AuthInfo
etc.
GitHub related issue https://github.com/kubernetes/client-go/issues/735