5
votes

I'm using rke to generate a Kubernetes cluster in a private cloud. It produces a kube_config_cluster.yml file. Is there a way to add this config to my $HOME/.kube/config file?

Without having the .kube/config set, when using kubectl, I have to pass the argument:

kubectl --kubeconfig kube_config_cluster.yml <command>

Or set the KUBECONFIG environment variable.

export KUBECONFIG=kube_config_cluster.yml
3
Look at the subcommands under kubectl config- they let you manipulate and switch between clusters and contexts (cluster + namespace + auth).Jonah Benton

3 Answers

8
votes

kubectl config merge command is not yet available. But you can achieve a config merge by running:

Command format:

KUBECONFIG=config1:config2 kubectl config view --flatten

Example:

Merge a config to ~/.kube/config and write back to ~/.kube/config-new.yaml.

Do not pipe directly to the config file! Otherwise, it will delete all your old content!

KUBECONFIG=~/.kube/config:/path/to/another/config.yml kubectl config view --flatten > ~/.kube/config-new.yaml

cp ~/.kube/config-new.yaml ~/.kube/config

2
votes

If kubectl can read that as a valid config file, you can just use that as your kubeconfig. So cp kube_config_cluster.yaml $HOME/.kube/config should work fine. From there it'll read that config file by default and you won't have to specify it.

-1
votes

I generally use the below commands to see and change context, not too cluttered and easy to fire

 
kubectl config current-context #show the current context in use
kubectl config use-context context-name-you-want-to-use