fix: enregistrement manuel dans Consul (ACL bloque Registrator sur prestashop)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

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 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-03-17 19:55:15 +01:00
parent 80ebfb0c5a
commit 4ccddc69e3

View File

@@ -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