Files
argocd-apps/apps/base/mail/rspamd-valkey/start.sh
T
unkin-agent f627902dd6
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
Add rspamd, ClamAV and sentinel Valkey to the mail namespace
2026-10-12 21:47:39 +11:00

35 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Usage: start.sh valkey|sentinel. Ask peer sentinels for the current master;
# with no answer (fresh cluster) pod 0 is the master.
set -eu
name="$(hostname)"
sts="${name%-*}"
self="${name}${DOMAIN_SUFFIX}"
master=""
for i in 0 1 2; do
peer="${sts}-${i}${DOMAIN_SUFFIX}"
[ "$peer" = "$self" ] && continue
master="$(timeout 3 valkey-cli -h "$peer" -p 26379 --raw sentinel get-master-addr-by-name rspamd 2>/dev/null | head -n1 || true)"
[ -n "$master" ] && break
done
[ -n "$master" ] || master="${sts}-0${DOMAIN_SUFFIX}"
if [ "$1" = sentinel ]; then
cat > /sentinel/sentinel.conf <<CONF
port 26379
protected-mode no
sentinel resolve-hostnames yes
sentinel announce-hostnames yes
sentinel announce-ip $self
sentinel monitor rspamd $master 6379 2
sentinel down-after-milliseconds rspamd 5000
sentinel failover-timeout rspamd 60000
sentinel parallel-syncs rspamd 1
CONF
exec valkey-sentinel /sentinel/sentinel.conf
fi
set -- --dir /data --appendonly yes --protected-mode no --replica-announce-ip "$self"
[ "$master" = "$self" ] || set -- "$@" --replicaof "$master" 6379
exec valkey-server "$@"