From 4ccddc69e3e88a15b7bed55c51fbefc89a0832c2 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 17 Mar 2026 19:55:15 +0100 Subject: [PATCH] fix: enregistrement manuel dans Consul (ACL bloque Registrator sur prestashop) Ajout etape register-consul : recupere l'IP du conteneur sur le reseau sonic et enregistre le service dans Consul avec le token ACL via l'API HTTP. Registrator loggue "added" mais son token n'a pas les droits service:write sur "prestashop" -> le service disparaissait de Consul apres chaque deploy. Co-Authored-By: Claude Sonnet 4.6 --- .woodpecker.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.woodpecker.yml b/.woodpecker.yml index 8d9969a..bf72568 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -67,6 +67,28 @@ steps: - cd /opt/prestashop && docker compose pull - cd /opt/prestashop && docker compose up -d --remove-orphans - cd /opt/prestashop && docker compose ps + - docker inspect prestashop --format '{{.NetworkSettings.Networks.sonic.IPAddress}}' > .container_ip + + # Etape 3c : Enregistrement dans Consul (Registrator ne peut pas ecrire prestashop : ACL) + - name: register-consul + image: alpine:3.20 + environment: + TEST_STATIC: hello + CONSUL_TOKEN: + from_secret: consul_token + commands: + - apk add --no-cache --quiet curl iproute2 + - | + CONSUL_HOST=$(ip route show default | awk '/default/{print $3; exit}') + CONSUL_HOST=${CONSUL_HOST:-172.17.0.1} + CONTAINER_IP=$(cat .container_ip) + DOMAIN=$(grep '^PS_DOMAIN=' .env.deploy | cut -d= -f2) + CTOK=$(env | grep '^CONSUL_TOKEN=' | cut -d= -f2-) + curl -sf -X PUT "http://$CONSUL_HOST:8500/v1/agent/service/register" \ + -H "Content-Type: application/json" \ + -H "X-Consul-Token: $CTOK" \ + -d "{\"Name\":\"prestashop\",\"Address\":\"$CONTAINER_IP\",\"Port\":80,\"Tags\":[\"urlprefix-$DOMAIN/\"]}" + echo "Service enregistre dans Consul: prestashop -> $CONTAINER_IP:80 urlprefix-$DOMAIN/" # Etape 4 : Healthcheck post-deploiement - name: healthcheck