Como usar a DM Convert para fazer a transição para o Terraform ou o modelo de recursos do Kubernetes (KRM)

O Deployment Manager Convert (DM Convert) é uma ferramenta que pode ser usada para converter configurações e modelos do Deployment Manager em outros tipos declarativos formatos de configuração compatíveis com o Google. Atualmente, o Google é compatível com o Terraform e o Modelo de Recursos do Kubernetes (KRM).

Por que converter para o Terraform ou o KRM?

O Terraform e o KRM são opções conhecidas para gerenciar os serviços e a infraestrutura do Google Cloud. Eles oferecem ecossistemas ativamente atualizados, com suporte a recursos modernos, como gerenciamento de secrets e reconciliação contínua (para KRM).

O Google trabalha com a HashiCorp para desenvolver o provedor Terraform para o Google Cloud. Em 2020, o Google também lançou o Config Connector para ajudar os clientes a usar o Kubernetes para gerenciar os tipos de recursos do Google Cloud.

Terraform

O Terraform é uma ferramenta de código aberto para infraestrutura de provisionamento. É possível usar o Terraform para escrever configurações declarativas para gerenciar os serviços e recursos do Google Cloud usando o provedor Terraform para Google Cloud. Para mais informações, consulte Terraform no Google Cloud.

Modelo de recursos do Kubernetes (KRM)

O KRM é um paradigma para a criação de APIs e definições de recursos para o gerenciamento de configurações declarativas. Ele representa os recursos do Google Cloud como definições de recursos personalizados (CRDs, na sigla em inglês) e pode ser acionado usando o Config Controller.

Tipos e provedores de tipos compatíveis

O DM Convert converte arquivos YAML de configuração do Deployment Manager e arquivos de modelo Jinja ou Python para arquivos de configuração KRM ou Terraform.

Para verificar o status atual da compatibilidade do DM Convert com provedores de tipo e tipos de recursos, use a sinalização --list-supported-types.

Noções básicas sobre como o DM Convert traduz conceitos em formatos

A tabela a seguir mostra como o DM Convert converte conceitos do Deployment Manager em KRM e Terraform:

Conceito do Deployment Manager Conversão do KRM/Config Connector Conversão do Terraform
Referências Referências de recursos, se o esquema KRM definir o campo como uma referência. Se o esquema do KRM não definir o campo como uma referência, a referência do Deployment Manager será substituída pelo valor resolvido. As referências do Terraform se comportam de maneira semelhante às referências do Deployment Manager.
Dependências explícitas (depends_on) Nenhuma compatibilidade com a ordem de dependência explícita. Os recursos funcionam de maneira consistente. depends_on
Vinculações de gerenciamento de identidade e acesso (IAM) (blocos accessControl autoritativos) IAMPolicy Tipos de <resource_type>_iam_policy (por exemplo, google_pubsub_topic_iam_policy)
Vinculações de IAM (tipos iamMemberBinding não autoritativos) IAMPolicyMember <resource_type>_iam_member (Exemplo, google_project_iam_member)
Tipos compostos Os tipos compostos estão obsoletos. O DM Convert não faz a conversão. Os tipos compostos estão obsoletos. O DM Convert não faz a conversão.
Ações, provedores de tipos personalizados e saídas Incompatível. As ações com equivalentes declarativos no Terraform são convertidas. Para ver mais detalhes, consulte Suporte para ações.

Compatibilidade com ações na conversão direta para o Terraform (para o Terraform)

O Actions é um recurso de visualização do Deployment Manager que estende o conjunto de métodos de API disponíveis. Ações não são compatíveis e a conversão direta não converte ações que não têm equivalentes declarativos no Terraform, como:

  • Aplicar patches, excluir e listar APIs

  • APIs definidas em provedores de tipo personalizado

  • APIs personalizadas, como sqladmin-v1beta4:sql.instances.restart

O DM Convert é compatível com a conversão para equivalentes do Terraform para ações nos seguintes casos:

  • Ele substitui as chamadas de ação para APIs que inserem um recurso por recursos do Terraform equivalentes. Por exemplo, action: gcp-types/storage-v1:storage.buckets.insert é convertido em google_storage_bucket.

  • Ele converte chamadas de ação em APIs que recebem um recurso para tipos data do Terraform sempre que possível. Por exemplo, actions: gcp-types/compute-v1:compute.subnetworks.get é convertido em google_compute_subnetwork.

  • Ele converte comandos setIamPolicy em recursos *_iam_policy (autoritativos) ou *_iam_member (não autoritativos), dependendo se eles são usados ou não com getIamPolicy.

Para informações sobre como migrar o uso de ações para alternativas declarativas no Deployment Manager, acesse Como substituir o uso de ações.

Fluxo de trabalho para conversão no Terraform

Para usar a DM Convert e converter as configurações do Deployment Manager para o Terraform:

  1. Identifique a configuração do Deployment Manager que você quer converter para o Terraform.
  2. Para garantir que seus recursos estejam atualizados, concilie todas as implantações ativas da configuração.
  3. Para converter sua configuração para o Terraform, execute a ferramenta DM Convert localmente.
  4. Verifique se a configuração gerada do Terraform reflete o estado atual dos recursos.
  5. Exclua a implantação do Deployment Manager. Para preservar seus recursos ao excluir a implantação, defina delete-policy como abandon.

Recomendamos que você siga as práticas recomendadas do Terraform, como:

Para conferir um tutorial detalhado sobre esse fluxo de trabalho, consulte Como converter as configurações do Deployment Manager com a DM Convert.

Coleta de dados na conversão de DM

O que coletamos, por padrão

Por padrão, a ferramenta de conversão direta envia dados de uso anônimos ao Google para nos ajudar a manter e melhorar a ferramenta. Quando a ferramenta de conversão DM é executada, os dados sobre a operação solicitada, o sucesso da operação e o momento da conversão são coletados. Esses dados são anônimos e não incluem informações de identificação pessoal, dados confidenciais ou conteúdo de clientes.

Os dados de uso podem conter:

  • Parâmetros de entrada do comando de conversão: Registramos os valores de parâmetro do seu comando de conversão ao executar a ferramenta, incluindo o formato de saída (KRM ou Terraform) e representações booleanas de outras sinalizações especificadas (não coletamos valores específicos). dessas sinalizações).

  • Resultado da conversão: registramos os resultados da conversão, incluindo o status dela (SUCCESS ou FAILURE), bem como o código e a mensagem de erro, se ocorre um problema.

  • Data/hora da conversão: registramos os horários de início e término da conversão.

Como usamos esses dados

O Google coleta e processa os dados de uso para:

  • Entenda como a ferramenta é usada, incluindo quais recursos e configurações são mais usados.

  • Faça o diagnóstico do uso mal-sucedido da ferramenta e forneça orientação aos usuários que buscam ajuda técnica.

  • Melhore a ferramenta resolvendo problemas e potencialmente aumentando a cobertura dos recursos.

Como desativar a coleta de dados

O Google coleta dados de uso por padrão quando você executa uma conversão, mas essa coleta de dados pode ser desativada.

Para desativar a coleta de dados de uma conversão específica, especifique a sinalização --opt_out_data_collection=true no seu comando de conversão. Para continuar desativando essa coleta de dados, especifique a sinalização sempre que fizer uma conversão.

Para ativar a coleta de dados de uma conversão específica, é possível especificar a sinalização --opt_out_data_collection=false no comando de conversão ou omitir a sinalização do comando.