k8sutils

package
v0.0.0-...-b7d428b Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2023 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RedisFinalizer            string = "redisFinalizer"
	RedisClusterFinalizer     string = "redisClusterFinalizer"
	RedisReplicationFinalizer string = "redisReplicationFinalizer"
	RedisSentinelFinalizer    string = "redisSentinelFinalizer"
)
View Source
const (
	AnnotationKeyRecreateStatefulset = "redis.opstreelabs.in/recreate-statefulset"
)

Variables

This section is empty.

Functions

func AddOwnerRefToObject

func AddOwnerRefToObject(obj metav1.Object, ownerRef metav1.OwnerReference)

AddOwnerRefToObject adds the owner references to object

func AddRedisClusterFinalizer

func AddRedisClusterFinalizer(cr *redisv1beta2.RedisCluster, cl client.Client) error

AddRedisClusterFinalizer add finalizer for graceful deletion

func AddRedisFinalizer

func AddRedisFinalizer(cr *redisv1beta2.Redis, cl client.Client) error

AddRedisFinalizer add finalizer for graceful deletion

func AddRedisNodeToCluster

func AddRedisNodeToCluster(cr *redisv1beta2.RedisCluster)

Add redis cluster node would add a node to the existing redis cluster using redis-cli

func AddRedisReplicationFinalizer

func AddRedisReplicationFinalizer(cr *redisv1beta2.RedisReplication, cl client.Client) error

AddRedisReplicationFinalizer add finalizer for graceful deletion

func AddRedisSentinelFinalizer

func AddRedisSentinelFinalizer(cr *redisv1beta2.RedisSentinel, cl client.Client) error

AddRedisSentinelFinalizer add finalizer for graceful deletion

func CheckIfEmptyMasters

func CheckIfEmptyMasters(cr *redisv1beta2.RedisCluster)

func CheckRedisClusterState

func CheckRedisClusterState(cr *redisv1beta2.RedisCluster) int

CheckRedisClusterState will check the redis cluster state

func CheckRedisNodeCount

func CheckRedisNodeCount(cr *redisv1beta2.RedisCluster, nodeType string) int32

CheckRedisNodeCount will check the count of redis nodes

func ClusterFailover

func ClusterFailover(cr *redisv1beta2.RedisCluster)

func CreateMasterSlaveReplication

func CreateMasterSlaveReplication(cr *redisv1beta2.RedisReplication, masterPods []string, slavePods []string) error

func CreateMultipleLeaderRedisCommand

func CreateMultipleLeaderRedisCommand(cr *redisv1beta2.RedisCluster) []string

CreateMultipleLeaderRedisCommand will create command for single leader cluster creation

func CreateOrUpdatePodDisruptionBudget

func CreateOrUpdatePodDisruptionBudget(pdbDef *policyv1.PodDisruptionBudget) error

CreateOrUpdateService method will create or update Redis service

func CreateOrUpdateService

func CreateOrUpdateService(namespace string, serviceMeta metav1.ObjectMeta, ownerDef metav1.OwnerReference, enableMetrics, headless bool, serviceType string) error

CreateOrUpdateService method will create or update Redis service

func CreateOrUpdateStateFul

func CreateOrUpdateStateFul(namespace string, stsMeta metav1.ObjectMeta, params statefulSetParameters, ownerDef metav1.OwnerReference, initcontainerParams initContainerParameters, containerParams containerParameters, sidecars *[]redisv1beta2.Sidecar) error

CreateOrUpdateStateFul method will create or update Redis service

func CreateRedisFollower

func CreateRedisFollower(cr *redisv1beta2.RedisCluster) error

CreateRedisFollower will create a follower redis setup

func CreateRedisFollowerService

func CreateRedisFollowerService(cr *redisv1beta2.RedisCluster) error

CreateRedisFollowerService method will create service for Redis Follower

func CreateRedisLeader

func CreateRedisLeader(cr *redisv1beta2.RedisCluster) error

CreateRedisLeader will create a leader redis setup

func CreateRedisLeaderService

func CreateRedisLeaderService(cr *redisv1beta2.RedisCluster) error

