Usar Terraform

Para configurar Terraform en tu entorno aislado de Google Distributed Cloud (GDC), debes descargarlo y configurarlo para controlar los recursos de Kubernetes.

Este documento está destinado a todos los grupos de público que necesitan configurar Terraform para administrar sus flujos de trabajo de hardware y software aislados. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Configura Terraform

Para configurar Terraform en tu entorno de GDC, completa los siguientes pasos:

  1. Dentro de tu módulo de Terraform o colección de archivos de Terraform en tu estación de trabajo, crea el archivo main.tf y agrega 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"
      }
    }
    

    Reemplaza lo siguiente:

    • BUCKET_FQN: Es el nombre completamente calificado del recurso personalizado Bucket.

    • TF_STATE_PATH: Es la ruta de acceso del archivo de estado de Terraform que se almacenará en el bucket de almacenamiento.

    • BUCKET_ENDPOINT: Es el extremo del recurso personalizado Bucket.

    • ACCESS_KEY: Es la clave de acceso adquirida del secreto que contiene tus credenciales de acceso. Para obtener más información sobre cómo adquirir la clave de acceso, consulta Obtén credenciales de acceso al bucket.

    • SECRET_KEY: Es la clave secreta adquirida del secreto que contiene tus credenciales de acceso. Para obtener más información sobre cómo adquirir la clave secreta, consulta Obtén credenciales de acceso al bucket.

  2. Inicializa tu archivo de estado de Terraform en el bucket de almacenamiento que especificaste en el paso anterior:

    terraform init
    

    Es posible que Terraform solicite una región de AWS como entrada obligatoria, pero el valor no se usa, ya que usas el almacenamiento de objetos de GDC. Ingresa cualquier región de AWS para cumplir con 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
    

    Reemplaza lo siguiente:

    • KUBECONFIG: Es el archivo kubeconfig del servidor de API o el clúster que aloja los recursos que administras con Terraform.

    • USER_EMAIL: Es el correo electrónico del usuario al que se vinculará el rol.

    Implementa el rol crd-viewer en cada servidor de API o clúster para el que deseas usar 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 administrar recursos de Kubernetes en tu entorno de GDC.

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

    terraform init
    

¿Qué sigue?