Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eHashiCorp Terraform, an infrastructure-as-code tool, provisions and manages cloud infrastructure, using providers to interact with cloud providers and other APIs.\u003c/p\u003e\n"],["\u003cp\u003eFor Google Distributed Cloud (GDC) air-gapped, the Kubernetes Provider is used to provision resources because there is no specific GDC air-gapped provider available for Terraform.\u003c/p\u003e\n"],["\u003cp\u003eTerraform uses a declarative syntax where users define the desired infrastructure in configuration files, and Terraform handles the provisioning, using \u003ccode\u003eterraform plan\u003c/code\u003e to generate an execution plan and \u003ccode\u003eterraform apply\u003c/code\u003e to execute it.\u003c/p\u003e\n"],["\u003cp\u003eThe Kubernetes Provider in Terraform manages GDC resources with full lifecycle management of Kubernetes resources, including creating, reading, and updating, with \u003ccode\u003eterraform destroy\u003c/code\u003e handling deletions.\u003c/p\u003e\n"],["\u003cp\u003eTerraform resources, including the \u003ccode\u003ekubernetes_manifest\u003c/code\u003e resource, represent infrastructure objects and are used alongside data sources like \u003ccode\u003ekubernetes_resource\u003c/code\u003e and \u003ccode\u003ekubernetes_resources\u003c/code\u003e for managing GDC air-gapped, which is built on top of Kubernetes and supports \u003ccode\u003eCustomResourceDefinition\u003c/code\u003e API.\u003c/p\u003e\n"]]],[],null,["# Terraform overview\n\nHashiCorp Terraform is an infrastructure-as-code (IaC) tool that lets you\nprovision and manage cloud infrastructure. Terraform provides plugins called\n*providers* that let you interact with cloud providers and other APIs. For\nGoogle Distributed Cloud (GDC) air-gapped, you must use the\n[Kubernetes Provider](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs)\nto provision resources since there is no specific GDC\nair-gapped provider for Terraform.\n\nGDC resources can be managed by the Kubernetes Provider\nwith the full lifecycle management of Kubernetes resources.\n\nHow Terraform works\n-------------------\n\nTerraform has a declarative and configuration-oriented syntax, which you can\nuse to describe the infrastructure that you want to provision in your\nGDC project. After you author this configuration in one or more\nTerraform configuration files, you can use the Terraform CLI to apply this\nconfiguration to your GDC resources.\n\nThe following steps explain how Terraform works:\n\n1. You describe the infrastructure you want to provision in a *Terraform\n configuration file*. You don't need to write code describing how to provision\n the infrastructure. Terraform provisions the infrastructure for you.\n\n2. You run the `terraform plan` command, which evaluates your configuration and\n generates an execution plan. You can review the plan and make changes as\n needed.\n\n3. You run the `terraform apply` command, which performs the following\n actions:\n\n 1. It provisions your infrastructure based on your execution plan by\n invoking the corresponding GDC air-gapped APIs in\n the background.\n\n 2. It creates a *Terraform state file*, which is a JSON file that maps the\n resources in your configuration file to the resources in the real-world\n infrastructure. Terraform uses this file to keep a record of the most\n recent state of your infrastructure, and to determine when to create,\n update, and destroy resources.\n\n 3. When you run `terraform apply`, Terraform uses the mapping in\n the state file to compare the existing infrastructure to the code, and make\n updates as necessary:\n\n - If a resource object is defined in the configuration file, but\n doesn't exist in the state file, Terraform creates it.\n\n - If a resource object exists in the state file, but has a different\n configuration from your configuration file, Terraform updates the\n resource to match your configuration file.\n\n - If a resource object in the state file matches your configuration\n file, Terraform leaves the resource unchanged.\n\nTerraform resources for GDC air-gapped\n--------------------------------------\n\n*Resources* are the fundamental elements in the Terraform language. Each\nresource block describes one or more infrastructure objects.\n\nGDC air-gapped is built on top of Kubernetes. Besides\nthe core Kubernetes APIs like `Node`, `PersistentVolume`, and `Service`, it also\nsupports the `CustomResourceDefinition` API. By using custom resource\ndefinitions, GDC-specific APIs are built for\nrepresenting the GDC air-gapped infrastructure.\n\nThe following table lists the Terraform resources available for\nGDC air-gapped:\n\nWhat's next\n-----------\n\n- [Configure Terraform](/distributed-cloud/hosted/docs/latest/gdch/resources/configure-terraform)\n\n- [Terraform on Google Cloud documentation](/docs/terraform)\n\n- [Google Cloud provider documentation in HashiCorp](https://registry.terraform.io/providers/hashicorp/google/latest/docs)\n\n- [Infrastructure as code for Google Cloud](/docs/terraform/iac-overview)"]]