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