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 emgoogle_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 emgoogle_compute_subnetwork
.Converte comandos
setIamPolicy
em recursos*_iam_policy
(autoritativos) ou*_iam_member
(não autoritativos), consoante sejam ou não usados comgetIamPolicy
.
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:
- Identifique a configuração do Deployment Manager que quer converter para Terraform.
- Para garantir que os seus recursos estão atualizados, reconcilie todas as implementações ativas da configuração.
- Para converter a sua configuração no Terraform, execute a ferramenta DM Convert localmente.
- Verifique se a configuração do Terraform gerada reflete o estado atual dos seus recursos.
- Elimine a implementação do Deployment Manager. Para preservar os recursos quando eliminar a implementação, defina
delete-policy
comoabandon
.
Recomendamos que siga as práticas recomendadas do Terraform, como:
- Armazenar o estado do Terraform num contentor do Cloud Storage
- Usar o Cloud Build para gerir a atuação.
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
ouFAILURE
), 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.