Cloud e infraestructura

Terraform lab network

Red base para levantar laboratorios cloud efímeros con costo controlado y teardown explícito.

Estado

Cuatro contratos locales sin apply

Duración

45–70 min

Qué vas a construir

Un experimento local con estado antes/después.

Validar state, módulos, policy y recuperación antes de conectar un provider o ejecutar apply.

Límite de seguridad: La validación comprometida no usa credenciales, provider real, apply ni recursos facturables.

Mapa mental

El plan es una decisión revisable; apply solo viene después de entender costo, superficie y destrucción.

Validar state y locking.
Revisar contratos de módulo.
Aplicar policy al plan.
Ensayar recuperación con evidencia.

Flujo del lab

01

State

02

Módulos

03

Policy

04

Recovery

05

Reporte

Prerrequisitos y lecturas conectadas

01

Validar state y locking

Comprobar que el backend conserva memoria y excluye escritores concurrentes.

Escenario state

node tools/labs/terraform-lab-network/validate-plan.mjs state

Checks

  • Backend remoto declarado.
  • Cifrado y versionado activos.
  • Locking y restauración ensayados.

Evidencia

JSON con state=true.

02

Validar el contrato de módulo

Evitar módulos que oculten provider o filtren estado innecesario.

Escenario modules

node tools/labs/terraform-lab-network/validate-plan.mjs modules

Checks

  • Inputs tipados.
  • Outputs acotados.
  • Provider no oculto.
  • Fixture probado.

Evidencia

JSON con modules=true.

03

Aplicar policy al plan

Detener costo, exposición o tipos no revisados antes de apply.

Escenario policy

node tools/labs/terraform-lab-network/validate-plan.mjs policy

Checks

  • Plan JSON revisado.
  • Costo <= 5 USD.
  • Sin ingress público.
  • Allowlist cerrada.

Evidencia

JSON con policy=true.

04

Ensayar recuperación

Practicar evidencia y orden antes de force-unlock, import o state surgery.

Escenario recovery

node tools/labs/terraform-lab-network/validate-plan.mjs recovery

Checks

  • Copia preservada.
  • Propietario del lock identificado.
  • Objetos remotos comparados.
  • Plan posterior al import.

Evidencia

JSON con recovery=true y blindForceUnlock=false.

Criterios de aceptación, cleanup y fallas típicas

Aceptar el lab

  • El script pasa.
  • No se usan secretos.
  • Puedes explicar por qué cada guardrail bloquea apply.

Cleanup

Teardown futuro

terraform destroy -auto-approve

Fixture actual

No crea recursos; no hay estado remoto que eliminar.

Troubleshooting

allowedResources=false

Causa: El plan contiene un tipo no revisado.

Fix: Revisa riesgo y costo antes de ampliar la allowlist.

state=false

Causa: Falta versionado, locking o prueba de restauración.

Fix: Corrige el contrato; no uses force-unlock para ocultar el hueco.

recovery=false

Causa: La secuencia omite evidencia previa al cambio.

Fix: Preserva state, identifica escritor y compara objetos antes de importar.