feat: lego et l'AWS CLI dans l'image de déploiement, build 3.4.9-2 (infra-00036) #2

Merged
EmilienB merged 1 commit from infra-00036-lego-awscli into main 2026-09-22 07:55:56 +00:00
Owner

Pourquoi

forge renouvelle son certificat wildcard avec lego via le DNS Gandi et garde l'état ACME sur l'Object Storage. Sur le Cloud, ces deux outils tournaient en conteneurs docker ; un job Semaphore EE n'a pas de démon docker. scripts/kamal/renew_cert.sh bascule donc en exécution native quand les deux binaires sont présents, et conserve le chemin docker en repli.

Les embarquer ici tient la promesse de l'image : rien ne s'installe au moment du job.

Ce que ça change

Ajout Détail
lego binaire statique unique, ARG LEGO_VERSION=5.4.1, la version que faisait tourner le pipeline Cloud
awscli paquet de la distribution, il rejoint la couche apt existante
BUILD 1 → 2, donc le tag publié devient 3.4.9-2

Les deux répondent à --version pendant la construction : un téléchargement cassé fait échouer la publication, pas un déploiement.

Le bump de BUILD n'est pas cosmétique : les tags épinglés sont tirés en IfNotPresent sur les nœuds agents, republier 3.4.9-1 servirait silencieusement l'ancienne image.

Portée

  • sentinel épingle 3.4.9-1 et n'est pas touché.
  • Seuls les quatre pipelines Kamal de forge épinglent 3.4.9-2, et ils sont gelés avec la migration du repo sur la forge.
  • Le tag latest avancera, aucun pipeline ne le consomme, tous épinglent une version.

Publication

Le merge sur main suffit : le workflow Forgejo Actions se déclenche sur les chemins du Dockerfile et du Makefile, se connecte au registre avec les secrets du dépôt et lance make release-native sur le runner amd64. Rien à faire en local.

Ticket : infra-00036.

🤖 Generated with Claude Code

## Pourquoi forge renouvelle son certificat wildcard avec **lego** via le DNS Gandi et garde l'état ACME sur l'**Object Storage**. Sur le Cloud, ces deux outils tournaient en conteneurs docker ; un job Semaphore EE n'a pas de démon docker. `scripts/kamal/renew_cert.sh` bascule donc en exécution native quand les deux binaires sont présents, et conserve le chemin docker en repli. Les embarquer ici tient la promesse de l'image : **rien ne s'installe au moment du job**. ## Ce que ça change | Ajout | Détail | |---|---| | `lego` | binaire statique unique, `ARG LEGO_VERSION=5.4.1`, la version que faisait tourner le pipeline Cloud | | `awscli` | paquet de la distribution, il rejoint la couche apt existante | | `BUILD` | 1 → 2, donc le tag publié devient `3.4.9-2` | Les deux répondent à `--version` pendant la construction : un téléchargement cassé fait échouer la **publication**, pas un déploiement. Le bump de `BUILD` n'est pas cosmétique : les tags épinglés sont tirés en `IfNotPresent` sur les nœuds agents, republier `3.4.9-1` servirait silencieusement l'ancienne image. ## Portée - **sentinel** épingle `3.4.9-1` et n'est pas touché. - Seuls les quatre pipelines Kamal de **forge** épinglent `3.4.9-2`, et ils sont gelés avec la migration du repo sur la forge. - Le tag `latest` avancera, aucun pipeline ne le consomme, tous épinglent une version. ## Publication Le merge sur `main` suffit : le workflow Forgejo Actions se déclenche sur les chemins du `Dockerfile` et du `Makefile`, se connecte au registre avec les secrets du dépôt et lance `make release-native` sur le runner amd64. Rien à faire en local. Ticket : **infra-00036**. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
forge renews its wildcard certificate with lego over the Gandi DNS and keeps
the ACME state in Object Storage. On the Cloud both ran as docker containers;
an EE job has no docker daemon, so scripts/kamal/renew_cert.sh switches to a
native run when the two binaries are present and keeps the docker path as a
fallback. Baking them here keeps the promise of the image: nothing installs at
job time.

lego ships a single static binary, pinned to the release the Cloud pipeline
ran; awscli comes from the distribution so it lands in the existing apt layer.
Both answer --version in the build, so a broken download fails the publish
rather than a deploy.

BUILD goes to 2: pinned tags are pulled IfNotPresent on the agent nodes, so
republishing 3.4.9-1 would silently serve the old image. sentinel stays on
3.4.9-1 and is untouched; only forge's kamal pipelines pin 3.4.9-2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
EmilienB deleted branch infra-00036-lego-awscli 2026-09-22 07:55:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Botyglot-public/ci-deploy!2
No description provided.