Use o Terraform

Para configurar o Terraform no seu ambiente isolado do Google Distributed Cloud (GDC), tem de o transferir e configurá-lo para processar recursos do Kubernetes.

Este documento destina-se a todos os grupos de públicos-alvo que precisam de configurar o Terraform para gerir os respetivos fluxos de trabalho de hardware e software isolados. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

Configure o Terraform

Para configurar o Terraform no seu ambiente do GDC, conclua o seguinte:

  1. No seu módulo do Terraform ou na coleção de ficheiros do Terraform na sua estação de trabalho, crie o ficheiro 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 o seguinte:

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

    • TF_STATE_PATH: o caminho do ficheiro de estado do Terraform a armazenar no contentor de armazenamento.

    • BUCKET_ENDPOINT: o ponto final do recurso personalizado Bucket.

    • ACCESS_KEY: a chave de acesso adquirida a partir do segredo que contém as suas credenciais de acesso. Para mais informações sobre como adquirir a chave de acesso, consulte o artigo Obtenha credenciais de acesso ao contentor.

    • SECRET_KEY: a chave secreta adquirida a partir do segredo que contém as suas credenciais de acesso. Para mais informações sobre como adquirir a chave secreta, consulte o artigo Obtenha credenciais de acesso ao contentor.

  2. Inicialize o ficheiro de estado do Terraform no contentor de armazenamento que especificou no passo anterior:

    terraform init
    

    O Terraform pode pedir uma região da AWS como entrada obrigatória, mas o valor não é usado, uma vez que está a usar o armazenamento de objetos do GDC. Introduza qualquer região da AWS para satisfazer o requisito.

  3. Implemente o recurso de função de cluster crd-viewer e associe-o à sua conta de utilizador:

    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 o seguinte:

    • KUBECONFIG: o ficheiro kubeconfig do servidor de API ou do cluster que aloja os recursos que está a gerir com o Terraform.

    • USER_EMAIL: o email do utilizador ao qual o papel deve ser associado.

    Implemente a função crd-viewer em cada servidor ou cluster de API que quer usar para o Terraform.

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

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

    Esta configuração instala o fornecedor do Kubernetes para aprovisionar e gerir recursos do Kubernetes no seu ambiente do GDC.

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

    terraform init
    

O que se segue?