Commit Graph

66 Commits

Author SHA1 Message Date
syoul
6a37cb541e refactor: labels Registrator en format liste avec valeurs par défaut imbriquées
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Format liste (- KEY=VALUE) pour permettre l'évaluation des defaults imbriqués
- SERVICE_80_NAME et SERVICE_80_TAGS surchargeables via env var sans modifier le fichier
- SERVICE_NAME redondant supprimé (SERVICE_80_NAME suffit)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 00:13:04 +01:00
syoul
1ef176c2e0 refactor: convention COMPOSE_PROJECT_NAME user-project-branch + labels Registrator
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Convention renommée user-project-branch (syoul-prestashop-main)
- COMPOSE_PROJECT_NAME généré dynamiquement depuis CI vars (CI_REPO_OWNER/CI_REPO_NAME/CI_COMMIT_BRANCH) avec tr pour lowercase + /→-
- SERVICE_NAME → ${COMPOSE_PROJECT_NAME}-app
- SERVICE_80_NAME → ${COMPOSE_PROJECT_NAME}-app-80

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:50:57 +01:00
syoul
1d0d0e1143 fix: SERVICE_80_CHECK_TCP valeur "true" au lieu de chaine vide
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Registrator ignore SERVICE_80_CHECK_TCP="" (valeur vide).
"true" est la valeur attendue pour activer le check TCP.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:32:22 +01:00
syoul
6b26da6013 fix: check Consul TCP au lieu de HTTP (302 -> failing)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
PS_SSL_ENABLED_EVERYWHERE=1 redirige tout HTTP en 302 vers HTTPS.
Consul ne suit pas les redirects -> check HTTP toujours failing -> Fabio
ne route pas le trafic. Check TCP verifie juste que le port 80 est ouvert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:28:20 +01:00
syoul
532a026aca fix: supprimer tous les ${VAR} restants dans les commands
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
${PROJECT} dans configure -> $PROJECT (boucle infinie car substitue vide)
${CI_BUILD_NUMBER}, ${CI_COMMIT_SHA}, ${CI_COMMIT_BRANCH} dans notify-failure

Regle : jamais ${VAR} dans les commands Woodpecker next.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:15:30 +01:00
syoul
108aa8b410 fix: COMPOSE_PROJECT_NAME hardcode (vars CI indisponibles dans alpine)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Les vars CI ne sont pas injectees comme vars shell dans les steps
sans Docker socket (write-env / alpine) -> $CI_REPO_OWNER vide.
Valeur fixe syoul-main-prestashop, conforme a la convention user-env-project.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:13:02 +01:00
syoul
f0bec873b5 fix: COMPOSE_PROJECT_NAME vide (${VAR} -> $VAR sans accolades)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
${CI_REPO_OWNER} et ${CI_COMMIT_BRANCH} etaient substitues vides par
Woodpecker au parse YAML -> PROJECT vide -> docker exec "-db" echoue
silencieusement -> boucle configure infinie (60 tentatives).

$VAR sans accolades n'est pas substitue au parse, resolu au shell runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:10:10 +01:00
syoul
8cf7c4b7ca feat: COMPOSE_PROJECT_NAME depuis vars CI Woodpecker
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- COMPOSE_PROJECT_NAME construit dynamiquement : CI_REPO_OWNER-CI_COMMIT_BRANCH-prestashop
  -> plus de valeur en dur dans le fichier
- validate : PS_DOMAIN/PS_ADMIN_FOLDER/COMPOSE_PROJECT_NAME calcules dans commands
  via les vars CI injectees automatiquement par Woodpecker
- PS_DOMAIN placeholder remplace presta.syoul.fr hardcode dans validate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:03:31 +01:00
syoul
7688e95964 refactor: Registrator + healthcheck Consul, suppression token Consul
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Ajout SERVICE_80_CHECK_HTTP=/ : Consul valide le service via GET /
  -> service healthy dans Consul -> Fabio route automatiquement le trafic
