From 8e9416694824aa498955c9047974c19a58f2aae3 Mon Sep 17 00:00:00 2001 From: Martin Pihlak Date: Mon, 20 Mar 2023 22:58:30 +0200 Subject: [PATCH] Fix command line for Redis liveness probe redis-cli requires the command argument to be passed after the credentials. Also (at least on 6.x versions) it does not properly return an error status on authentication failures. This causes the liveness probe to always return success. Fix this by checking for a PONG response to a PING. --- example/operator/custom-startup-config.yaml | 2 +- operator/redisfailover/service/generator.go | 2 +- operator/redisfailover/service/generator_test.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/operator/custom-startup-config.yaml b/example/operator/custom-startup-config.yaml index 2b1841441..c14cd0513 100644 --- a/example/operator/custom-startup-config.yaml +++ b/example/operator/custom-startup-config.yaml @@ -6,7 +6,7 @@ metadata: data: startup.sh: | #!/bin/bash - redis-cli -h 127.0.0.1 -p ${REDIS_PORT} ping --user pinger --pass pingpass --no-auth-warning + redis-cli -h 127.0.0.1 -p ${REDIS_PORT} --user pinger --pass pingpass --no-auth-warning ping | grep PONG --- apiVersion: databases.spotahome.com/v1 kind: RedisFailover diff --git a/operator/redisfailover/service/generator.go b/operator/redisfailover/service/generator.go index e423850a6..e25685f6c 100644 --- a/operator/redisfailover/service/generator.go +++ b/operator/redisfailover/service/generator.go @@ -383,7 +383,7 @@ func generateRedisStatefulSet(rf *redisfailoverv1.RedisFailover, labels map[stri Command: []string{ "sh", "-c", - fmt.Sprintf("redis-cli -h $(hostname) -p %[1]v ping --user pinger --pass pingpass --no-auth-warning", rf.Spec.Redis.Port), + fmt.Sprintf("redis-cli -h $(hostname) -p %[1]v --user pinger --pass pingpass --no-auth-warning ping | grep PONG", rf.Spec.Redis.Port), }, }, }, diff --git a/operator/redisfailover/service/generator_test.go b/operator/redisfailover/service/generator_test.go index 7cfa1546a..3b520621f 100644 --- a/operator/redisfailover/service/generator_test.go +++ b/operator/redisfailover/service/generator_test.go @@ -1898,7 +1898,7 @@ func TestRedisCustomLivenessProbe(t *testing.T) { Command: []string{ "sh", "-c", - "redis-cli -h 127.0.0.1 -p ${REDIS_PORT} ping --user pinger --pass pingpass --no-auth-warning", + "redis-cli -h 127.0.0.1 -p ${REDIS_PORT} --user pinger --pass pingpass --no-auth-warning ping | grep PONG", }, }, }, @@ -1913,7 +1913,7 @@ func TestRedisCustomLivenessProbe(t *testing.T) { Command: []string{ "sh", "-c", - "redis-cli -h 127.0.0.1 -p ${REDIS_PORT} ping --user pinger --pass pingpass --no-auth-warning", + "redis-cli -h 127.0.0.1 -p ${REDIS_PORT} --user pinger --pass pingpass --no-auth-warning ping | grep PONG", }, }, }, @@ -1932,7 +1932,7 @@ func TestRedisCustomLivenessProbe(t *testing.T) { Command: []string{ "sh", "-c", - "redis-cli -h $(hostname) -p 6379 ping --user pinger --pass pingpass --no-auth-warning", + "redis-cli -h $(hostname) -p 6379 --user pinger --pass pingpass --no-auth-warning ping | grep PONG", }, }, },