Terraform-Übersicht

HashiCorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Terraform bietet Plug-ins, die als Anbieter bezeichnet werden und mit denen Sie mit Cloud-Anbietern und anderen APIs interagieren können. Für Google Distributed Cloud (GDC) Air-Gapped müssen Sie den Kubernetes-Provider verwenden, um Ressourcen bereitzustellen, da es keinen spezifischen GDC Air-Gapped-Provider für Terraform gibt.

GDC-Ressourcen können vom Kubernetes-Anbieter mit der vollständigen Lebenszyklusverwaltung von Kubernetes-Ressourcen verwaltet werden.

Vorgang Terraform-Anbieter
Erstellen

Kubernetes-Anbieter
Lesen
Aktualisieren
Löschen Nicht zutreffend, verwenden Sie terraform destroy

So funktioniert Terraform

Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur beschreiben können, die Sie in Ihrem GDC-Projekt bereitstellen möchten. Nachdem Sie diese Konfiguration in einer oder mehreren Terraform-Konfigurationsdateien erstellt haben, können Sie die Konfiguration mit der Terraform-Befehlszeile auf Ihre GDC-Ressourcen anwenden.

In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:

  1. Sie beschreiben die Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie die Infrastruktur bereitgestellt wird. Terraform stellt die Infrastruktur für Sie bereit.

  2. Sie führen den Befehl terraform plan aus, der Ihre Konfiguration auswertet und einen Ausführungsplan generiert. Sie können den Plan prüfen und bei Bedarf Änderungen vornehmen.

  3. Anschließend führen Sie den Befehl terraform apply aus, der die folgenden Aktionen ausführt:

    1. Ihre Infrastruktur wird basierend auf Ihrem Ausführungsplan bereitgestellt, indem die entsprechenden GDC-APIs für Air-Gap-Umgebungen im Hintergrund aufgerufen werden.

    2. Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-Datei, die die Ressourcen in Ihrer Konfigurationsdatei den Ressourcen in der realen Infrastruktur zuordnet. Terraform verwendet diese Datei, um den aktuellen Status Ihrer Infrastruktur zu erfassen und zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden müssen.

    3. Wenn Sie terraform apply ausführen, verwendet Terraform die Zuordnung in der Zustandsdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:

      • Wenn ein Ressourcenobjekt in der Konfigurationsdatei definiert, aber in der Zustandsdatei nicht vorhanden ist, wird es von Terraform erstellt.

      • Wenn ein Ressourcenobjekt in der Zustandsdatei vorhanden ist, aber eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.

      • Wenn ein Ressourcenobjekt in der Zustandsdatei mit der Konfigurationsdatei übereinstimmt, lässt Terraform die Ressource unverändert.

Terraform-Ressourcen für GDC mit Air Gap

Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jeder Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte.

GDC Air-Gapped basiert auf Kubernetes. Neben den Kubernetes-Kern-APIs wie Node, PersistentVolume und Service wird auch die CustomResourceDefinition API unterstützt. Mithilfe von benutzerdefinierten Ressourcendefinitionen werden GDC-spezifische APIs erstellt, um die GDC-Airgap-Infrastruktur darzustellen.

In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für GDC Air-Gapped verfügbar sind:

Terraform-Ressourcen Datenquellen
kubernetes_manifest

Nächste Schritte