HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Terraform fornisce plug-in chiamati provider che ti consentono di interagire con i cloud provider 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/D, 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 la CLI Terraform per applicarla alle tue risorse GDC.
I passaggi seguenti spiegano come funziona Terraform:
Descrivi l'infrastruttura di cui vuoi eseguire il provisioning in un file di configurazione Terraform. Non devi scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per conto tuo.
Esegui il comando
terraform plan
, che valuta la configurazione e genera un piano di esecuzione. Puoi rivedere il piano e apportare le modifiche necessarie.Esegui il comando
terraform apply
, che esegue le seguenti azioni:Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API GDC air-gapped corrispondenti in background.
Crea un file di stato Terraform, ovvero un file JSON che mappa le risorse nel 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.
Quando esegui
terraform apply
, Terraform utilizza il mapping nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:Se un oggetto risorsa è definito nel file di configurazione, ma non esiste nel file di stato, Terraform lo crea.
Se un oggetto risorsa esiste nel file di stato, ma ha una configurazione diversa da quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.
Se un oggetto risorsa nel file di stato corrisponde al 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 dell'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
|