Wenn Sie Terraform in Ihrer Google Distributed Cloud-Umgebung (GDC) ohne Internetverbindung konfigurieren möchten, müssen Sie es herunterladen und so konfigurieren, dass Kubernetes-Ressourcen verarbeitet werden können.
Dieses Dokument richtet sich an alle Zielgruppen, die Terraform einrichten müssen, um ihre Hardware- und Software-Workflows ohne Internetverbindung zu verwalten. Weitere Informationen finden Sie unter Zielgruppen für die GDC-Dokumentation ohne Internetverbindung.
Hinweis
Laden Sie Terraform auf Ihre Workstation herunter. Folgen Sie dazu der Dokumentation von HashiCorp: https://developer.hashicorp.com/terraform/install.
Prüfen Sie, ob Sie einen vorhandenen GDC-Storage-Bucket haben. Wenn Sie keinen Storage-Bucket haben, erstellen Sie einen. Weitere Informationen finden Sie unter Storage-Buckets erstellen.
Installieren Sie die gdcloud CLI. Weitere Informationen finden Sie unter gdcloud CLI verwenden.
Generieren Sie die kubeconfig-Datei für den API-Server oder Cluster, der die Ressourcen hostet, 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:
Erstellen Sie in Ihrem Terraform-Modul oder in der Sammlung von Terraform-Dateien auf Ihrer Workstation die Datei
main.tfund 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 RessourceBucket.TF_STATE_PATH: der Pfad der Terraform-Zustandsdatei, die im Storage-Bucket gespeichert werden soll.BUCKET_ENDPOINT: der Endpunkt aus der benutzerdefinierten RessourceBucket.ACCESS_KEY: der Zugriffsschlüssel, der aus dem Secret mit Ihren Zugangsdaten abgerufen wurde. Weitere Informationen zum Abrufen des Zugriffsschlüssels finden Sie unter Zugangsdaten für den Bucket-Zugriff abrufen.SECRET_KEY: der geheime Schlüssel, der aus dem Secret mit Ihren Zugangsdaten abgerufen wurde. Weitere Informationen zum Abrufen des geheimen Schlüssels finden Sie unter Zugangsdaten für den Bucket-Zugriff abrufen.
Initialisieren Sie die Terraform-Zustandsdatei im Storage-Bucket, den Sie im vorherigen Schritt angegeben haben:
terraform initTerraform fordert möglicherweise eine AWS-Region als erforderliche Eingabe an. Der Wert wird jedoch nicht verwendet, da Sie GDC-Objektspeicher verwenden. Geben Sie eine beliebige AWS-Region ein, um die Anforderung zu erfüllen.
Stellen Sie die Clusterrollenressource
crd-viewerbereit 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 EOFErsetzen 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-viewerauf jedem API-Server oder Cluster bereit, für den Sie Terraform verwenden möchten.Fügen Sie in der Datei
main.tfden folgenden Blockrequired_providersein: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.
Initialisieren Sie das Terraform-Arbeitsverzeichnis, um den Provider zu installieren:
terraform init