Terraform verwenden

Wenn Sie Terraform in Ihrer GDC-Umgebung (Google Distributed Cloud) mit Air Gap konfigurieren möchten, müssen Sie es herunterladen und so konfigurieren, dass Kubernetes-Ressourcen verarbeitet werden.

Dieses Dokument richtet sich an alle Zielgruppen, die Terraform einrichten müssen, um ihre Hardware- und Software-Workflows in Air-Gap-Umgebungen zu verwalten. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

  • Laden Sie Terraform auf Ihren Arbeitsplatz herunter. Folgen Sie dazu der Dokumentation von HashiCorp: https://developer.hashicorp.com/terraform/install.

  • Prüfen Sie, ob Sie einen vorhandenen GDC-Speicher-Bucket haben. Wenn Sie keinen Speicher-Bucket haben, erstellen Sie einen. Weitere Informationen finden Sie unter Storage-Buckets erstellen.

  • Installieren Sie die gcloud CLI. Weitere Informationen finden Sie unter gdcloud CLI verwenden.

  • Generieren Sie die kubeconfig-Datei für den API-Server oder Cluster, auf dem die Ressourcen gehostet werden, die Sie mit Terraform verwalten möchten. Weitere Informationen finden Sie unter kubeconfig-Datei abrufen.

Terraform einrichten

So richten Sie Terraform in Ihrer GDC-Umgebung ein:

  1. Erstellen Sie in Ihrem Terraform-Modul oder in der Sammlung von Terraform-Dateien auf Ihrer Workstation die Datei main.tf und fügen Sie die folgende Konfiguration hinzu:

    terraform {
      backend "s3" {
        bucket = "BUCKET_FQN"
        key = "TF_STATE_PATH"
        endpoint = "BUCKET_ENDPOINT"
        skip_credentials_validation = true
        force_path_style = true
        access_key = "ACCESS_KEY"
        secret_key = "SECRET_KEY"
      }
    }
    

    Ersetzen Sie Folgendes:

    • BUCKET_FQN: der voll qualifizierte Name aus der benutzerdefinierten Ressource Bucket.

    • TF_STATE_PATH: Der Pfad der Terraform-Zustandsdatei, die im Storage-Bucket gespeichert werden soll.

    • BUCKET_ENDPOINT: der Endpunkt der benutzerdefinierten Ressource Bucket.

    • ACCESS_KEY: der Zugriffsschlüssel, der aus dem Secret mit Ihren Zugangsdaten abgerufen wurde. Weitere Informationen zum Abrufen des Zugriffsschlüssels finden Sie unter Anmeldedaten für den Bucket-Zugriff abrufen.

    • SECRET_KEY: Der geheime Schlüssel, der aus dem Secret mit Ihren Anmeldedaten für den Zugriff abgerufen wird. Weitere Informationen zum Abrufen des geheimen Schlüssels finden Sie unter Anmeldedaten für den Bucket-Zugriff abrufen.

  2. Initialisieren Sie Ihre Terraform-Zustandsdatei im Speicher-Bucket, den Sie im vorherigen Schritt angegeben haben:

    terraform init
    

    Terraform fordert möglicherweise eine AWS-Region als erforderliche Eingabe an, aber der Wert wird nicht verwendet, da Sie GDC-Objektspeicher verwenden. Geben Sie eine beliebige AWS-Region ein, um die Anforderung zu erfüllen.

  3. Stellen Sie die Clusterrollenressource crd-viewer bereit und binden Sie sie an Ihr Nutzerkonto:

    kubectl apply --kubeconfig KUBECONFIG -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: crd-viewer
    rules:
    - apiGroups: ["apiextensions.k8s.io"]
      resources: ["customresourcedefinitions"]
      verbs: ["get", "list", "watch"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: crd-viewer-binding
    subjects:
    - kind: User
      name: USER_EMAIL
    roleRef:
      kind: ClusterRole
      name: crd-viewer
      apiGroup: rbac.authorization.k8s.io
    EOF
    

    Ersetzen Sie Folgendes:

    • KUBECONFIG: die kubeconfig-Datei des API-Servers oder Clusters, der die Ressourcen hostet, die Sie mit Terraform verwalten.

    • USER_EMAIL: die E-Mail-Adresse des Nutzers, an den die Rolle gebunden werden soll.

    Stellen Sie die Rolle crd-viewer auf jedem API-Server oder Cluster bereit, für den Sie Terraform verwenden möchten.

  4. Fügen Sie in der Datei main.tf den folgenden required_providers-Block ein:

    terraform {
      required_providers {
        kubernetes = {
          source = "hashicorp/kubernetes"
          version = ">=2.24.0"
        }
      }
    }
    

    Mit dieser Konfiguration wird der Kubernetes-Provider installiert, um Kubernetes-Ressourcen in Ihrer GDC-Umgebung bereitzustellen und zu verwalten.

  5. Initialisieren Sie Ihr Terraform-Arbeitsverzeichnis, um den Anbieter zu installieren:

    terraform init
    

Nächste Schritte