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 emgoogle_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 emgoogle_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 comgetIamPolicy
.
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:
- Identifique a configuração do Deployment Manager que você quer converter em Terraform.
- Para garantir que seus recursos estejam atualizados, reconcilie todas as implantações ativas da configuração.
- Para converter sua configuração para o Terraform, execute a ferramenta DM Convert localmente.
- Verificar se a configuração gerada do Terraform reflete o estado atual dos recursos.
- Exclua a implantação do Deployment Manager. Para preservar seus recursos ao excluir a implantação, defina
delete-policy
comoabandon
.
Siga as práticas recomendadas do Terraform (em inglês), como:
- Como armazenar o estado do Terraform em um bucket do Cloud Storage (em inglês)
- Como usar o Cloud Build para gerenciar a atuação.
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
ouFAILURE
), 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.