Usar Terraform

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

Configurar Terraform

Para configurar Terraform en tu entorno de GDC, haz lo siguiente:

  1. 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.tf y 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 personalizado Bucket.

    • 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 personalizado Bucket.

    • 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.

  2. Inicializa el archivo de estado de Terraform en el segmento de almacenamiento que has especificado en el paso anterior:

    terraform init
    

    Es 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.

  3. Implementa el recurso de rol de clúster crd-viewer y 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
    EOF
    

    Haz 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-viewer en cada servidor o clúster de APIs que quieras usar con Terraform.

  4. En el archivo main.tf, inserta el siguiente bloque required_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.

  5. Inicializa tu directorio de trabajo de Terraform para instalar el proveedor:

    terraform init
    

Siguientes pasos