Utilizzo di DM Convert per la transizione 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 dichiarativi supportati da Google. Al momento Google supporta Terraform e KRM (Kubernetes Resource Model).

Perché effettuare la conversione a Terraform o KRM?

Terraform e KRM sono opzioni popolari per la gestione dei servizi e dell'infrastruttura di Google Cloud. Offre ecosistemi attivamente aggiornati, 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 Config Connector per aiutare i clienti a utilizzare Kubernetes per gestire i tipi di risorse Google Cloud.

Terraform

Terraform è uno strumento open source per l'infrastruttura di provisioning. Puoi utilizzare Terraform per scrivere configurazioni dichiarative per gestire i servizi e le risorse Google Cloud utilizzando il provider Terraform per Google Cloud. Per saperne di più, consulta Terraform su Google Cloud.

Kubernetes Resource Model (KRM)

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

Tipi e fornitori di tipi supportati

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

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

Capire in che modo DM Convert traduce i concetti nei vari formati

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

Concetto di Deployment Manager Conversione del connettore KRM/Config Conversione Terraform
References Riferimenti alle risorse, se lo schema KRM definisce il campo come riferimento. Se lo schema di KRM non definisce il campo come riferimento, il riferimento di Deployment Manager viene sostituito con il relativo valore risolto. I riferimenti Terraform hanno l'aspetto e il comportamento simili ai riferimenti di Deployment Manager.
Dipendenze esplicite (depends_on) Nessun supporto per l'ordinamento esplicito delle dipendenze. Le risorse operano in modo coerente. depends_on
Associazioni Identity and Access Management (IAM) (blocchi accessControl autorevoli) IAMPolicy Tipi di <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 con equivalenti dichiarativi in Terraform vengono convertite. Per maggiori dettagli, consulta la sezione Assistenza per le azioni.

Supporto per le azioni in DM Convert (per Terraform)

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

  • Applica patch, elimina ed elenca API

  • 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 Actions nei seguenti casi:

  • Sostituisce le chiamate Action 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.

  • Quando possibile, converte le chiamate di azione in API che ricevono una risorsa ai tipi data di Terraform. Ad esempio, actions: gcp-types/compute-v1:compute.subnetworks.get viene convertito in google_compute_subnetwork.

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

Per informazioni sulla migrazione dell'utilizzo di Actions a alternative dichiarative all'interno di Deployment Manager, consulta Sostituzione dell'utilizzo delle azioni.

Flusso di lavoro per la conversione a Terraform

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

  1. Identifica la configurazione di Deployment Manager da convertire in Terraform.
  2. Per assicurarti che le risorse siano aggiornate, riconcilia eventuali deployment attivi della configurazione.
  3. Per convertire la tua configurazione in Terraform, esegui lo strumento DM Convert localmente.
  4. Verifica che la configurazione Terraform generata rifletta lo stato attuale delle risorse.
  5. Eliminare 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 dettagliata di questo flusso di lavoro, consulta Convertire le 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 anonimi sull'utilizzo a Google per consentirci di gestire e migliorare lo strumento. Quando viene eseguito lo strumento DM Convert, vengono raccolti i dati relativi all'operazione richiesta, al completamento dell'operazione e alle tempistiche della conversione. Questi dati sono anonimi ed escludono eventuali informazioni che consentono l'identificazione personale, dati sensibili o contenuti dei clienti.

I dati sull'utilizzo possono contenere:

  • Parametri di input del comando di conversione: registriamo i valori dei parametri del comando di conversione durante l'esecuzione dello strumento, inclusi 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, inclusi lo stato della conversione (SUCCESS o FAILURE), nonché il codice e il messaggio di errore, se si verifica un problema.

  • Data conversione: registriamo le ore di inizio e di fine della conversione.

Come usiamo questi dati

Google raccoglie ed elabora i dati sull'utilizzo per:

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

  • Esegui la diagnosi dell'utilizzo non riuscito dello strumento e fornisci indicazioni agli utenti che richiedono assistenza tecnica.

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

Disattivazione della raccolta dei dati

Quando esegui una conversione, Google raccoglie i dati sull'utilizzo per impostazione predefinita, ma la raccolta dei dati può essere disattivata.

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

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