Como usar o 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 oferece suporte ao Terraform e ao modelo de recursos do Kubernetes (KRM).

Por que converter para Terraform ou KRM?

Terraform e KRM são opções conhecidas para gerenciar serviços e 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 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 e gerenciar seus serviços e recursos do Google Cloud usando o provedor Terraform para Google Cloud. Para mais informações, consulte o 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 de conversão para o Terraform

Para usar o DM Convert e converter suas configurações do Deployment Manager em Terraform:

  1. Identifique a configuração do Deployment Manager que você quer converter em Terraform.
  2. Para garantir que seus recursos estejam atualizados, reconcilie todas as implantações ativas da configuração.
  3. Para converter sua configuração para o Terraform, execute a ferramenta DM Convert localmente.
  4. Verificar 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.

Siga as práticas recomendadas do Terraform (em inglês), como:

Para acessar instruções detalhadas desse fluxo de trabalho, consulte Como converter as configurações do Deployment Manager com o 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.