Aprovisionar recursos de Cloud Build con Terraform

HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y gestionar la infraestructura en la 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 con el fin de aprovisionar y gestionar Google Cloud recursos, incluido Cloud Build.

En esta página se explica cómo usar Terraform con Cloud Build, se describe cómo funciona Terraform y se ofrecen algunos recursos para ayudarte a empezar a usar Terraform con Google Cloud. También encontrarás enlaces a la documentación de referencia de Terraform para Cloud Build, ejemplos de código y guías para usar Terraform con el fin de aprovisionar recursos de Cloud Build.

Para obtener instrucciones sobre cómo empezar a usar Terraform para Google Cloud, consulta Instalar y configurar Terraform o la guía de inicio rápido de Terraform para Google Cloud .

Cómo funciona Terraform

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

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

  1. Describe la infraestructura que quieres aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código para describir 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 hacer los cambios que necesites.
  3. Ejecutas el comando terraform apply, que realiza las siguientes acciones:

    1. Aprovisiona tu infraestructura en función de tu plan de ejecución invocando 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 del 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 tu infraestructura y para determinar cuándo crear, actualizar y eliminar recursos.
    3. Cuando ejecutas terraform apply, Terraform usa la asignación del archivo de estado para comparar la infraestructura actual con el código y hacer las actualizaciones necesarias:

      • 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 un objeto de recurso existe en el archivo de estado, pero tiene una configuración diferente a la de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
      • Si un objeto de recurso del archivo de estado coincide con el archivo de configuración, Terraform no lo modifica.

Recursos de Terraform para Cloud Build

Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o varios objetos de infraestructura, como redes virtuales o instancias de computación.

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

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

Guías basadas en Terraform para Cloud Build

En la siguiente tabla se incluyen guías prácticas y tutoriales basados en Terraform para Cloud Build:

Guía Detalles
Conectarse a un repositorio de GitHub En esta guía se explica cómo conectar un repositorio de GitHub a Cloud Build mediante Terraform.
Conectarse a un host de GitHub Enterprise En esta guía se explica cómo conectar un host de GitHub Enterprise a Cloud Build mediante Terraform.
Conectarse a un repositorio de GitHub Enterprise En esta guía se explica cómo conectar un repositorio de GitHub Enterprise a Cloud Build mediante Terraform.
Conectarse a un host de GitLab Enterprise Edition En esta guía se explica cómo conectar un host de GitLab Enterprise Edition a Cloud Build mediante Terraform.
Conectarse a un repositorio de GitLab Enterprise Edition En esta guía se explica cómo conectar un repositorio de GitLab Enterprise Edition a Cloud Build mediante Terraform.
Conectarse a un host de Bitbucket Data Center En esta guía se explica cómo conectar un host de Bitbucket Data Center a Cloud Build mediante Terraform.
Conectarse a un repositorio de Bitbucket Data Center En esta guía se explica cómo conectar un repositorio de Bitbucket Data Center a Cloud Build mediante Terraform.
Conectarse a un host de Bitbucket Cloud En esta guía se explica cómo conectar un host de Bitbucket Cloud a Cloud Build mediante Terraform.
Conectarse a un repositorio de Bitbucket Cloud En esta guía se explica cómo conectar un repositorio de Bitbucket Cloud a Cloud Build mediante Terraform.
Desplegar en Compute Engine En esta guía se explica cómo realizar implementaciones azul-verde sin tiempo de inactividad en grupos de instancias gestionados (MIGs) de Compute Engine con Cloud Build y Terraform.

Módulos y planos de Terraform para Cloud Build

Los módulos y los planos te ayudan a automatizar el aprovisionamiento y la gestión de Google Cloud recursos 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 de Terraform. Un blueprint es un paquete de módulos desplegables y reutilizables, así como una política que implementa y documenta una solución específica.

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

Módulo o plano Detalles
Flujo de procesamiento de CI/CD seguro Este módulo permite a los clientes desplegar rápidamente un flujo de trabajo de CI/CD seguro, implementando muchas de las funciones descritas en Desplazamiento hacia la izquierda en la seguridad. Google Cloud
terraform-google-bootstrap Este módulo ayuda a inicializar una Google Cloud organización, creando todos los recursos y permisos necesarios para empezar a usar Cloud Foundation Toolkit (CFT). Para los usuarios que quieran usar Cloud Build y Cloud Source Repositories para el código de las bases, este módulo contiene un submódulo que inicia todos los recursos necesarios.

Siguientes pasos