feat: registry.
This commit is contained in:
43
registry/kubernetes/client_creator.go
Normal file
43
registry/kubernetes/client_creator.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package kubernetes
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
|
||||
"github.com/go-kratos/kratos/v2/log"
|
||||
|
||||
k8s "k8s.io/client-go/kubernetes"
|
||||
k8sRest "k8s.io/client-go/rest"
|
||||
k8sTools "k8s.io/client-go/tools/clientcmd"
|
||||
k8sUtil "k8s.io/client-go/util/homedir"
|
||||
|
||||
conf "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1"
|
||||
)
|
||||
|
||||
// NewRegistry 创建一个注册发现客户端 - Kubernetes
|
||||
func NewRegistry(cfg *conf.Registry) *Registry {
|
||||
if cfg == nil || cfg.Kubernetes == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
restConfig, err := k8sRest.InClusterConfig()
|
||||
if err != nil {
|
||||
home := k8sUtil.HomeDir()
|
||||
kubeConfig := filepath.Join(home, ".kube", "config")
|
||||
restConfig, err = k8sTools.BuildConfigFromFlags("", kubeConfig)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
clientSet, err := k8s.NewForConfig(restConfig)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
var namespace string
|
||||
reg := New(clientSet, namespace)
|
||||
|
||||
return reg
|
||||
}
|
||||
Reference in New Issue
Block a user