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
Descarga Terraform en tu estación de trabajo siguiendo la documentación que proporciona HashiCorp: https://developer.hashicorp.com/terraform/install.
Verifica que tengas un bucket de almacenamiento de GDC existente. Si no tienes un bucket de almacenamiento, crea uno. Para obtener más información, consulta Crea buckets de almacenamiento.
Instala la CLI de gdcloud. Para obtener más información, consulta Usa la CLI de gdcloud.
Genera el archivo kubeconfig para el servidor de API o el clúster que aloja los recursos que deseas administrar con Terraform. Para obtener más información, consulta Obtén un archivo kubeconfig.
Configura Terraform
Para configurar Terraform en tu entorno de GDC, completa los siguientes pasos:
Dentro de tu módulo de Terraform o colección de archivos de Terraform en tu estación de trabajo, crea el archivo
main.tfy 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 personalizadoBucket.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 personalizadoBucket.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.
Inicializa tu archivo de estado de Terraform en el bucket de almacenamiento que especificaste en el paso anterior:
terraform initEs 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.
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 EOFReemplaza 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-vieweren cada servidor de API o clúster para el que deseas usar 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 administrar recursos de Kubernetes en tu entorno de GDC.
Inicializa tu directorio de trabajo de Terraform para instalar el proveedor:
terraform init