From 52c9eedb13b33838c8f0663650b0f499aad96b53 Mon Sep 17 00:00:00 2001 From: ildar Date: Mon, 6 Mar 2023 17:17:06 +0600 Subject: [PATCH 1/2] fix: support annotation to modify redis config template --- operator/redisfailover/service/generator.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/operator/redisfailover/service/generator.go b/operator/redisfailover/service/generator.go index 3a98d8fa6..a1a2569b7 100644 --- a/operator/redisfailover/service/generator.go +++ b/operator/redisfailover/service/generator.go @@ -144,6 +144,14 @@ func generateSentinelConfigMap(rf *redisfailoverv1.RedisFailover, labels map[str func generateRedisConfigMap(rf *redisfailoverv1.RedisFailover, labels map[string]string, ownerRefs []metav1.OwnerReference, password string) *corev1.ConfigMap { name := GetRedisName(rf) + + var addConfigLines []string + for key, value := range rf.Annotations { + if strings.HasPrefix(key, "add-configuration-snippet/") { + addConfigLines = append(addConfigLines, value) + } + } + labels = util.MergeLabels(labels, generateSelectorLabels(redisRoleName, rf.Name)) tmpl, err := template.New("redis").Parse(redisConfigTemplate) @@ -158,6 +166,10 @@ func generateRedisConfigMap(rf *redisfailoverv1.RedisFailover, labels map[string redisConfigFileContent := tplOutput.String() + if len(addConfigLines) > 0 { + redisConfigFileContent = fmt.Sprintf("%s\n%s", redisConfigFileContent, strings.Join(addConfigLines, "\n")) + } + if password != "" { redisConfigFileContent = fmt.Sprintf("%s\nmasterauth %s\nrequirepass %s", redisConfigFileContent, password, password) } From f8a74e9eb12145ea8341e9ff897c17097d9996bc Mon Sep 17 00:00:00 2001 From: ildar Date: Mon, 6 Mar 2023 17:38:32 +0600 Subject: [PATCH 2/2] fix: nil value handling --- operator/redisfailover/service/generator.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/operator/redisfailover/service/generator.go b/operator/redisfailover/service/generator.go index a1a2569b7..806f58bc8 100644 --- a/operator/redisfailover/service/generator.go +++ b/operator/redisfailover/service/generator.go @@ -146,9 +146,11 @@ func generateRedisConfigMap(rf *redisfailoverv1.RedisFailover, labels map[string name := GetRedisName(rf) var addConfigLines []string - for key, value := range rf.Annotations { - if strings.HasPrefix(key, "add-configuration-snippet/") { - addConfigLines = append(addConfigLines, value) + if rf.Annotations != nil { + for key, value := range rf.Annotations { + if strings.HasPrefix(key, "add-configuration-snippet") { + addConfigLines = append(addConfigLines, value) + } } }