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 usar para converter configurações e modelos do Deployment Manager para outros formatos de configuração declarativos suportados pela Google. Atualmente, a Google suporta o Terraform e o Kubernetes Resource Model (KRM).

Por que motivo deve converter para o Terraform ou o KRM?

O Terraform e o KRM são opções populares para gerir Google Cloud serviços e infraestrutura. Oferecem ecossistemas atualizados ativamente, com suporte para funcionalidades modernas, como a gestão de segredos e a conciliação contínua (para o KRM).

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

Terraform

O Terraform é uma ferramenta de código aberto para o aprovisionamento de infraestrutura. Pode usar o Terraform para escrever configurações declarativas para gerir os seus serviços e recursos através do fornecedor do Terraform para Google Cloud. Google Cloud Para mais informações, consulte o artigo Terraform no Google Cloud.

Modelo de recursos do Kubernetes (KRM)

KRM é um paradigma para criar APIs e definições de recursos para a gestão de configuração declarativa. Representa Google Cloud recursos como Definições de recursos personalizados (CRDs) e pode ser acionado através do Config Controller.

Tipos e fornecedores de tipos suportados

O DM Convert converte ficheiros YAML de configuração do Deployment Manager e ficheiros de modelos Jinja ou Python em ficheiros de configuração do KRM ou Terraform.

Para verificar o estado atual do suporte do DM Convert para fornecedores de tipos e tipos de recursos, pode usar a flag --list-supported-types.

Compreender como o DM Convert traduz conceitos em vários formatos

A tabela seguinte mostra como o DM Convert traduz conceitos do Deployment Manager para KRM e Terraform:

Conceito do Deployment Manager Conversão de 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 KRM não definir o campo como uma referência, a referência do Deployment Manager é substituída pelo respetivo valor resolvido. As referências do Terraform têm um aspeto e um comportamento semelhantes aos das referências do Deployment Manager.
Dependências explícitas (depends_on) Não existe suporte para a ordenação explícita de dependências. Os recursos atuam de forma consistente. depends_on
Associações da gestão de identidade e de acesso (IAM) (accessControl blocos autoritários) IAMPolicy <resource_type>_iam_policy tipos (por exemplo, google_pubsub_topic_iam_policy)
Vinculações de IAM (tipos iamMemberBinding não autoritários) IAMPolicyMember <resource_type>_iam_member (por exemplo, google_project_iam_member)
Tipos compostos Os tipos compostos foram descontinuados. O DM Convert não os converte. Os tipos compostos foram descontinuados. O DM Convert não os converte.
Ações, fornecedores de tipos personalizados e resultados Não suportado. As ações que têm equivalentes declarativos no Terraform são convertidas. Para mais detalhes, consulte o artigo Suporte para ações.

Suporte para ações no DM Convert (para o Terraform)

As ações são uma funcionalidade de pré-visualização do Deployment Manager que expande o conjunto de métodos da API disponíveis. As ações não são suportadas e o DM Convert não converte ações que não tenham equivalentes declarativos no Terraform, como:

  • APIs de patch, eliminação e listagem

  • APIs definidas em fornecedores de tipos personalizados

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

O DM Convert suporta a conversão para equivalentes do Terraform nos seguintes casos:

  • 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 converte-se em google_storage_bucket.

  • Converte chamadas de ações para APIs que obtêm um recurso para tipos do Terraform data sempre que possível. Por exemplo, actions: gcp-types/compute-v1:compute.subnetworks.get converte-se em google_compute_subnetwork.

  • Converte comandos setIamPolicy em recursos *_iam_policy (autoritativos) ou *_iam_member (não autoritativos), consoante sejam ou não usados com getIamPolicy.

Para ver informações sobre a migração da utilização de ações para alternativas declarativas no Deployment Manager, visite o artigo Substituir a utilização de ações.

Fluxo de trabalho para a conversão para o Terraform

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

  1. Identifique a configuração do Deployment Manager que quer converter para Terraform.
  2. Para garantir que os seus recursos estão atualizados, reconcilie todas as implementações ativas da configuração.
  3. Para converter a sua configuração no Terraform, execute a ferramenta DM Convert localmente.
  4. Verifique se a configuração do Terraform gerada reflete o estado atual dos seus recursos.
  5. Elimine a implementação do Deployment Manager. Para preservar os recursos quando eliminar a implementação, defina delete-policy como abandon.

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

Para ver um guia detalhado deste fluxo de trabalho, consulte o artigo Converta as suas configurações do Deployment Manager com o DM Convert.

Recolha de dados no DM Convert

O que recolhemos, por predefinição

Por predefinição, a ferramenta DM Convert envia dados de utilização anónimos para a Google para nos ajudar a manter e melhorar a ferramenta. Quando a ferramenta DM Convert é executada, são recolhidos dados sobre a operação pedida, o sucesso da operação e o momento da conversão. Estes dados são anónimos e excluem quaisquer informações de identificação pessoal, dados confidenciais ou conteúdo do cliente.

Os dados de utilização podem conter:

  • Parâmetros de entrada do comando de conversão: registamos os valores dos parâmetros do comando de conversão quando executamos a ferramenta, incluindo o formato de saída (KRM ou Terraform) e as representações booleanas que indicam se outras flags estão especificadas (não recolhemos os valores específicos dessas flags).

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

  • Hora da conversão: registamos as horas de início e de fim da conversão.

Como usamos estes dados

A Google recolhe e processa os dados de utilização para:

  • Compreender como a ferramenta é usada, incluindo que funcionalidades e definições são mais populares.

  • Diagnosticar a utilização sem êxito da ferramenta e fornecer orientações aos utilizadores que procuram assistência técnica.

  • Melhore a ferramenta resolvendo problemas e, potencialmente, aumentando a cobertura de funcionalidades.

Recusar a recolha de dados

A Google recolhe dados de utilização por predefinição quando executa uma conversão, mas esta recolha de dados pode ser desativada.

Para desativar a recolha de dados para uma conversão específica, pode especificar a flag --opt_out_data_collection=true no comando de conversão. Para continuar a desativar esta recolha de dados no futuro, tem de especificar a flag sempre que executar uma conversão.

Para ativar a recolha de dados para uma conversão específica, pode especificar a flag --opt_out_data_collection=false no comando de conversão ou omitir a flag do comando.