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 usa el proveedor de Terraform para Google Cloud para aprovisionar y administrar 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. Luego, ejecuta el comando terraform apply, que realiza las siguientes acciones:

    1. Aprovisiona tu 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 del archivo de configuración a los recursos de la infraestructura del mundo 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 destruir recursos.
    3. Luego, cuando ejecutes 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 un objeto de recurso se define 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 tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
      • Si un objeto de recurso en el archivo de estado coincide con tu archivo de configuración, Terraform deja el recurso sin cambios.

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 con Terraform.
Conéctate a un host de GitHub Enterprise En esta guía, se explica cómo conectar un host de GitHub Enterprise a Cloud Build con Terraform.
Conéctate a un repositorio de GitHub Enterprise En esta guía, se explica cómo conectar un repositorio de GitHub Enterprise a Cloud Build con Terraform.
Cómo 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 con Terraform.
Conéctate 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 con Terraform.
Conéctate 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 con Terraform.
Conéctate 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 con Terraform.
Conéctate a un host de Bitbucket Cloud. En esta guía, se explica cómo conectar un host de Bitbucket Cloud a Cloud Build con Terraform.
Conéctate a un repositorio de Bitbucket Cloud. En esta guía, se explica cómo conectar un repositorio de Bitbucket Cloud a Cloud Build con Terraform.
Implementa en Compute Engine En esta guía, se explica cómo realizar un tiempo de inactividad azul-verde sin tiempo de inactividad implementaciones en 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 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 de Terraform. Un plano es un paquete de elementos implementables y reutilizables módulos 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 a los clientes de Google Cloud implementar rápidamente una canalización de CI/CD segura, con la implementación de muchas de las funciones que se describen en Desplazarse hacia la izquierda en seguridad.
terraform-google-bootstrap Este módulo ayuda a iniciar una organización de Google Cloud y a crear 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 Foundation, 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?