mirror of
https://github.com/furyhawk/cloudy.git
synced 2026-07-21 02:05:53 +00:00
fix: improve waiting logic for CrowdSec service registration
This commit is contained in:
@@ -4,6 +4,8 @@ set -euo pipefail
|
|||||||
BOUNCER_NAME="${CROWDSEC_BOUNCER_NAME:-traefik-bouncer}"
|
BOUNCER_NAME="${CROWDSEC_BOUNCER_NAME:-traefik-bouncer}"
|
||||||
BOUNCER_KEY="${CROWDSEC_BOUNCER_KEY:-}"
|
BOUNCER_KEY="${CROWDSEC_BOUNCER_KEY:-}"
|
||||||
SERVICE_NAME="crowdsec_crowdsec"
|
SERVICE_NAME="crowdsec_crowdsec"
|
||||||
|
WAIT_TIMEOUT_SECONDS="${CROWDSEC_REGISTER_WAIT_TIMEOUT:-180}"
|
||||||
|
WAIT_INTERVAL_SECONDS="${CROWDSEC_REGISTER_WAIT_INTERVAL:-3}"
|
||||||
|
|
||||||
if [[ -z "$BOUNCER_KEY" ]]; then
|
if [[ -z "$BOUNCER_KEY" ]]; then
|
||||||
echo "CROWDSEC_BOUNCER_KEY is not set. Export it or source swarm/.env first."
|
echo "CROWDSEC_BOUNCER_KEY is not set. Export it or source swarm/.env first."
|
||||||
@@ -15,11 +17,27 @@ if ! command -v docker >/dev/null 2>&1; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
container_id="$(docker ps --filter "label=com.docker.swarm.service.name=${SERVICE_NAME}" --format '{{.ID}}' | head -n1)"
|
if ! docker service inspect "$SERVICE_NAME" >/dev/null 2>&1; then
|
||||||
|
echo "CrowdSec service '${SERVICE_NAME}' does not exist yet."
|
||||||
|
echo "Deploy CrowdSec first: make deploy-crowdsec"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
deadline=$((SECONDS + WAIT_TIMEOUT_SECONDS))
|
||||||
|
container_id=""
|
||||||
|
|
||||||
|
while [[ -z "$container_id" && $SECONDS -lt $deadline ]]; do
|
||||||
|
container_id="$(docker ps --filter "label=com.docker.swarm.service.name=${SERVICE_NAME}" --format '{{.ID}}' | head -n1)"
|
||||||
|
if [[ -z "$container_id" ]]; then
|
||||||
|
remaining=$((deadline - SECONDS))
|
||||||
|
echo "Waiting for running CrowdSec task (${remaining}s left)..."
|
||||||
|
sleep "$WAIT_INTERVAL_SECONDS"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
if [[ -z "$container_id" ]]; then
|
if [[ -z "$container_id" ]]; then
|
||||||
echo "No running CrowdSec LAPI task found for service ${SERVICE_NAME}."
|
echo "No running CrowdSec LAPI task found for service ${SERVICE_NAME} after ${WAIT_TIMEOUT_SECONDS}s."
|
||||||
echo "Deploy CrowdSec first: make deploy-crowdsec"
|
echo "Check service status: docker service ps ${SERVICE_NAME} --no-trunc"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user