Per configurare Terraform nel tuo ambiente air-gapped Google Distributed Cloud (GDC), devi scaricarlo e configurarlo per gestire le risorse Kubernetes.
Questo documento è destinato a tutti i gruppi di pubblico che devono configurare Terraform per gestire i workflow hardware e software air-gapped. Per saperne di più, consulta Pubblico per la documentazione GDC con air gap.
Prima di iniziare
Scarica Terraform sulla tua workstation seguendo la documentazione fornita da HashiCorp: https://developer.hashicorp.com/terraform/install.
Verifica di avere un bucket di archiviazione GDC esistente. Se non hai un bucket di archiviazione, creane uno. Per saperne di più, consulta Creare bucket di archiviazione.
Installa la CLI gdcloud. Per saperne di più, consulta Utilizzare la CLI gdcloud.
Genera il file kubeconfig per il server API o il cluster che ospita le risorse che vuoi gestire con Terraform. Per saperne di più, consulta Ottenere un file kubeconfig.
Configura Terraform
Per configurare Terraform nel tuo ambiente GDC, completa i seguenti passaggi:
Nel modulo Terraform o nella raccolta di file Terraform sulla workstation, crea il file
main.tfe aggiungi la seguente configurazione: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" } }Sostituisci quanto segue:
BUCKET_FQN: il nome completo della risorsa personalizzataBucket.TF_STATE_PATH: il percorso del file di stato Terraform da archiviare nel bucket di archiviazione.BUCKET_ENDPOINT: l'endpoint della risorsa personalizzataBucket.ACCESS_KEY: la chiave di accesso acquisita dal secret contenente le credenziali di accesso. Per saperne di più su come acquisire la chiave di accesso, consulta Ottenere le credenziali di accesso al bucket.SECRET_KEY: la chiave segreta acquisita dal secret contenente le credenziali di accesso. Per saperne di più su come acquisire la chiave segreta, consulta Ottenere le credenziali di accesso al bucket.
Inizializza il file di stato Terraform nel bucket di archiviazione che hai specificato nel passaggio precedente:
terraform initTerraform potrebbe richiedere una regione AWS come input obbligatorio, ma il valore non viene utilizzato perché stai utilizzando l'object storage GDC. Inserisci una regione AWS qualsiasi per soddisfare il requisito.
Esegui il deployment della risorsa del ruolo del cluster
crd-viewere associa il ruolo al tuo account utente: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 EOFSostituisci quanto segue:
KUBECONFIG: il file kubeconfig del server API o del cluster che ospita le risorse che stai gestendo con Terraform.USER_EMAIL: l'indirizzo email dell'utente a cui associare il ruolo.
Esegui il deployment del ruolo
crd-viewersu ogni server API o cluster per cui vuoi utilizzare Terraform.Nel file
main.tf, inserisci il seguente bloccorequired_providers:terraform { required_providers { kubernetes = { source = "hashicorp/kubernetes" version = ">=2.24.0" } } }Questa configurazione installa il provider Kubernetes per eseguire il provisioning e gestire le risorse Kubernetes nel tuo ambiente GDC.
Inizializza la directory di lavoro di Terraform per installare il provider:
terraform init