Skip to content

Commit 7b9dc25

Browse files
committed
common function
Signed-off-by: yangw <[email protected]>
1 parent 8f7ad6d commit 7b9dc25

File tree

5 files changed

+28
-44
lines changed

5 files changed

+28
-44
lines changed

pkg/k8sutils/redis-cluster.go

+1-11
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
redisv1beta2 "github.com/OT-CONTAINER-KIT/redis-operator/api/v1beta2"
99
"github.com/OT-CONTAINER-KIT/redis-operator/pkg/util"
1010
corev1 "k8s.io/api/core/v1"
11-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1211
"k8s.io/apimachinery/pkg/util/intstr"
1312
"k8s.io/client-go/kubernetes"
1413
"k8s.io/utils/ptr"
@@ -73,17 +72,8 @@ func generateRedisClusterParams(ctx context.Context, cr *redisv1beta2.RedisClust
7372
res.ExternalConfig = externalConfig
7473
}
7574
if value, found := cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulset]; found && value == "true" {
76-
var propagation metav1.DeletionPropagation
7775
res.RecreateStatefulSet = true
78-
79-
propagation = metav1.DeletePropagationForeground
80-
if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "orphan" {
81-
propagation = metav1.DeletePropagationOrphan
82-
} else if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "background" {
83-
propagation = metav1.DeletePropagationBackground
84-
}
85-
86-
res.RecreateStatefulsetStrategy = &propagation
76+
res.RecreateStatefulsetStrategy = getDeletionPropagationStrategy(cr.ObjectMeta.GetAnnotations())
8777
}
8878
return res
8979
}

pkg/k8sutils/redis-replication.go

+1-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55

66
redisv1beta2 "github.com/OT-CONTAINER-KIT/redis-operator/api/v1beta2"
77
"github.com/OT-CONTAINER-KIT/redis-operator/pkg/util"
8-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
98
"k8s.io/client-go/dynamic"
109
"k8s.io/client-go/kubernetes"
1110
"k8s.io/utils/ptr"
@@ -123,17 +122,8 @@ func generateRedisReplicationParams(cr *redisv1beta2.RedisReplication) statefulS
123122
res.ServiceAccountName = cr.Spec.ServiceAccountName
124123
}
125124
if value, found := cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulset]; found && value == "true" {
126-
var propagation metav1.DeletionPropagation
127125
res.RecreateStatefulSet = true
128-
129-
propagation = metav1.DeletePropagationForeground
130-
if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "orphan" {
131-
propagation = metav1.DeletePropagationOrphan
132-
} else if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "background" {
133-
propagation = metav1.DeletePropagationBackground
134-
}
135-
136-
res.RecreateStatefulsetStrategy = &propagation
126+
res.RecreateStatefulsetStrategy = getDeletionPropagationStrategy(cr.ObjectMeta.GetAnnotations())
137127
}
138128
return res
139129
}

pkg/k8sutils/redis-sentinel.go

+1-11
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
redisv1beta2 "github.com/OT-CONTAINER-KIT/redis-operator/api/v1beta2"
1010
"github.com/OT-CONTAINER-KIT/redis-operator/pkg/util"
1111
corev1 "k8s.io/api/core/v1"
12-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1312
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1413
"k8s.io/apimachinery/pkg/runtime/schema"
1514
"k8s.io/client-go/dynamic"
@@ -119,17 +118,8 @@ func generateRedisSentinelParams(ctx context.Context, cr *redisv1beta2.RedisSent
119118
res.EnableMetrics = cr.Spec.RedisExporter.Enabled
120119
}
121120
if value, found := cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulset]; found && value == "true" {
122-
var propagation metav1.DeletionPropagation
123121
res.RecreateStatefulSet = true
124-
125-
propagation = metav1.DeletePropagationForeground
126-
if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "orphan" {
127-
propagation = metav1.DeletePropagationOrphan
128-
} else if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "background" {
129-
propagation = metav1.DeletePropagationBackground
130-
}
131-
132-
res.RecreateStatefulsetStrategy = &propagation
122+
res.RecreateStatefulsetStrategy = getDeletionPropagationStrategy(cr.ObjectMeta.GetAnnotations())
133123
}
134124
return res
135125
}

pkg/k8sutils/redis-standalone.go

+1-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55

66
redisv1beta2 "github.com/OT-CONTAINER-KIT/redis-operator/api/v1beta2"
77
"github.com/OT-CONTAINER-KIT/redis-operator/pkg/util"
8-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
98
"k8s.io/client-go/kubernetes"
109
"k8s.io/utils/ptr"
1110
"sigs.k8s.io/controller-runtime/pkg/log"
@@ -131,17 +130,8 @@ func generateRedisStandaloneParams(cr *redisv1beta2.Redis) statefulSetParameters
131130
res.ServiceAccountName = cr.Spec.ServiceAccountName
132131
}
133132
if value, found := cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulset]; found && value == "true" {
134-
var propagation metav1.DeletionPropagation
135133
res.RecreateStatefulSet = true
136-
137-
propagation = metav1.DeletePropagationForeground
138-
if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "orphan" {
139-
propagation = metav1.DeletePropagationOrphan
140-
} else if cr.ObjectMeta.GetAnnotations()[AnnotationKeyRecreateStatefulsetStrategy] == "background" {
141-
propagation = metav1.DeletePropagationBackground
142-
}
143-
144-
res.RecreateStatefulsetStrategy = &propagation
134+
res.RecreateStatefulsetStrategy = getDeletionPropagationStrategy(cr.ObjectMeta.GetAnnotations())
145135
}
146136
return res
147137
}

pkg/k8sutils/statefulset.go

+24
Original file line numberDiff line numberDiff line change
@@ -874,3 +874,27 @@ func getSidecars(sidecars *[]redisv1beta2.Sidecar) []redisv1beta2.Sidecar {
874874
}
875875
return *sidecars
876876
}
877+
878+
// getDeletionPropagationStrategy returns the deletion propagation strategy based on the annotation
879+
func getDeletionPropagationStrategy(annotations map[string]string) *metav1.DeletionPropagation {
880+
if annotations == nil {
881+
return nil
882+
}
883+
884+
if strategy, exists := annotations[AnnotationKeyRecreateStatefulsetStrategy]; exists {
885+
var propagation metav1.DeletionPropagation
886+
887+
switch strings.ToLower(strategy) {
888+
case "orphan":
889+
propagation = metav1.DeletePropagationOrphan
890+
case "background":
891+
propagation = metav1.DeletePropagationBackground
892+
default:
893+
propagation = metav1.DeletePropagationForeground
894+
}
895+
896+
return &propagation
897+
}
898+
899+
return nil
900+
}

0 commit comments

Comments
 (0)