Panoramica di Terraform

HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e di gestire l'infrastruttura cloud. Terraform fornisce plug-in noti con il nome provider che ti consentono di interagire con i provider cloud e altre API. Per Google Distributed Cloud (GDC) air-gapped, devi utilizzare il provider Kubernetes per eseguire il provisioning delle risorse, poiché non esiste un provider GDC air-gapped specifico per Terraform.

Le risorse GDC possono essere gestite dal provider Kubernetes con la gestione completa del ciclo di vita delle risorse Kubernetes.

Operazione Provider Terraform
Crea

Provider Kubernetes
Leggi
Aggiorna
Elimina N/A, usa terraform destroy

Come funziona Terraform

Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per descrivere l'infrastruttura di cui vuoi eseguire il provisioning nel tuo progetto GDC. Dopo aver creato questa configurazione in uno o più file di configurazione Terraform, puoi utilizzare Terraform CLI per applicarla alle risorse GDC.

I passaggi seguenti spiegano come funziona Terraform:

  1. Puoi descrivere l'infrastruttura di cui vuoi eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per conto tuo.

  2. Puoi eseguire il comando terraform plan, che valuta la configurazione e genera un piano di esecuzione. Puoi rivedere il piano e apportare le modifiche necessarie.

  3. Esegui il comando terraform apply, che esegue le seguenti azioni:

    1. Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API GDC air-gapped corrispondenti in background.

    2. Crea un file di stato Terraform, ovvero un file JSON che mappa le risorse nel tuo file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere traccia dello stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.

    3. Quando esegui terraform apply, Terraform utilizza la mappatura nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:

      • Se un oggetto della risorsa è definito nel file di configurazione, ma non esiste nel file dello stato, Terraform lo crea.

      • Se nel file dello stato esiste un oggetto della risorsa, ma la sua configurazione è diversa da quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.

      • Se un oggetto della risorsa nel file dello stato corrisponde al tuo file di configurazione, Terraform lascia la risorsa invariata.

Risorse Terraform per GDC con air gap

Le risorse sono gli elementi fondamentali del linguaggio Terraform. Ogni blocco di risorse descrive uno o più oggetti di infrastruttura.

GDC air-gapped è basato su Kubernetes. Oltre alle API Kubernetes di base come Node, PersistentVolume e Service, supporta anche l'API CustomResourceDefinition. Utilizzando le definizioni di risorse personalizzate, vengono create API specifiche di GDC per rappresentare l'infrastruttura air-gap di GDC.

La tabella seguente elenca le risorse Terraform disponibili per GDC air-gapped:

Risorse Terraform Origini dati
kubernetes_manifest

Passaggi successivi