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. Google supporta attualmente Terraform e Kubernetes Resource Model (KRM).
Perché eseguire la conversione in Terraform o KRM?
Terraform e KRM sono opzioni molto utilizzate per gestire i servizi e l'infrastruttura di Google Cloud. Offrono ecosistemi aggiornati attivamente, con il supporto di 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 anche lanciato Config Connector per aiutare i clienti a utilizzare Kubernetes per gestire i tipi di risorse di Google Cloud.
Terraform
Terraform è uno strumento open source per il provisioning dell'infrastruttura. Puoi utilizzare Terraform per scrivere configurazioni declarative per gestire i servizi e le risorse Google Cloud utilizzando il provider Terraform per Google Cloud. Per ulteriori informazioni, consulta Terraform su Google Cloud.
Modello di risorse Kubernetes (KRM)
KRM è un paradigma per la creazione di API e definizioni di risorse per la gestione della configurazione declarative. Rappresenta le risorse Google Cloud 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 modello Jinja o Python in file di configurazione KRM o Terraform.
Per verificare lo stato attuale del supporto di DM Convert per i fornitori di tipi e per i tipi di risorse, puoi utilizzare il flag --list-supported-types
.
In che modo DM Convert traduce i concetti nei vari formati
La seguente tabella mostra come DM Convert traduce i concetti di Deployment Manager in KRM e Terraform:
Concetto di Deployment Manager | Conversione di KRM/Config Connector | Conversione di 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 a Deployment Manager viene sostituito con il 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 in un secondo momento. | depends_on |
Associazioni IAM (Identity and Access Management) (blocchi accessControl autorevoli) |
IAMPolicy |
Tipi <resource_type>_iam_policy (ad es. google_pubsub_topic_iam_policy ) |
Associazioni IAM (tipi di iamMemberBinding non autorevoli) |
IAMPolicyMember |
<resource_type>_iam_member (ad esempio google_project_iam_member ) |
Tipi compositi | I tipi composti sono stati ritirati. DM Convert non le converte. | I tipi composti sono stati ritirati. DM Convert non le 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 di Actions in DM Convert (per Terraform)
Azioni è una funzionalità di 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:
Esegui patch, elimina ed elenca le API
API definite in 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
si converte ingoogle_storage_bucket
.Converte le chiamate di azioni in API che assegnano una risorsa ai tipi
data
di Terraform se possibile. Ad esempio,actions: gcp-types/compute-v1:compute.subnetworks.get
si converte ingoogle_compute_subnetwork
.Converte i comandi
setIamPolicy
in risorse*_iam_policy
(autoritative) o*_iam_member
(non authoritative), a seconda che vengano o meno utilizzati congetIamPolicy
.
Per informazioni sulla migrazione dell'utilizzo di Azioni ad alternative dichiarative in 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:
- Identifica la configurazione di Deployment Manager che vuoi convertire in Terraform.
- Per assicurarti che le risorse siano aggiornate, riconcilia eventuali implementazioni attive della configurazione.
- Per convertire la configurazione in Terraform, esegui lo strumento DM Convert localmente.
- Verifica che la configurazione Terraform generata rifletta lo stato attuale delle risorse.
- Elimina il deployment di Deployment Manager. Per conservare le risorse quando elimini il deployment, imposta
delete-policy
suabandon
.
Ti consigliamo di seguire le best practice di Terraform, ad esempio:
- Archiviazione dello stato di Terraform in un bucket Cloud Storage
- Utilizzare Cloud Build per gestire l'attuazione.
Per una procedura dettagliata di questo flusso di lavoro, consulta Conversione delle configurazioni di Deployment Manager con DM Convert.
Raccolta dei dati in DM Convert
Che cosa raccogliamo per impostazione predefinita
Per impostazione predefinita, lo strumento DM Convert invia a Google dati anonimi sull'utilizzo per aiutarci a gestire e migliorare lo strumento. Quando viene eseguito lo strumento DM Convert, vengono raccolti i dati relativi all'operazione richiesta, al buon esito dell'operazione e alla 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 tuo comando di conversione quando esegui lo strumento, incluso il formato di output (KRM o Terraform) e le rappresentazioni booleane dell'eventuale specifica di altri flag (non raccogliamo i valori specifici di questi flag).
Risultato della conversione: registriamo i risultati della conversione, tra cui lo stato della conversione (
SUCCESS
oFAILURE
), nonché il codice e il messaggio di errore, se si verifica un problema.Data e ora della conversione:registriamo le ore di inizio e di fine della conversione.
Come usiamo questi dati
Google raccoglie ed elabora i dati di utilizzo per:
Scopri come viene utilizzato lo strumento, incluse le funzionalità e le impostazioni più apprezzate.
Diagnostica l'utilizzo non riuscito dello strumento e fornisci 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
Google raccoglie i dati sull'utilizzo per impostazione predefinita quando esegui una conversione, ma questa raccolta dei 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 dei 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 o omettere il flag dal comando.