CreateRedisLeaderService method will create service for Redis Leader

func CreateRedisSentinel

func CreateRedisSentinel(cr *redisv1beta2.RedisSentinel) error

Redis Sentinel Create the Redis Sentinel Setup

func CreateRedisSentinelService

func CreateRedisSentinelService(cr *redisv1beta2.RedisSentinel) error

Create RedisSentinel Service

func CreateReplicationRedis

func CreateReplicationRedis(cr *redisv1beta2.RedisReplication) error

CreateReplicationRedis will create a replication redis setup

func CreateReplicationService

func CreateReplicationService(cr *redisv1beta2.RedisReplication) error

CreateReplicationService method will create replication service for Redis

func CreateSingleLeaderRedisCommand

func CreateSingleLeaderRedisCommand(cr *redisv1beta2.RedisCluster) []string

CreateSingleLeaderRedisCommand will create command for single leader cluster creation

func CreateStandaloneRedis

func CreateStandaloneRedis(cr *redisv1beta2.Redis) error

CreateStandaloneRedis will create a standalone redis setup

func CreateStandaloneService

func CreateStandaloneService(cr *redisv1beta2.Redis) error

CreateStandaloneService method will create standalone service for Redis

func ExecuteFailoverOperation

func ExecuteFailoverOperation(cr *redisv1beta2.RedisCluster) error

ExecuteFailoverOperation will execute redis failover operations

func ExecuteRedisClusterCommand

func ExecuteRedisClusterCommand(cr *redisv1beta2.RedisCluster)

ExecuteRedisClusterCommand will execute redis cluster creation command

func ExecuteRedisReplicationCommand

func ExecuteRedisReplicationCommand(cr *redisv1beta2.RedisCluster)

ExecuteRedisReplicationCommand will execute the replication command

func GenerateTLSEnvironmentVariables

func GenerateTLSEnvironmentVariables(tlsconfig *redisv1beta2.TLSConfig) []corev1.EnvVar

func GetPodDisruptionBudget

func GetPodDisruptionBudget(namespace string, pdb string) (*policyv1.PodDisruptionBudget, error)

GetPodDisruptionBudget is a method to get PodDisruptionBudgets in Kubernetes

func GetRedisNodesByRole

func GetRedisNodesByRole(cr *redisv1beta2.RedisReplication, redisRole string) []string

Get Redis nodes by it's role i.e. master, slave and sentinel

func GetStatefulSet

func GetStatefulSet(namespace string, stateful string) (*appsv1.StatefulSet, error)

GetStateFulSet is a method to get statefulset in Kubernetes

func HandleRedisClusterFinalizer

func HandleRedisClusterFinalizer(cr *redisv1beta2.RedisCluster, cl client.Client) error

HandleRedisClusterFinalizer finalize resource if instance is marked to be deleted

func HandleRedisFinalizer

func HandleRedisFinalizer(cr *redisv1beta2.Redis, cl client.Client) error

HandleRedisFinalizer finalize resource if instance is marked to be deleted

func HandleRedisReplicationFinalizer

func HandleRedisReplicationFinalizer(cr *redisv1beta2.RedisReplication, cl client.Client) error

Handle RedisReplicationFinalizer finalize resource if instance is marked to be deleted

func HandleRedisSentinelFinalizer

func HandleRedisSentinelFinalizer(cr *redisv1beta2.RedisSentinel, cl client.Client) error

HandleRedisSentinelFinalizer finalize resource if instance is marked to be deleted

func LabelSelectors

func LabelSelectors(labels map[string]string) *metav1.LabelSelector

LabelSelectors generates object for label selection

func RebalanceRedisCluster

func RebalanceRedisCluster(cr *redisv1beta2.RedisCluster)

Rebalance Redis Cluster Would Rebalance the Redis Cluster without using the empty masters

func RebalanceRedisClusterEmptyMasters

func RebalanceRedisClusterEmptyMasters(cr *redisv1beta2.RedisCluster)

Rebalance the Redis CLuster using the Empty Master Nodes

