Skip to content

CodelyTV/terraform-course

Repository files navigation

Codely logo

🪐 Terraform CI/CD - terragrunt - tfsec - infracost

This repository contains a basic Terraform CI/CD. Designed to store all the IaC code on a mono-repo with high tfstate granularity. Supports multi-account and regions.

Here you have the course explaining all the examples available in this repository: Terraform: Buenas prácticas llevando tu infraestructura a código (Spanish)

Contents

This project has been designed as an incremental learning path to Terraform. Each folder increments the concepts and usages of previous folders.

Each folder correspond to one of the course videos:

  1. 🚀 ¿Para qué sirve Terraform? ¿Qué aprenderás en el curso?
    1. ⚙️ [YouTube] IaC vs GitOps vs DevOps
    2. ⚡️ Instalación y configuración de Terraform
    3. 👨‍🎓 Crear y configurar cuenta de AWS
  2. 👶 Despliega tu primera pieza de infraestructura
    1. 📘 Crea un bucket de S3 en AWS
    2. 🧩 Flujo de trabajo en Terraform: Init, Plan y Apply
    3. 🔑 Data Sources: Obteniendo acceso al bucket
  3. 🙏 ¿Y si mi infraestructura ya existe antes de conoceros?
    1. 😮 Me ha aparecido un fichero en local: tfstate
    2. 🧡 Importar recursos a Terraform
  4. 🚀 Trabajo en equipo con Terraform
    1. ☁️ Backends remotos en otros cloud
    2. 💾 Guardando el tfstate en un bucket de s3
    3. 🔐 Bloqueando el tfstate con dynamodb
  5. ⛓️ Conectar piezas de infraestructura
    1. 🧩 Desplegar piezas por separado: S3, Lambda y DynamoDB
    2. 🧙‍♂️ Conectar las piezas de infraestructura
  6. 🎸 Terraform mantenible con múltiples equipos
    1. 👐 Terraform agnóstico de la plataforma: LA GRAN MENTIRA
    2. 🗃️ Consigue rapidez y evita drift en Terraform: Separa los tfstates
    3. 👥 Terraform Workspaces: Reutiliza configuración entre entornos
    4. 🚄 Separar tfstates: Ejemplo práctico de El Mundo Real™️
  7. 💙 Simplifica tu proyecto con Terragrunt
    1. 👐 Reutilizando recursos entre distintos entornos
    2. 🦹‍♀️ Gestionando varios providers con Terragrunt
    3. 🤏 Por qué Mango NO usa Terraform Workspaces
  8. 🤖 Automatizando despliegues de Terraform con GitHub y Jenkins
    1. 🥉 Validamos sintaxis de Terraform en GitHub Actions
    2. 🥇 Desplegando Terraform desde GitHub Actions
      1. Workflow plan
      2. Workflow apply
    3. 🦿 GitHub Actions vs Jenkins
  9. ⚙️ Buenas prácticas y utilidades para Terraform
    1. 💵 Cuánto estoy gastando: Infracost
    2. 🧪 Testing en Terraform ¿Sí o no?
    3. 🔝 Top 5 utilidades para Terraform
  10. 🔜 Conclusiones y siguientes pasos
    1. 💣 Aprendizajes del mundo real: Detección automática de Drift
    2. 🤟 Conclusión y siguientes pasos

Requirements

  • Terraform v.1.2.0+
  • Terragrunt v0.38.0+
  • Tfenv
  • AWS account (free tier)

GitHub actions - Workflows

workflows

Screenshots

plan

tfsec

infracost