Utilizzo di DM Convert per passare a Terraform o Kubernetes Resource Model (KRM)

Deployment Manager Convert (DM Convert) è uno strumento che puoi utilizzare per convertire le configurazioni e i modelli di Deployment Manager in altri formati di configurazione dichiarativa supportati da Google. Al momento, Google supporta Terraform e Kubernetes Resource Model (KRM).

Perché convertire in Terraform o KRM?

Terraform e KRM sono opzioni comuni per la gestione di Google Cloud servizi e infrastrutture. Offrono ecosistemi aggiornati attivamente, con supporto per funzionalità moderne come la gestione dei secret e la riconciliazione continua (per KRM).

Google collabora con HashiCorp per sviluppare il provider Terraform per Google Cloud. Nel 2020, Google ha lanciato anche Config Connector per aiutare i clienti a utilizzare Kubernetes per gestire Google Cloud i tipi di risorse.

Terraform

Terraform è uno strumento open source per il provisioning dell'infrastruttura. Puoi utilizzare Terraform per scrivere configurazioni dichiarative per gestire i tuoi Google Cloud servizi e le tue risorse utilizzando il provider Terraform per Google Cloud. Per ulteriori informazioni, consulta Terraform su Google Cloud.

Kubernetes Resource Model (KRM)

KRM è un paradigma per la creazione di API e definizioni di risorse per la gestione della configurazione dichiarativa. Rappresenta le Google Cloud risorse come definizioni di risorse personalizzate (CRD) e può essere attivato utilizzando Config Controller.

Tipi e provider di tipi supportati

DM Convert converte i file YAML di configurazione di Deployment Manager e i file di modelli Jinja o Python in file di configurazione KRM o Terraform.

Per controllare lo stato attuale del supporto di DM Convert per i provider di tipi e i tipi di risorse, puoi utilizzare il flag --list-supported-types.

Informazioni su come DM Convert traduce i concetti tra i formati

La seguente tabella mostra come DM Convert traduce i concetti di Deployment Manager in KRM e Terraform:

Concetto di Deployment Manager Conversione KRM/Config Connector Conversione Terraform
References Riferimenti alle risorse, se lo schema KRM definisce il campo come riferimento. Se lo schema KRM non definisce il campo come riferimento, il riferimento di Deployment Manager viene sostituito dal relativo valore risolto. I riferimenti Terraform hanno un aspetto e un comportamento simili a quelli di Deployment Manager.
Dipendenze esplicite (depends_on) Nessun supporto per l'ordinamento esplicito delle dipendenze. Le risorse vengono attivate in modo coerente. depends_on
Associazioni Identity and Access Management (IAM) (blocchi accessControl autorevoli) IAMPolicy Tipi <resource_type>_iam_policy (ad esempio, google_pubsub_topic_iam_policy)
Associazioni IAM (tipi iamMemberBinding non autorevoli) IAMPolicyMember <resource_type>_iam_member (ad esempio, google_project_iam_member)
Tipi composti I tipi composti sono stati ritirati. DM Convert non li converte. I tipi composti sono stati ritirati. DM Convert non li converte.
Azioni, provider di tipi personalizzati e output Non supportati. Le azioni che hanno equivalenti dichiarativi in Terraform vengono convertite. Per maggiori dettagli, consulta Supporto per le azioni.

Supporto per le azioni in DM Convert (per Terraform)

Azioni è una funzionalità di anteprima per Deployment Manager che estende l'insieme dei metodi API disponibili. Le azioni non sono supportate e DM Convert non converte le azioni che non hanno equivalenti dichiarativi in Terraform, ad esempio:

  • API patch, delete e list

  • API definite nei provider di tipi personalizzati

  • API personalizzate, ad esempio sqladmin-v1beta4:sql.instances.restart

DM Convert supporta la conversione in equivalenti Terraform per le azioni nei seguenti casi:

  • Sostituisce le chiamate di azioni alle API che inseriscono una risorsa con risorse Terraform equivalenti. Ad esempio, action: gcp-types/storage-v1:storage.buckets.insert viene convertito in google_storage_bucket.

  • Converte le chiamate di azioni alle API che recuperano una risorsa in tipi di data Terraform, quando possibile. Ad esempio, actions: gcp-types/compute-v1:compute.subnetworks.get viene convertito in google_compute_subnetwork.

  • Converte i comandi setIamPolicy in risorse *_iam_policy (autorevoli) o *_iam_member (non autorevoli), a seconda che vengano utilizzate o meno con getIamPolicy.

Per informazioni sulla migrazione dell'utilizzo delle azioni ad alternative dichiarative in Deployment Manager, visita Sostituzione dell'utilizzo delle azioni.

Workflow per la conversione in Terraform

Per utilizzare DM Convert per convertire le configurazioni di Deployment Manager in Terraform:

  1. Identifica la configurazione di Deployment Manager che vuoi convertire in Terraform.
  2. Per assicurarti che le risorse siano aggiornate, riconcilia tutti i deployment attivi della configurazione.
  3. Per convertire la configurazione in Terraform, esegui lo strumento DM Convert in locale.
  4. Verifica che la configurazione Terraform generata rifletta lo stato attuale delle risorse.
  5. Elimina il deployment di Deployment Manager. Per conservare le risorse quando elimini il deployment, imposta delete-policy su abandon.

Ti consigliamo di seguire le best practice di Terraform, ad esempio:

Per una procedura dettagliata di questo workflow, consulta Conversione delle configurazioni di Deployment Manager con DM Convert.

Raccolta dei dati in DM Convert

Dati raccolti per impostazione predefinita

Per impostazione predefinita, lo strumento DM Convert invia dati di utilizzo anonimi a Google per aiutarci a gestire e migliorare lo strumento. Quando lo strumento DM Convert viene eseguito, vengono raccolti i dati sull'operazione richiesta, sul successo dell'operazione e sulla tempistica della conversione. Questi dati sono anonimi ed escludono informazioni che consentono l'identificazione personale, dati sensibili o contenuti dei clienti.

I dati di utilizzo potrebbero contenere:

  • Parametri di input del comando di conversione: registriamo i valori dei parametri del comando di conversione quando esegui lo strumento, incluso il formato di output (KRM o Terraform) e le rappresentazioni booleane che indicano se sono stati specificati altri flag (non raccogliamo i valori specifici di questi flag).

  • Risultato della conversione: registriamo i risultati della conversione, incluso lo stato della conversione (SUCCESS o FAILURE), nonché il codice di errore e il messaggio di errore, se si verifica un problema.

  • Tempo di conversione: registriamo l'ora di inizio e di fine della conversione.

Come usiamo questi dati

Google raccoglie ed elabora i dati di utilizzo per:

  • Comprendere come viene utilizzato lo strumento, incluse le funzionalità e le impostazioni più comuni.

  • Diagnosticare l'utilizzo senza successo dello strumento e fornire indicazioni agli utenti che richiedono assistenza tecnica.

  • Migliorare lo strumento risolvendo i problemi e potenzialmente aumentando la copertura delle funzionalità.

Disattivare la raccolta dei dati

Per impostazione predefinita, Google raccoglie i dati di utilizzo quando esegui una conversione, ma questa raccolta di dati può essere disattivata.

Per disattivare la raccolta dei dati per una conversione specifica, puoi specificare il flag --opt_out_data_collection=true nel comando di conversione. Per continuare a disattivare questa raccolta di dati in futuro, devi specificare il flag ogni volta che esegui una conversione.

Per attivare la raccolta dei dati per una conversione specifica, puoi specificare il flag --opt_out_data_collection=false nel comando di conversione oppure ometterlo dal comando.