forked from spotahome/redis-operator
-
Notifications
You must be signed in to change notification settings - Fork 1
/
k8s.go
52 lines (47 loc) · 1.37 KB
/
k8s.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
package k8s
import (
apiextensionscli "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/client-go/kubernetes"
redisfailoverclientset "github.com/spotahome/redis-operator/client/k8s/clientset/versioned"
"github.com/spotahome/redis-operator/log"
)
// Service is the K8s service entrypoint.
type Services interface {
CRD
ConfigMap
Secret
Pod
PodDisruptionBudget
RedisFailover
Service
RBAC
Deployment
StatefulSet
}
type services struct {
CRD
ConfigMap
Secret
Pod
PodDisruptionBudget
RedisFailover
Service
RBAC
Deployment
StatefulSet
}
// New returns a new Kubernetes service.
func New(kubecli kubernetes.Interface, crdcli redisfailoverclientset.Interface, apiextcli apiextensionscli.Interface, logger log.Logger) Services {
return &services{
CRD: NewCRDService(apiextcli, logger),
ConfigMap: NewConfigMapService(kubecli, logger),
Secret: NewSecretService(kubecli, logger),
Pod: NewPodService(kubecli, logger),
PodDisruptionBudget: NewPodDisruptionBudgetService(kubecli, logger),
RedisFailover: NewRedisFailoverService(crdcli, logger),
Service: NewServiceService(kubecli, logger),
RBAC: NewRBACService(kubecli, logger),
Deployment: NewDeploymentService(kubecli, logger),
StatefulSet: NewStatefulSetService(kubecli, logger),
}
}