Usar o Terraform

Para configurar o Terraform no ambiente isolado do Google Distributed Cloud (GDC), faça o download e configure-o para processar recursos do Kubernetes.

Este documento é destinado a todos os grupos de público-alvo que precisam configurar o Terraform para gerenciar fluxos de trabalho de hardware e software isolados. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Configurar o Terraform

Para configurar o Terraform no ambiente do GDC, siga estas etapas:

  1. No módulo do Terraform ou na coleção de arquivos do Terraform na estação de trabalho, crie o arquivo main.tf e adicione a seguinte configuração:

    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"
      }
    }
    

    Substitua:

    • BUCKET_FQN: o nome totalmente qualificado do recurso personalizado Bucket.

    • TF_STATE_PATH: o caminho do arquivo de estado do Terraform a ser armazenado no bucket de armazenamento.

    • BUCKET_ENDPOINT: o endpoint do recurso personalizado Bucket.

    • ACCESS_KEY: a chave de acesso adquirida do secret que contém suas credenciais de acesso. Para mais informações sobre como adquirir a chave de acesso, consulte Receber credenciais de acesso ao bucket.

    • SECRET_KEY: a chave secreta adquirida do secret que contém suas credenciais de acesso. Para mais informações sobre como adquirir a chave secreta, consulte Receber credenciais de acesso ao bucket.

  2. Inicialize o arquivo de estado do Terraform no bucket de armazenamento especificado na etapa anterior:

    terraform init
    

    O Terraform pode solicitar uma região da AWS como entrada obrigatória, mas o valor não é usado porque você está usando o armazenamento de objetos do GDC. Insira qualquer região da AWS para atender ao requisito.

  3. Implante o recurso de função de cluster crd-viewer e vincule-o à sua conta de usuário:

    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
    

    Substitua:

    • KUBECONFIG: o arquivo kubeconfig do servidor ou cluster da API que hospeda os recursos que você está gerenciando com o Terraform.

    • USER_EMAIL: o e-mail do usuário a que a função será vinculada.

    Implante a função crd-viewer em cada servidor ou cluster da API que você quer usar para o Terraform.

  4. No arquivo main.tf, insira o seguinte bloco required_providers:

    terraform {
      required_providers {
        kubernetes = {
          source = "hashicorp/kubernetes"
          version = ">=2.24.0"
        }
      }
    }
    

    Essa configuração instala o provedor do Kubernetes para provisionar e gerenciar recursos do Kubernetes no ambiente do GDC.

  5. Inicialize o diretório de trabalho do Terraform para instalar o provedor:

    terraform init
    

A seguir