Para configurar Terraform en tu entorno con air gap de Google Distributed Cloud (GDC), debes descargarlo y configurarlo para que gestione los recursos de Kubernetes.
Este documento está dirigido a todos los grupos de audiencia que necesiten configurar Terraform para gestionar sus flujos de trabajo de hardware y software aislados. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Antes de empezar
Descarga Terraform en tu estación de trabajo siguiendo la documentación proporcionada por HashiCorp: https://developer.hashicorp.com/terraform/install.
Verifica que tengas un contenedor de almacenamiento de GDC. Si no tienes ningún contenedor de almacenamiento, crea uno. Para obtener más información, consulta Crear segmentos de almacenamiento.
Instala la CLI gdcloud. Para obtener más información, consulta Usar la CLI de gdcloud.
Genera el archivo kubeconfig del servidor de la API o del clúster que aloja los recursos que quieres gestionar con Terraform. Para obtener más información, consulta Obtener un archivo kubeconfig.
Configurar Terraform
Para configurar Terraform en tu entorno de GDC, haz lo siguiente:
En tu módulo de Terraform o en la colección de archivos de Terraform de tu estación de trabajo, crea el archivo
main.tfy añade la siguiente configuración:terraform { backend "s3" { bucket = "BUCKET_FQN" key = "TF_STATE_PATH" endpoint = "BUCKET_ENDPOINT" skip_credentials_validation = true force_path_style = true access_key = "ACCESS_KEY" secret_key = "SECRET_KEY" } }Haz los cambios siguientes:
BUCKET_FQN: el nombre cualificado del recurso personalizadoBucket.TF_STATE_PATH: la ruta del archivo de estado de Terraform que se va a almacenar en el segmento de almacenamiento.BUCKET_ENDPOINT: el endpoint del recurso personalizadoBucket.ACCESS_KEY: la clave de acceso obtenida del secreto que contiene tus credenciales de acceso. Para obtener más información sobre cómo adquirir la clave de acceso, consulta Obtener credenciales de acceso al bucket.SECRET_KEY: la clave secreta obtenida del secreto que contiene tus credenciales de acceso. Para obtener más información sobre cómo adquirir la clave secreta, consulta Obtener credenciales de acceso al contenedor.
Inicializa el archivo de estado de Terraform en el segmento de almacenamiento que has especificado en el paso anterior:
terraform initEs posible que Terraform te pida una región de AWS como entrada obligatoria, pero el valor no se utiliza porque estás usando el almacenamiento de objetos de GDC. Introduce cualquier región de AWS para cumplir el requisito.
Implementa el recurso de rol de clúster
crd-viewery vincúlalo a tu cuenta de usuario:kubectl apply --kubeconfig KUBECONFIG -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: crd-viewer rules: - apiGroups: ["apiextensions.k8s.io"] resources: ["customresourcedefinitions"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: crd-viewer-binding subjects: - kind: User name: USER_EMAIL roleRef: kind: ClusterRole name: crd-viewer apiGroup: rbac.authorization.k8s.io EOFHaz los cambios siguientes:
KUBECONFIG: el archivo kubeconfig del servidor de la API o del clúster que aloja los recursos que gestionas con Terraform.USER_EMAIL: el correo del usuario al que se va a asignar el rol.
Despliega el rol
crd-vieweren cada servidor o clúster de APIs que quieras usar con Terraform.En el archivo
main.tf, inserta el siguiente bloquerequired_providers:terraform { required_providers { kubernetes = { source = "hashicorp/kubernetes" version = ">=2.24.0" } } }Esta configuración instala el proveedor de Kubernetes para aprovisionar y gestionar recursos de Kubernetes en tu entorno de GDC.
Inicializa tu directorio de trabajo de Terraform para instalar el proveedor:
terraform init