feat(infra): Terraform provisionne la VM, GitHub Actions continue de déployer
Le seul Terraform du dépôt installait un cluster k3s que rien ne consomme, et sa racine ne passait même pas `terraform init` : depuis Terraform 1.x, un provisioner `destroy` impose que tout le bloc `connection` ne lise que `self`, et celui du module k3s lisait `var.*`. Il est corrigé en batissant la connexion sur `triggers`, où ne figurent que l'adresse, le port, l'utilisateur et le chemin de la clé : jamais la clé ni un mot de passe. `environments/vm-eni` provisionne la machine qui porte la recette et la production : Docker et le plugin Compose, `scripts/provision-host.sh`, puis l'enregistrement du runner. Rien n'y construit d'image ni ne lance de conteneur, et un `apply` n'interrompt pas la stack qui tourne. Le déploiement continu ne bouge pas : `deploy.yml` reste le seul chemin de livraison. `environments/dev` devient `k3s-cible`, parce qu'il provisionnait un cluster et pas un environnement applicatif, et que `rec` et `prod` vivent sur la même machine. `environments/prod`, dossier vide, disparaît. `infra.yml` formate et valide chaque racine à chaque push : c'est l'absence d'un tel job qui a laissé ce Terraform cassé sans que rien ne le dise. La boucle parcourt `environments/*`, une racine ajoutée est couverte sans y toucher. ADR 0010 pour la frontière entre provisionnement et livraison, et la doc d'architecture alignée dessus.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
ssh_host = "10.101.200.37"
|
||||
ssh_port = 22
|
||||
ssh_user = "root"
|
||||
ssh_private_key_path = "~/.ssh/id_ed25519"
|
||||
|
||||
# Utilisateur qui possede la racine et fait tourner le runner. Il doit deja exister sur la
|
||||
# machine : git refuse les depots appartenant a un autre utilisateur, et un .env en 600 lui
|
||||
# echapperait.
|
||||
proprietaire = "enervision"
|
||||
|
||||
# Epingler une version reelle : https://github.com/actions/runner/releases
|
||||
runner_version = "2.330.0"
|
||||
|
||||
# Jeton d'enregistrement du runner, valable une heure et pour une seule inscription :
|
||||
# Parametres du depot > Actions > Runners > New self-hosted runner. Seul un administrateur du
|
||||
# depot peut le creer. terraform.tfvars est ignore par git, mais le jeton ne doit pas y rester
|
||||
# apres l'apply.
|
||||
runner_token = "A_RENSEIGNER"
|
||||
Reference in New Issue
Block a user