- SERVICE_80_TAGS sans guillemets + /* pour le glob matcher Fabio
- Suppression token Consul, enregistrement manuel et KV Fabio de la pipeline
  -> Registrator + Consul catalog suffisent (approche native sonic)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 22:38:57 +01:00
syoul
becb1b4666 fix: acme.sh exit code capture avec set -e
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
; ACME_EXIT=$? ne fonctionnait que si acme.sh retournait 0 (premier lancement).
Avec exit 2 (skip/cert valide), set -e coupait le script avant la capture.
Correction : ACME_EXIT=0 + || ACME_EXIT=$?

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:59:01 +01:00
syoul
8168082765 fix: routes Fabio /* + SSL PrestaShop via pipeline
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- Routes Fabio : / -> /* (glob matcher requiert /* pour matcher les sous-chemins)
  Sans *, presta.syoul.fr:443/ ne matchait que / exactement, les autres
  chemins (/admin-secure/, /themes/...) tombaient sur le catch-all nginx -> 404
- Ajout step configure : active PS_SSL_ENABLED + PS_SSL_ENABLED_EVERYWHERE dans
  la DB apres installation, efface le cache -> PrestaShop genere des URLs https://
  (Fabio passe X-Forwarded-Proto:https, pas de boucle de redirection)
- PS_ENABLE_SSL: 1 dans docker-compose.yml (coherence avec la config DB)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:56:29 +01:00
syoul
235321985b fix: acme.sh --home /etc/acme.sh pour stocker le cert sur le volume persistant
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Sans --home, acme.sh ecrit dans /root/.acme.sh (non persiste).
Avec --home /etc/acme.sh (volume sonic_acme), le cert survit aux recreations
du container sonic-acme-1 et le chemin de copie vers /host/certs/ est correct.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:37:00 +01:00
syoul
fb3cd6365b feat: emission cert TLS integree dans la pipeline (modele sonic)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Ajout de l'etape acme.sh dans le deploy :
- docker exec sonic-acme-1 /app/acme.sh --issue --webroot
- idempotent : skip (exit 2) si cert valide, echec si autre erreur
- copie automatique fullchain + key vers /host/certs/ pour Fabio SNI
- ordre : docker compose up > cert TLS > consul register > fabio KV

Ce pattern est le modele generique pour tout nouveau service sur sonic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:35:19 +01:00
syoul
4f334d971f chore: ajout /docs-sonic au .gitignore
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:25:31 +01:00
syoul
d497a874d2 fix: routes Fabio KV avec printf pour eviter rupture indentation YAML
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
La variable multiline cassait le parser YAML (ligne sans indentation).
Utilisation de printf avec \n pour construire la chaine sur une seule ligne.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:22:23 +01:00
syoul
d97b522162 feat: cert TLS automatique via acme-companion + route HTTPS Fabio
- Ajout label LETSENCRYPT_HOST sur le container prestashop :
  sonic-acme-1 (acme-companion) emet le cert et le copie dans /host/certs/
  Fabio le detecte par SNI sans redemarrage
- Route Fabio KV mise a jour : HTTP et HTTPS (domain:443) en une seule cle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:21:30 +01:00
syoul
2a75a274f6 deploy: ecriture route Fabio via Consul KV apres enregistrement service
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Fabio ne detecte pas toujours les nouveaux services via le catalog Consul.
Ajout d'un consul kv put fabio/config avec la route urlprefix apres chaque
deploiement pour garantir le routage sans redemarrage de Fabio.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 21:03:53 +01:00
syoul
2513d3534d fix: registration Consul via docker exec sonic-consul (supprime register-consul step)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- write-env ecrit le token dans .consul_token (workspace partage)
- deploy lit .consul_token et utilise docker exec sonic-consul pour
  enregistrer le service directement sur l'agent consul local
- network_mode host non supporte par ce Woodpecker, 172.17.0.1:8500
  ne rejoignait pas le meme consul que Fabio

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 20:07:10 +01:00
syoul
9d1406c79d fix: register-consul utilise network_mode host (localhost:8500 = consul reel)
172.17.0.1:8500 passe par les regles iptables DOCKER et n'atteint pas
le meme consul que Fabio. Avec host network, localhost:8500 est direct.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 20:03:25 +01:00
syoul
6dec47a3bd fix: ecrire .container_ip dans CI_WORKSPACE (cd /opt/prestashop changeait le CWD)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 19:57:46 +01:00
syoul
4ccddc69e3 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>
2026-03-17 19:55:15 +01:00
syoul
80ebfb0c5a chore: trigger pipeline (prestashop install complete)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 19:39:44 +01:00
syoul
1040f7272f fix: healthcheck evite substitution Woodpecker (SITE au lieu de PS_DOMAIN)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 19:10:45 +01:00
syoul
380d0cf7d1 fix: write-env utilise env|grep (bug Woodpecker: dollar-brace dans commands droppe secrets)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 19:06:46 +01:00
syoul
abcc517e3c debug: write-env-1 avec commande identique regression test
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 19:05:01 +01:00
syoul
d34e9b4922 debug: seul write-env-1 avec from_secret, les autres placeholder
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 19:01:35 +01:00
syoul
64262d1b1f fix: 3 steps write-env (2 secrets max par step, bug Woodpecker)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:57:59 +01:00
syoul
05f5401def debug: seuil - TEST_STATIC + 3 from_secret
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:57:12 +01:00
syoul
0a5c13a1b6 debug: TEST_STATIC hello-world + 6 from_secret
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:56:06 +01:00
syoul
9f7af2f3c6 fix: DEPLOY_ENV comme valeur statique (CI etait deduplique)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:54:08 +01:00
syoul
3c5a683540 fix: workaround bug Woodpecker - valeur statique CI requise pour from_secret
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:52:12 +01:00
syoul
3adeebc4aa debug: test 1 statique + 2 from_secret
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:51:17 +01:00
syoul
50a31ad9ff debug: regression test identique pipeline 26
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:49:15 +01:00
syoul
0401c0b3d9 debug: test valeur statique dummy + 2 from_secret
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:47:49 +01:00
syoul
74e84ea617 debug: test 2 from_secret (ps_domain + ps_admin_folder)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:46:18 +01:00
syoul
3f4ddcf914 fix: healthcheck utilise alpine:3.20 + curl (curlimages sans grep)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:42:27 +01:00
syoul
b21cd3dafe fix: contournement bug volumes+from_secret, healthcheck lit depuis workspace
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:40:46 +01:00
syoul
295e96367e debug: test volumes + from_secret sur docker:27-cli
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:38:31 +01:00
syoul
e001cf7d00 deploy: secrets OK, suppression debug-secrets, lancement deploiement
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:32:22 +01:00
syoul
d90bc558a2 debug: test from_secret ps_domain dans environment
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:31:31 +01:00
syoul
dc48cee578 debug: env | sort pour lister toutes les vars du container
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:30:07 +01:00
syoul
03bee992be chore: test03 woodpecker sleep30s
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:28:54 +01:00
syoul
2c5be85a01 debug: sleep 30s in debug-secrets pour inspecter le container
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:27:08 +01:00
syoul
c2cd131ca8 chore: test02 woodpecker
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 18:23:43 +01:00
syoul
f6cf648c4c debug: test secret injection vs static env var
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 16:50:20 +01:00
syoul
b26bbd8911 chore: test après restart woodpecker
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 16:38:54 +01:00
syoul
80bf3b5104 chore: debug
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 16:18:12 +01:00
syoul
c4e1c8bc82 chore: debug secrets transmission
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 16:15:28 +01:00
syoul
ff13a4efa8 fix: remove agent label filter (agent deleted)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-03-17 16:12:35 +01:00
syoul
8bcee6b02d chore: retrigger pipeline after secrets org_id fix
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
2026-03-17 16:10:37 +01:00