Aprovisiona recursos de Cloud Build con Terraform

HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usar el proveedor de Terraform para Google Cloud a fin de aprovisionar y administrar los recursos de Google Cloud, incluido Cloud Build.

Cómo funciona Terraform

Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que deseas aprovisionar en tu proyecto de Google Cloud. Después de crear esta configuración en uno o más archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicarla a tus recursos de Cloud Build.

En los siguientes pasos, se explica cómo funciona Terraform:

  1. Describes la infraestructura que deseas aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código que describa cómo aprovisionar la infraestructura. Terraform aprovisiona la infraestructura por ti.
  2. Ejecuta el comando terraform plan, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y realizar cambios según sea necesario.
  3. Debes ejecutar el comando terraform apply, que realiza las siguientes acciones:
    1. Aprovisiona la infraestructura según tu plan de ejecución mediante la invocación de las APIs de Cloud Build correspondientes en segundo plano.
    2. Crea un archivo de estado de Terraform, que es un archivo JSON que asigna los recursos de tu archivo de configuración a los recursos de la infraestructura real. Terraform usa este archivo para mantener un registro del estado más reciente de la infraestructura y determinar cuándo crear, actualizar y destruir recursos.
    3. Cuando ejecutas terraform apply, Terraform usa la asignación en el archivo de estado para comparar la infraestructura existente con el código y realizar actualizaciones según sea necesario:
      • Si se define un objeto de recurso en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
      • Si existe un objeto de recurso en el archivo de estado, pero tiene una configuración diferente de la del archivo de configuración, Terraform actualiza el recurso para que coincida con el archivo de configuración.
      • Si un objeto de recurso en el archivo de estado coincide con el archivo de configuración, Terraform no modifica el recurso.

    Guías basadas en Terraform para Cloud Build

    En la siguiente tabla, se enumeran todas las guías prácticas y los instructivos basados en Terraform para Cloud Build:

    Guía Detalles
    Conéctate a un repositorio de GitHub En esta guía, se explica cómo conectar un repositorio de GitHub a Cloud Build mediante Terraform.
    Implementar en Compute Engine En esta guía, se explica cómo realizar implementaciones azul-verde sin tiempo de inactividad en los grupos de instancias administrados de Compute Engine (MIG) con Cloud Build y Terraform.

    Módulos y planos de Terraform para Cloud Build

    Los módulos y planos te ayudan a automatizar el aprovisionamiento y la administración de recursos de Google Cloud a gran escala. Un módulo es un conjunto reutilizable de archivos de configuración de Terraform que crea una abstracción lógica de los recursos del servicio. Un plano es un paquete de módulos implementables y reutilizables, y una política que implementa y documenta una solución específica.

    En la siguiente tabla, se enumeran todos los módulos y planos relacionados con Cloud Build:

    Módulo o plano Detalles
    Canalización de CI/CD segura Este módulo permite que los clientes de Google Cloud implementen con rapidez una canalización de CI/CD segura mediante la implementación de muchas de las funciones descritas en Desplazamiento a la izquierda en seguridad.
    terraform-google-bootstrap Este módulo ayuda a iniciar una organización de Google Cloud creando todos los recursos y permisos necesarios para comenzar a usar Cloud Foundation Toolkit (CFT). Para los usuarios que desean usar Cloud Build y Cloud Source Repositories para el código de base, este módulo contiene un submódulo que inicia todos los recursos necesarios.

    Recursos de Terraform para Cloud Build

    Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura, como redes virtuales o instancias de procesamiento.

    En la siguiente tabla, se enumeran los recursos de Terraform disponibles para Cloud Build:

    Servicio de Cloud Build Recursos de Terraform Fuentes de datos
    Cloud Build v1 google_cloudbuild_trigger
    Cloud Build v2 google_cloudbuildv2_connection_iam_policy

    ¿Qué sigue?