/
client.go
61 lines (51 loc) · 1.57 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
package client
import (
"k8s.io/client-go/1.5/kubernetes"
v1batch "k8s.io/client-go/1.5/kubernetes/typed/batch/v1"
v1core "k8s.io/client-go/1.5/kubernetes/typed/core/v1"
v1beta1extensions "k8s.io/client-go/1.5/kubernetes/typed/extensions/v1beta1"
"k8s.io/client-go/1.5/rest"
)
type ClientInterface interface {
Pods(string) v1core.PodInterface
Jobs(string) v1batch.JobInterface
Endpoints(string) v1core.EndpointsInterface
DaemonSets(string) v1beta1extensions.DaemonSetInterface
Services(string) v1core.ServiceInterface
}
type Client struct {
*kubernetes.Clientset
}
func (c Client) Pods(namespace string) v1core.PodInterface {
return c.Clientset.Core().Pods(namespace)
}
func (c Client) Jobs(namespace string) v1batch.JobInterface {
return c.Clientset.Batch().Jobs(namespace)
}
func (c Client) Endpoints(namespace string) v1core.EndpointsInterface {
return c.Clientset.Core().Endpoints(namespace)
}
func (c Client) DaemonSets(namespace string) v1beta1extensions.DaemonSetInterface {
return c.Clientset.Extensions().DaemonSets(namespace)
}
func (c Client) Services(namespace string) v1core.ServiceInterface {
return c.Clientset.Core().Services(namespace)
}
func New(config *rest.Config) (ClientInterface, error) {
if config == nil {
config, err := rest.InClusterConfig()
if err != nil {
return nil, err
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
return nil, err
}
return Client{Clientset: clientset}, nil
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
return nil, err
}
return Client{Clientset: clientset}, nil
}