O HashiCorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Terraform fornece plug-ins chamados provedores , que permitem interagir com provedores de nuvem e outras APIs. Para o GDC com isolamento físico, é necessário usar o provedor do Kubernetes para provisionar recursos, já que não há um provedor específico do GDC com isolamento físico para o Terraform.
Os recursos do GDC podem ser gerenciados pelo provedor do Kubernetes com o gerenciamento completo do ciclo de vida dos recursos do Kubernetes.
| Operação | Provedor do Terraform |
|---|---|
| Criar | Provedor do Kubernetes |
| Lidos | |
| Atualizar | |
| Excluir | N/A, use terraform destroy |
Como o Terraform funciona
O Terraform tem uma sintaxe declarativa e orientada pela configuração, que pode ser usada para descrever a infraestrutura que você quer provisionar no projeto do GDC. Depois de criar essa configuração em um ou mais arquivos de configuração do Terraform, use a CLI do Terraform para aplicá-la aos recursos do GDC.
As etapas a seguir explicam como o Terraform funciona:
Você descreve a infraestrutura que quer provisionar em um arquivo de configuração do Terraform. Não é preciso escrever código descrevendo como provisionar a infraestrutura. O Terraform provisiona a infraestrutura para você.
Você executa o comando
terraform plan, que avalia sua configuração e gera um plano de execução. É possível analisar o plano e fazer alterações conforme necessário.Você executa o comando
terraform apply, que realiza as seguintes ações:Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs correspondentes do GDC com isolamento físico em segundo plano.
Ele cria um arquivo de estado do Terraform, que é um arquivo JSON que mapeia os recursos no arquivo de configuração aos recursos na infraestrutura do mundo real. O Terraform usa esse arquivo para manter um registro do estado mais recente da infraestrutura e para determinar quando criar, atualizar e destruir recursos.
Ao executar
terraform apply, o Terraform usa o mapeamento no arquivo de estado para comparar a infraestrutura atual com o código e fazer atualizações conforme necessário:Se um objeto de recurso for definido no arquivo de configuração, mas não existir no arquivo de estado, o Terraform o criará.
Se há um objeto de recurso no arquivo de estado, mas tem uma configuração diferente do arquivo de configuração, o Terraform atualiza o recurso para corresponder ao arquivo de configuração.
Se um objeto de recurso no arquivo de estado corresponder ao seu arquivo de configuração, o Terraform deixará o recurso inalterado.
Recursos do Terraform para o GDC com isolamento físico
Recursos são os elementos fundamentais da linguagem do Terraform. Cada bloco de recursos descreve um ou mais objetos de infraestrutura.
O GDC com isolamento físico é baseado no Kubernetes. Além das APIs principais do Kubernetes, como Node, PersistentVolume e Service, ele também oferece suporte à API CustomResourceDefinition. Ao usar definições de recursos personalizados, as APIs específicas do GDC são criadas para representar a infraestrutura do GDC com isolamento físico.
A tabela a seguir lista os recursos do Terraform disponíveis para o GDC com isolamento físico:
| Recursos do Terraform | Fontes de dados |
|---|---|
kubernetes_manifest
|