Un projet Compose par environnement sur la même machine : ports du proxy et origine publique en variables dans docker-compose.prod.yml, réglage mémoire des deux bases TimescaleDB et du webserver Airflow. Le workflow deploy.yml déploie dev en recette et main en production depuis un runner installé sur la VM, jamais sur pull_request. scripts/provision-host.sh prépare les deux dossiers, secrets et certificats compris, sans rien démarrer. L'image frontend quitte dhi.io/nginx, registre authentifié dont personne n'a l'accès, pour nginx:1.28-alpine : elle n'avait jamais été construite. ADR 0009, vues infra et CI/CD, README et .env.example mis à jour. Refs #21, #22
Infrastructure
Provisionnement Terraform de la machine on-premise (serveur physique, accessible en SSH).
terraform/modules: modules reutilisables.k3s: installe un cluster k3s single-node sur une machine distante via SSH (script officielget.k3s.io) et rapatrie le kubeconfig en local.
terraform/environments/<env>: racines Terraform, une par environnement.dev: instancie le modulek3ssur le serveur de l'ecole.prod: non initialise, voir le ticket dedie.
Usage (environments/dev)
cd infra/terraform/environments/dev
cp terraform.tfvars.example terraform.tfvars # renseigner ssh_host / ssh_private_key_path
terraform init
terraform apply
Le kubeconfig est ecrit localement au chemin defini par kubeconfig_output_path
(par defaut ./kubeconfig, ignore par git).