@@ -2,16 +2,13 @@ package k8sutils
22
33import (
44 "context"
5- "fmt"
65 "strconv"
76 "strings"
87
98 common "github.com/OT-CONTAINER-KIT/redis-operator/api/common/v1beta2"
109 rcvb2 "github.com/OT-CONTAINER-KIT/redis-operator/api/rediscluster/v1beta2"
11- "github.com/OT-CONTAINER-KIT/redis-operator/internal/image"
1210 "github.com/OT-CONTAINER-KIT/redis-operator/internal/util"
1311 corev1 "k8s.io/api/core/v1"
14- "k8s.io/apimachinery/pkg/api/resource"
1512 "k8s.io/apimachinery/pkg/util/intstr"
1613 "k8s.io/client-go/kubernetes"
1714 "k8s.io/utils/ptr"
@@ -288,15 +285,10 @@ func (service RedisClusterSTS) CreateRedisClusterSetup(ctx context.Context, cr *
288285 annotations := generateStatefulSetsAnots (cr .ObjectMeta , cr .Spec .KubernetesConfig .IgnoreAnnotations )
289286 objectMetaInfo := generateObjectMetaInformation (stateFulName , cr .Namespace , labels , annotations )
290287
291- // Prepare sidecars: combine user-defined sidecars with automatic role detector
292288 sidecars := []common.Sidecar {}
293289 if cr .Spec .Sidecars != nil {
294290 sidecars = append (sidecars , * cr .Spec .Sidecars ... )
295291 }
296- // Always add Redis agent sidecar for Redis Cluster
297- redisAgentSidecar := generateAgentSidecar (cr )
298- sidecars = append (sidecars , redisAgentSidecar )
299-
300292 err := CreateOrUpdateStateFul (
301293 ctx ,
302294 cl ,
@@ -404,82 +396,3 @@ func (service RedisClusterService) createOrUpdateClusterNodePortService(ctx cont
404396 }
405397 return nil
406398}
407-
408- // generateAgentSidecar creates a Redis agent sidecar configuration for Redis Cluster
409- // The agent currently performs role detection and may be extended with additional functionality in the future
410- func generateAgentSidecar (cr * rcvb2.RedisCluster ) common.Sidecar {
411- operatorImage , _ := util .CoalesceEnv ("OPERATOR_IMAGE" , image .GetOperatorImage ())
412- redisPort := "6379"
413- if cr .Spec .Port != nil {
414- redisPort = fmt .Sprintf ("%d" , * cr .Spec .Port )
415- }
416- envVars := []corev1.EnvVar {
417- {
418- Name : "POD_NAME" ,
419- ValueFrom : & corev1.EnvVarSource {
420- FieldRef : & corev1.ObjectFieldSelector {
421- FieldPath : "metadata.name" ,
422- },
423- },
424- },
425- {
426- Name : "POD_NAMESPACE" ,
427- ValueFrom : & corev1.EnvVarSource {
428- FieldRef : & corev1.ObjectFieldSelector {
429- FieldPath : "metadata.namespace" ,
430- },
431- },
432- },
433- }
434-
435- // Add Redis password environment variable if configured
436- if cr .Spec .KubernetesConfig .ExistingPasswordSecret != nil {
437- envVars = append (envVars , corev1.EnvVar {
438- Name : "REDIS_PASSWORD" ,
439- ValueFrom : & corev1.EnvVarSource {
440- SecretKeyRef : & corev1.SecretKeySelector {
441- LocalObjectReference : corev1.LocalObjectReference {
442- Name : * cr .Spec .KubernetesConfig .ExistingPasswordSecret .Name ,
443- },
444- Key : * cr .Spec .KubernetesConfig .ExistingPasswordSecret .Key ,
445- },
446- },
447- })
448- }
449-
450- // Default resource requirements for role detector
451- resources := & corev1.ResourceRequirements {
452- Requests : corev1.ResourceList {
453- corev1 .ResourceCPU : resource .MustParse ("10m" ),
454- corev1 .ResourceMemory : resource .MustParse ("32Mi" ),
455- },
456- Limits : corev1.ResourceList {
457- corev1 .ResourceCPU : resource .MustParse ("50m" ),
458- corev1 .ResourceMemory : resource .MustParse ("64Mi" ),
459- },
460- }
461-
462- // Build complete command with arguments
463- command := []string {
464- "/operator" ,
465- "agent" ,
466- "server" ,
467- "--redis-addr=127.0.0.1:" + redisPort ,
468- "--detect-interval=10s" ,
469- }
470-
471- if cr .Spec .KubernetesConfig .ExistingPasswordSecret != nil {
472- command = append (command , "--redis-password=$(REDIS_PASSWORD)" )
473- }
474-
475- return common.Sidecar {
476- Name : "agent" ,
477- Image : operatorImage ,
478- ImagePullPolicy : corev1 .PullIfNotPresent ,
479- Command : command ,
480- EnvVars : & envVars ,
481- Resources : resources ,
482- // SecurityContext can be omitted - the container image already runs as non-root
483- // and inherits pod-level security context if needed
484- }
485- }
0 commit comments