github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/cloud/pkg/devicecontroller/utils/kubeclient.go (about)

     1  package utils
     2  
     3  import (
     4  	"k8s.io/client-go/kubernetes"
     5  	"k8s.io/client-go/rest"
     6  	"k8s.io/client-go/tools/clientcmd"
     7  	"k8s.io/klog"
     8  
     9  	"github.com/kubeedge/kubeedge/cloud/pkg/devicecontroller/config"
    10  )
    11  
    12  // KubeClient from config
    13  func KubeClient() (*kubernetes.Clientset, error) {
    14  	kubeConfig, err := KubeConfig()
    15  	if err != nil {
    16  		klog.Warningf("Get kube config failed with error: %s", err)
    17  		return nil, err
    18  	}
    19  	return kubernetes.NewForConfig(kubeConfig)
    20  }
    21  
    22  // KubeConfig from flags
    23  func KubeConfig() (conf *rest.Config, err error) {
    24  	kubeConfig, err := clientcmd.BuildConfigFromFlags(config.Config.KubeAPIConfig.Master, config.Config.KubeAPIConfig.KubeConfig)
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	kubeConfig.QPS = float32(config.Config.KubeAPIConfig.QPS)
    29  	kubeConfig.Burst = int(config.Config.KubeAPIConfig.Burst)
    30  	kubeConfig.ContentType = config.Config.KubeAPIConfig.ContentType
    31  
    32  	return kubeConfig, err
    33  }