Curso

Terraform testé et gouverné

Mettre sous contrôle les modules Terraform d'une plateforme IA Google Cloud : tests natifs avec providers simulés, tflint, checkov, politiques OPA sur le plan JSON (régions UE, labels, pas d'accès public), pre-commit, pipeline CI qui commente le plan, et détection de dérive exécutée sur une vraie infrastructure.

Experto 5 lecciones 5h
Empezar el curso
Progreso 0% · 0/5

Este contenido aún no está traducido. Se muestra la versión original.

Six mois après la mise en place de la plateforme de Logi-Express, trois incidents tiennent sur une page. Un développeur a ajouté allUsers comme invoker « pour tester » et l'a oublié deux semaines. Une PR a créé un bucket en US parce que la variable de région avait un défaut différent dans un nouveau module. Et le label cost-center d'un bucket d'archive a été changé à la main par la finance : Terraform l'a remis en place sans prévenir au déploiement suivant, et le rapport de coûts du mois était faux. Chacun de ces trois incidents a passé une revue de code humaine.

Ce projet reprend les modules du projet précédent et les entoure d'une chaîne de contrôles automatiques, chacun à l'endroit où il coûte le moins : avant le commit, dans la PR, sur le plan, puis chaque matin sur l'infrastructure réelle.

Ce que vous livrez

make ci : tests natifs, tflint, checkov, plans réels et politiques, sortie réelle du 2026-10-16
  • 17 tests natifs terraform test sur 5 modules, providers simulés : sans clé, sans réseau, en une dizaine de secondes.
  • tflint (règles Terraform et Google) et checkov sur le code, exceptions justifiées dans le code.
  • 11 règles OPA appliquées par conftest au plan JSON de dev et de prod : régions UE, 4 labels obligatoires, aucun accès public, pas d'IP publique, pas d'ingress Internet en prod ; 8 tests unitaires des règles.
  • Un pre-commit qui exécute les mêmes outils, aux mêmes versions.
  • Un pipeline GitHub Actions : vérifications, plan et politiques commentés sur la PR, détection de dérive planifiée qui ouvre un ticket.
  • Une détection de dérive testée sur une vraie infrastructure : modification manuelle, détection (code 2), réconciliation.
Dérive provoquée, détectée puis corrigée sur le socle dev réel (2026-10-16)

Architecture

flowchart LR
  DEV["Poste"] -- "git commit" --> PC["pre-commit<br/>fmt, validate, tflint,<br/>conftest verify, garde .tfstate"]
  PC --> PR["Pull request"]
  PR --> J1["Job verifier<br/>fmt, validate, test, lint, checkov"]
  J1 --> J2["Job plan<br/>plan dev + prod → JSON"]
  J2 --> POL["conftest + checkov<br/>sur le plan"]
  POL --> CMT["Commentaire de PR<br/>plan + verdict"]
  CRON["Planification<br/>chaque matin ouvré"] --> DR["drift.sh<br/>plan -detailed-exitcode"]
  DR -- "code 2" --> TK["Ticket « dérive »"]
  ST[("Bucket d'état GCS")] -.-> J2
  ST -.-> DR

Stack, coût, durée

OutilVersionRôle
Terraform1.16.0terraform test, mock_provider, expect_failures
tflint + ruleset google0.64.0 / 0.40.0conventions, variables inutilisées, valeurs Google invalides
checkov3.3.20 (dans .venv)règles de sécurité sur le code et sur le plan
conftest (OPA)0.71.1 (binaire vérifié par SHA-256)politiques de l'entreprise sur le plan JSON
pre-commit4.6.0mêmes contrôles avant chaque commit

Coût mesuré : make test, lint et security sont locaux. make e2e crée et détruit le socle dev sans service Cloud Run, moins d'un centime par cycle. Durée : 5 h ; make ci s'exécute en 27 s.

Prérequis

  • Le projet Une plateforme IA Google Cloud en modules Terraform, ou une pratique équivalente des modules, de l'état distant et des plans.
  • Notions de CI (GitHub Actions ou équivalent).
  • Sans projet Google Cloud : make test, make lint, make security et les tests des politiques fonctionnent ; les plans et la dérive demandent des identifiants.

Programme

#LeçonVous finissez avec
1Tests natifs et providers simulésmake test : 17 tests verts sur 5 modules
2Lint et analyse de sécuritétflint et checkov à zéro échec, exceptions justifiées
3Politiques as code sur le planun plan refusé par une règle OPA, testée
4pre-commit et pipeline CImake ci vert, le pipeline prêt à copier
5Détecter la dérivemake e2e vert sur une vraie infrastructure, make cloud-down vérifié

Le code complet est dans files/.

Recursos

Descargar todo (.zip)

Referencias