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
Faça o download do Terraform na estação de trabalho seguindo a documentação fornecida pela HashiCorp: https://developer.hashicorp.com/terraform/install (em inglês).
Verifique se você tem um bucket de armazenamento do GDC. Se não tiver, crie um. Para mais informações, consulte Criar buckets de armazenamento.
Instale a CLI gdcloud. Para mais informações, consulte Usar a CLI gdcloud.
Gere o arquivo kubeconfig para o servidor ou cluster da API que hospeda os recursos que você quer gerenciar com o Terraform. Para mais informações, consulte Receber um arquivo kubeconfig.
Configurar o Terraform
Para configurar o Terraform no ambiente do GDC, siga estas etapas:
No módulo do Terraform ou na coleção de arquivos do Terraform na estação de trabalho, crie o arquivo
main.tfe 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 personalizadoBucket.TF_STATE_PATH: o caminho do arquivo de estado do Terraform a ser armazenado no bucket de armazenamento.BUCKET_ENDPOINT: o endpoint do recurso personalizadoBucket.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.
Inicialize o arquivo de estado do Terraform no bucket de armazenamento especificado na etapa anterior:
terraform initO 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.
Implante o recurso de função de cluster
crd-viewere 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 EOFSubstitua:
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-viewerem cada servidor ou cluster da API que você quer usar para o Terraform.No arquivo
main.tf, insira o seguinte blocorequired_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.
Inicialize o diretório de trabalho do Terraform para instalar o provedor:
terraform init