github.com/spotahome/redis-operator@v1.2.4/service/k8s/k8s.go (about) 1 package k8s 2 3 import ( 4 apiextensionscli "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" 5 "k8s.io/client-go/kubernetes" 6 7 redisfailoverclientset "github.com/spotahome/redis-operator/client/k8s/clientset/versioned" 8 "github.com/spotahome/redis-operator/log" 9 "github.com/spotahome/redis-operator/metrics" 10 ) 11 12 // Service is the K8s service entrypoint. 13 type Services interface { 14 ConfigMap 15 Secret 16 Pod 17 PodDisruptionBudget 18 RedisFailover 19 Service 20 RBAC 21 Deployment 22 StatefulSet 23 } 24 25 type services struct { 26 ConfigMap 27 Secret 28 Pod 29 PodDisruptionBudget 30 RedisFailover 31 Service 32 RBAC 33 Deployment 34 StatefulSet 35 } 36 37 // New returns a new Kubernetes service. 38 func New(kubecli kubernetes.Interface, crdcli redisfailoverclientset.Interface, apiextcli apiextensionscli.Interface, logger log.Logger, metricsRecorder metrics.Recorder) Services { 39 return &services{ 40 ConfigMap: NewConfigMapService(kubecli, logger, metricsRecorder), 41 Secret: NewSecretService(kubecli, logger, metricsRecorder), 42 Pod: NewPodService(kubecli, logger, metricsRecorder), 43 PodDisruptionBudget: NewPodDisruptionBudgetService(kubecli, logger, metricsRecorder), 44 RedisFailover: NewRedisFailoverService(crdcli, logger, metricsRecorder), 45 Service: NewServiceService(kubecli, logger, metricsRecorder), 46 RBAC: NewRBACService(kubecli, logger, metricsRecorder), 47 Deployment: NewDeploymentService(kubecli, logger, metricsRecorder), 48 StatefulSet: NewStatefulSetService(kubecli, logger, metricsRecorder), 49 } 50 }