add k8s client

This commit is contained in:
richardxz
2018-05-21 13:57:27 +08:00
parent 942a4bf6e3
commit d4c39f115e
1237 changed files with 484467 additions and 0 deletions

View File

@@ -15,3 +15,56 @@ limitations under the License.
*/
package client
import (
"kubesphere.io/kubesphere/pkg/options"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"github.com/golang/glog"
)
var k8sClient *kubernetes.Clientset
func getKubeConfig() (kubeConfig *rest.Config, err error) {
kubeConfigFile := options.ServerOptions.GetKubeConfigFile()
if len(kubeConfigFile) > 0 {
kubeConfig, err = clientcmd.BuildConfigFromFlags("", kubeConfigFile)
if err != nil {
return nil, err
}
} else {
kubeConfig, err = rest.InClusterConfig()
if err != nil{
return nil, err
}
}
return kubeConfig, nil
}
func NewK8sClient() *kubernetes.Clientset {
if k8sClient != nil {
return k8sClient
}
kubeConfig, err := getKubeConfig()
if err != nil {
glog.Error(err)
panic(err)
}
k8sClient, err = kubernetes.NewForConfig(kubeConfig)
if err != nil{
glog.Error(err)
panic(err)
}
return k8sClient
}