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  }