func ReconcileRedisPodDisruptionBudget

func ReconcileRedisPodDisruptionBudget(cr *redisv1beta2.RedisCluster, role string, pdbParams *commonapi.RedisPodDisruptionBudget) error

CreateRedisLeaderPodDisruptionBudget check and create a PodDisruptionBudget for Leaders

func ReconcileSentinelPodDisruptionBudget

func ReconcileSentinelPodDisruptionBudget(cr *redisv1beta2.RedisSentinel, pdbParams *commonapi.RedisPodDisruptionBudget) error

func RemoveRedisFollowerNodesFromCluster

func RemoveRedisFollowerNodesFromCluster(cr *redisv1beta2.RedisCluster)

Remove redis follower node would remove all follower nodes of last leader node using redis-cli

func RemoveRedisNodeFromCluster

func RemoveRedisNodeFromCluster(cr *redisv1beta2.RedisCluster)

Remove redis cluster node would remove last node to the existing redis cluster using redis-cli

func ReshardRedisCluster

func ReshardRedisCluster(cr *redisv1beta2.RedisCluster)

Reshard the redis Cluster

func UpdateRedisClusterStatus

func UpdateRedisClusterStatus(cr *redisv1beta2.RedisCluster, status status.RedisClusterState, resaon string, readyLeaderReplicas, readyFollowerReplicas int32) error

UpdateRedisClusterStatus will update the status of the RedisCluster

func VerifyLeaderPod

func VerifyLeaderPod(cr *redisv1beta2.RedisCluster) bool

verifyLeaderPod return true if the pod is leader/master

Types

type RedisClusterSTS

type RedisClusterSTS struct {
	RedisStateFulType             string
	ExternalConfig                *string
	SecurityContext               *corev1.SecurityContext
	Affinity                      *corev1.Affinity `json:"affinity,omitempty"`
	TerminationGracePeriodSeconds *int64           `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
	ReadinessProbe                *commonapi.Probe
	LivenessProbe                 *commonapi.Probe
	NodeSelector                  map[string]string
	Tolerations                   *[]corev1.Toleration
}

RedisClusterSTS is a interface to call Redis Statefulset function

func (RedisClusterSTS) CreateRedisClusterSetup

func (service RedisClusterSTS) CreateRedisClusterSetup(cr *redisv1beta2.RedisCluster) error

CreateRedisClusterSetup will create Redis Setup for leader and follower

type RedisClusterService

type RedisClusterService struct {
	RedisServiceRole string
}

RedisClusterService is a interface to call Redis Service function

func (RedisClusterService) CreateRedisClusterService

func (service RedisClusterService) CreateRedisClusterService(cr *redisv1beta2.RedisCluster) error

CreateRedisClusterService method will create service for Redis

type RedisDetails

type RedisDetails struct {
	PodName   string
	Namespace string
}

RedisDetails will hold the information for Redis Pod

type RedisReplicationObject

type RedisReplicationObject struct {
	RedisReplication *redisv1beta2.RedisReplication
}

type RedisSentinelSTS

type RedisSentinelSTS struct {
	RedisStateFulType             string
	ExternalConfig                *string
	Affinity                      *corev1.Affinity `json:"affinity,omitempty"`
	TerminationGracePeriodSeconds *int64           `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`
	ReadinessProbe                *commonapi.Probe
	LivenessProbe                 *commonapi.Probe
}

RedisSentinelSTS is a interface to call Redis Statefulset function

func (RedisSentinelSTS) CreateRedisSentinelSetup

func (service RedisSentinelSTS) CreateRedisSentinelSetup(cr *redisv1beta2.RedisSentinel) error

Create Redis Sentinel Cluster Setup

type RedisSentinelService

type RedisSentinelService struct {
	RedisServiceRole string
}

RedisSentinelService is a interface to call Redis Service function

func (RedisSentinelService) CreateRedisSentinelService

func (service RedisSentinelService) CreateRedisSentinelService(cr *redisv1beta2.RedisSentinel) error

Create the Service for redis sentinel

Jump to

Keyboard shortcuts

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