k8s.io/client-go/tools/clientcmd package
Kubernets configuration is stored in
~/.kube/config file
clientcmd package reads this file
/home/username/.kube/config and converts to
*rest.Config so that We can use it in our program to
connect to Kubernetes cluster.
$ cat /home/username/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ..
server: https://127.0.0.1:6443 <<<<<< API server running here
name: docker-desktop
contexts:
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
current-context: docker-desktop
kind: Config
preferences: {}
users:
- name: docker-desktop
user:
client-certificate-data: ..
function — BuildConfigFromFlags()
func BuildConfigFromFlags(masterUrl, kubeconfigPath string) (*rest.Config, error)
// kubeconfigPath: path to the config file. Pass "" use the default (~/.kube/config)
// masterUrl — override the API server URL. "" to use whatever the kubeconfig says (normal case).
Returns *rest.Config or an error if the file is missing