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. En el caso de Google Distributed Cloud (GDC) aislado, debes usar el proveedor de Kubernetes para aprovisionar recursos, ya que no hay un proveedor específico de GDC aislado para Terraform.
El proveedor de Kubernetes puede administrar los recursos de GDC con la administración completa del ciclo de vida de los recursos de Kubernetes.
| Operación | Proveedor de Terraform |
|---|---|
| Crear | Proveedor de Kubernetes |
| Leer | |
| Actualizar | |
| Borrar | N/A, usa terraform destroy |
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 GDC. 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 GDC.
En los siguientes pasos, se explica cómo funciona Terraform:
Describe la infraestructura que deseas aprovisionar en un archivo de configuración de Terraform. No necesitas escribir código que describa cómo aprovisionar la infraestructura. Terraform aprovisiona la infraestructura por ti.
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.Ejecuta el comando
terraform apply, que realiza las siguientes acciones:Aprovisiona tu infraestructura según tu plan de ejecución mediante la invocación de las APIs de GDC aisladas correspondientes en segundo plano.
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.
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 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.
Recursos de Terraform para GDC aislado
Los recursos son los elementos fundamentales en el lenguaje de Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura.
GDC aislado se basa en Kubernetes. Además de las APIs principales de Kubernetes, como Node, PersistentVolume y Service, también admite la API de CustomResourceDefinition. Mediante el uso de definiciones de recursos personalizados, se compilan APIs específicas de GDC para representar la infraestructura de GDC aislada.
En la siguiente tabla, se enumeran los recursos de Terraform disponibles para GDC aislado:
| Recursos de Terraform | Fuentes de datos |
|---|---|
kubernetes_manifest
|