Help us shape the future of Go! Take the 2026 Go Developer Survey

service

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 20, 2020 License: Apache-2.0 Imports: 20 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RedisClusterCheck

type RedisClusterCheck interface {
	CheckRedisNumber(redisCluster *redisv1beta1.RedisCluster) error
	CheckSentinelNumber(redisCluster *redisv1beta1.RedisCluster) error
	CheckSentinelReadyReplicas(redisCluster *redisv1beta1.RedisCluster) error
	CheckAllSlavesFromMaster(master string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	CheckSentinelNumberInMemory(sentinel string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	CheckSentinelSlavesNumberInMemory(sentinel string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	CheckSentinelMonitor(sentinel string, monitor string, auth *util.AuthConfig) error
	GetMasterIP(redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) (string, error)
	GetNumberMasters(redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) (int, error)
	GetRedisesIPs(redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) ([]string, error)
	GetSentinelsIPs(redisCluster *redisv1beta1.RedisCluster) ([]string, error)
	GetMinimumRedisPodTime(redisCluster *redisv1beta1.RedisCluster) (time.Duration, error)
	CheckRedisConfig(redisCluster *redisv1beta1.RedisCluster, addr string, auth *util.AuthConfig) error
}

RedisClusterCheck defines the intercace able to check the correct status of a redis cluster

type RedisClusterChecker

type RedisClusterChecker struct {
	// contains filtered or unexported fields
}

RedisClusterChecker is our implementation of RedisClusterCheck intercace

func NewRedisClusterChecker

func NewRedisClusterChecker(k8sService k8s.Services, redisClient redis.Client, logger logr.Logger) *RedisClusterChecker

NewRedisClusterChecker creates an object of the RedisClusterChecker struct

func (*RedisClusterChecker) CheckAllSlavesFromMaster

func (r *RedisClusterChecker) CheckAllSlavesFromMaster(master string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

CheckAllSlavesFromMaster controls that all slaves have the same master (the real one)

func (*RedisClusterChecker) CheckRedisConfig

func (r *RedisClusterChecker) CheckRedisConfig(redisCluster *redisv1beta1.RedisCluster, addr string, auth *util.AuthConfig) error

CheckRedisConfig check current redis config is same as custom config

func (*RedisClusterChecker) CheckRedisNumber

func (r *RedisClusterChecker) CheckRedisNumber(rc *redisv1beta1.RedisCluster) error

CheckRedisNumber controls that the number of deployed redis is the same than the requested on the spec

func (*RedisClusterChecker) CheckSentinelMonitor

func (r *RedisClusterChecker) CheckSentinelMonitor(sentinel string, monitor string, auth *util.AuthConfig) error

CheckSentinelMonitor controls if the sentinels are monitoring the expected master

func (*RedisClusterChecker) CheckSentinelNumber

func (r *RedisClusterChecker) CheckSentinelNumber(rc *redisv1beta1.RedisCluster) error

CheckSentinelNumber controls that the number of deployed sentinel is the same than the requested on the spec

func (*RedisClusterChecker) CheckSentinelNumberInMemory

func (r *RedisClusterChecker) CheckSentinelNumberInMemory(sentinel string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

CheckSentinelNumberInMemory controls that sentinels have only the living sentinels on its memory.

func (*RedisClusterChecker) CheckSentinelReadyReplicas

func (r *RedisClusterChecker) CheckSentinelReadyReplicas(rc *redisv1beta1.RedisCluster) error

CheckSentinelReadyReplicas controls that the number of deployed sentinel ready pod is the same than the requested on the spec

func (*RedisClusterChecker) CheckSentinelSlavesNumberInMemory

func (r *RedisClusterChecker) CheckSentinelSlavesNumberInMemory(sentinel string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

CheckSentinelSlavesNumberInMemory controls that sentinels have only the spected slaves number.

func (*RedisClusterChecker) GetMasterIP

GetMasterIP connects to all redis and returns the master of the redis cluster

func (*RedisClusterChecker) GetMinimumRedisPodTime

func (r *RedisClusterChecker) GetMinimumRedisPodTime(rc *redisv1beta1.RedisCluster) (time.Duration, error)

GetMinimumRedisPodTime returns the minimum time a pod is alive

func (*RedisClusterChecker) GetNumberMasters

func (r *RedisClusterChecker) GetNumberMasters(rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) (int, error)

GetNumberMasters returns the number of redis nodes that are working as a master

func (*RedisClusterChecker) GetRedisesIPs

func (r *RedisClusterChecker) GetRedisesIPs(rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) ([]string, error)

GetRedisesIPs returns the IPs of the Redis nodes

func (*RedisClusterChecker) GetSentinelsIPs

func (r *RedisClusterChecker) GetSentinelsIPs(rc *redisv1beta1.RedisCluster) ([]string, error)

GetSentinelsIPs returns the IPs of the Sentinel nodes

type RedisClusterClient

type RedisClusterClient interface {
	EnsureSentinelService(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureSentinelHeadlessService(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureSentinelConfigMap(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureSentinelProbeConfigMap(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureSentinelStatefulset(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureRedisStatefulset(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureRedisService(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureRedisShutdownConfigMap(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureRedisConfigMap(redisCluster *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error
	EnsureNotPresentRedisService(redisCluster *redisv1beta1.RedisCluster) error
}

RedisClusterClient has the minimumm methods that a Redis cluster controller needs to satisfy in order to talk with K8s

type RedisClusterHeal

type RedisClusterHeal interface {
	MakeMaster(ip string, auth *util.AuthConfig) error
	SetOldestAsMaster(redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	SetMasterOnAll(masterIP string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	NewSentinelMonitor(ip string, monitor string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	RestoreSentinel(ip string, auth *util.AuthConfig) error
	SetSentinelCustomConfig(ip string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
	SetRedisCustomConfig(ip string, redisCluster *redisv1beta1.RedisCluster, auth *util.AuthConfig) error
}

RedisClusterHeal defines the intercace able to fix the problems on the redis clusters

type RedisClusterHealer

type RedisClusterHealer struct {
	// contains filtered or unexported fields
}

RedisClusterHealer is our implementation of RedisClusterCheck intercace

func NewRedisClusterHealer

func NewRedisClusterHealer(k8sService k8s.Services, redisClient redis.Client, logger logr.Logger) *RedisClusterHealer

NewRedisClusterHealer creates an object of the RedisClusterChecker struct

func (*RedisClusterHealer) MakeMaster

func (r *RedisClusterHealer) MakeMaster(ip string, auth *util.AuthConfig) error

func (*RedisClusterHealer) NewSentinelMonitor

func (r *RedisClusterHealer) NewSentinelMonitor(ip string, monitor string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

NewSentinelMonitor changes the master that Sentinel has to monitor

func (*RedisClusterHealer) RestoreSentinel

func (r *RedisClusterHealer) RestoreSentinel(ip string, auth *util.AuthConfig) error

RestoreSentinel clear the number of sentinels on memory

func (*RedisClusterHealer) SetMasterOnAll

func (r *RedisClusterHealer) SetMasterOnAll(masterIP string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

SetMasterOnAll puts all redis nodes as a slave of a given master

func (*RedisClusterHealer) SetOldestAsMaster

func (r *RedisClusterHealer) SetOldestAsMaster(rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

SetOldestAsMaster puts all redis to the same master, choosen by order of appearance

func (*RedisClusterHealer) SetRedisCustomConfig

func (r *RedisClusterHealer) SetRedisCustomConfig(ip string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

SetRedisCustomConfig will call redis to set the configuration given in config

func (*RedisClusterHealer) SetSentinelCustomConfig

func (r *RedisClusterHealer) SetSentinelCustomConfig(ip string, rc *redisv1beta1.RedisCluster, auth *util.AuthConfig) error

SetSentinelCustomConfig will call sentinel to set the configuration given in config

type RedisClusterKubeClient

type RedisClusterKubeClient struct {
	K8SService k8s.Services
	// contains filtered or unexported fields
}

RedisClusterKubeClient implements the required methods to talk with kubernetes

func NewRedisClusterKubeClient

func NewRedisClusterKubeClient(k8sService k8s.Services, logger logr.Logger) *RedisClusterKubeClient

NewRedisClusterKubeClient creates a new RedisClusterKubeClient

func (*RedisClusterKubeClient) EnsureNotPresentRedisService

func (r *RedisClusterKubeClient) EnsureNotPresentRedisService(rc *redisv1beta1.RedisCluster) error

EnsureNotPresentRedisService makes sure the redis service is not present

func (*RedisClusterKubeClient) EnsureRedisConfigMap

func (r *RedisClusterKubeClient) EnsureRedisConfigMap(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureRedisConfigMap makes sure the sentinel configmap exists

func (*RedisClusterKubeClient) EnsureRedisService

func (r *RedisClusterKubeClient) EnsureRedisService(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureRedisService makes sure the redis statefulset exists

func (*RedisClusterKubeClient) EnsureRedisShutdownConfigMap

func (r *RedisClusterKubeClient) EnsureRedisShutdownConfigMap(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureRedisShutdownConfigMap makes sure the redis configmap with shutdown script exists

func (*RedisClusterKubeClient) EnsureRedisStatefulset

func (r *RedisClusterKubeClient) EnsureRedisStatefulset(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureRedisStatefulset makes sure the redis statefulset exists in the desired state

func (*RedisClusterKubeClient) EnsureSentinelConfigMap

func (r *RedisClusterKubeClient) EnsureSentinelConfigMap(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureSentinelConfigMap makes sure the sentinel configmap exists

func (*RedisClusterKubeClient) EnsureSentinelHeadlessService

func (r *RedisClusterKubeClient) EnsureSentinelHeadlessService(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureSentinelHeadlessService makes sure the sentinel headless service exists

func (*RedisClusterKubeClient) EnsureSentinelProbeConfigMap

func (r *RedisClusterKubeClient) EnsureSentinelProbeConfigMap(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureSentinelConfigMap makes sure the sentinel configmap exists

func (*RedisClusterKubeClient) EnsureSentinelService

func (r *RedisClusterKubeClient) EnsureSentinelService(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureSentinelService makes sure the sentinel service exists

func (*RedisClusterKubeClient) EnsureSentinelStatefulset

func (r *RedisClusterKubeClient) EnsureSentinelStatefulset(rc *redisv1beta1.RedisCluster, labels map[string]string, ownerRefs []metav1.OwnerReference) error

EnsureSentinelStatefulset makes sure the sentinel deployment exists in the desired state

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL