package kube
import (
"k8s.io/client-go/tools/clientcmd"
"ascend-common/api/ascend-operator/client/clientset/versioned"
"ascend-common/common-utils/hwlog"
)
var operatorClient *OperatorClient
type OperatorClient struct {
ClientSet *versioned.Clientset
}
func InitOperatorClient() (*OperatorClient, error) {
var err error
if operatorClient == nil || operatorClient.ClientSet == nil {
operatorClient, err = newOperatorClient()
}
return operatorClient, err
}
func GetOperatorClient() *OperatorClient {
return operatorClient
}
func newOperatorClient() (*OperatorClient, error) {
clientCfg, err := clientcmd.BuildConfigFromFlags("", "")
if err != nil {
hwlog.RunLog.Errorf("build operator client config err: %v", err)
return nil, err
}
client, err := versioned.NewForConfig(clientCfg)
if err != nil {
hwlog.RunLog.Errorf("get operator client err: %v", err)
return nil, err
}
return &OperatorClient{
ClientSet: client,
}, nil
}