forked from goodrain/rainbond
/
client.go
91 lines (75 loc) · 2.45 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package kube
import (
veleroversioned "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned"
wutongversioned "github.com/wutong-paas/wutong/pkg/generated/clientset/versioned"
wutongscheme "github.com/wutong-paas/wutong/pkg/generated/clientset/versioned/scheme"
apiext "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
controllerruntime "sigs.k8s.io/controller-runtime"
runtimeclient "sigs.k8s.io/controller-runtime/pkg/client"
)
var (
regionRESTConfig *rest.Config
regionClientset kubernetes.Interface
regionAPIExtClientset apiext.Interface
regionWutongClientset wutongversioned.Interface
regionVeleroClientset veleroversioned.Interface
regionDynamicClient dynamic.Interface
regionRuntimeClient runtimeclient.Client
)
func RegionRESTConfig() *rest.Config {
if regionRESTConfig == nil {
regionRESTConfig = controllerruntime.GetConfigOrDie()
}
return regionRESTConfig
}
func RegionClientset() kubernetes.Interface {
if regionClientset == nil {
regionClientset = kubernetes.NewForConfigOrDie(RegionRESTConfig())
}
return regionClientset
}
func RegionAPIExtClientset() apiext.Interface {
if regionAPIExtClientset == nil {
regionAPIExtClientset = apiext.NewForConfigOrDie(RegionRESTConfig())
}
return regionAPIExtClientset
}
func RegionWutongClientset() wutongversioned.Interface {
if regionWutongClientset == nil {
regionWutongClientset = wutongversioned.NewForConfigOrDie(RegionRESTConfig())
}
return regionWutongClientset
}
func RegionVeleroClientset() veleroversioned.Interface {
if regionVeleroClientset == nil {
regionVeleroClientset = veleroversioned.NewForConfigOrDie(RegionRESTConfig())
}
return regionVeleroClientset
}
func RegionDynamicClient() dynamic.Interface {
if regionDynamicClient == nil {
regionDynamicClient = dynamic.NewForConfigOrDie(RegionRESTConfig())
}
return regionDynamicClient
}
func RegionRuntimeClient() runtimeclient.Client {
if regionRuntimeClient == nil {
// k8s runtime client
scheme := runtime.NewScheme()
clientgoscheme.AddToScheme(scheme)
wutongscheme.AddToScheme(scheme)
var err error
regionRuntimeClient, err = runtimeclient.New(RegionRESTConfig(), runtimeclient.Options{
Scheme: scheme,
})
if err != nil {
panic("ERR: create k8s runtime client")
}
}
return regionRuntimeClient
}