aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh')
-rw-r--r--kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh b/kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh
new file mode 100644
index 0000000000..24e628f426
--- /dev/null
+++ b/kubernetes/authentication/components/oauth2-proxy/scripts/check-redis.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+RETRY_INTERVAL=5 # Interval between retries in seconds
+elapsed=0 # Elapsed time
+
+check_redis() {
+ host=$1
+ port=$2
+ while [ $elapsed -lt $TOTAL_RETRY_TIME ]; do
+ echo "Checking Redis at $host:$port... Elapsed time: ${elapsed}s"
+ if nc -z -w1 $TIMEOUT $host $port > /dev/null 2>&1; then
+ echo "Redis is up at $host:$port!"
+ return 0
+ else
+ echo "Redis is down at $host:$port. Retrying in $RETRY_INTERVAL seconds."
+ sleep $RETRY_INTERVAL
+ elapsed=$((elapsed + RETRY_INTERVAL))
+ fi
+ done
+ echo "Failed to connect to Redis at $host:$port after $TOTAL_RETRY_TIME seconds."
+ return 1
+}
+
+# For parsing and checking connections
+parse_and_check() {
+ url=$1
+ clean_url=${url#redis://}
+ host=$(echo $clean_url | cut -d':' -f1)
+ port=$(echo $clean_url | cut -d':' -f2)
+ check_redis $host $port
+}
+
+# Main
+if [ -n "$OAUTH2_PROXY_REDIS_CLUSTER_CONNECTION_URLS" ]; then
+ echo "Checking Redis in cluster mode..."
+ echo "$OAUTH2_PROXY_REDIS_CLUSTER_CONNECTION_URLS" | tr ',' '\n' | while read -r addr; do
+ parse_and_check $addr || exit 1
+ done
+elif [ -n "$OAUTH2_PROXY_REDIS_SENTINEL_CONNECTION_URLS" ]; then
+ echo "Checking Redis in sentinel mode..."
+ echo "$OAUTH2_PROXY_REDIS_SENTINEL_CONNECTION_URLS" | tr ',' '\n' | while read -r addr; do
+ parse_and_check $addr || exit 1
+ done
+elif [ -n "$OAUTH2_PROXY_REDIS_CONNECTION_URL" ]; then
+ echo "Checking standalone Redis..."
+ parse_and_check "$OAUTH2_PROXY_REDIS_CONNECTION_URL" || exit 1
+else
+ echo "Redis configuration not specified."
+ exit 1
+fi
+
+echo "Redis check completed."