Per configurare Terraform nel tuo ambiente air-gap 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 propri flussi di lavoro hardware e software con air gap. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC air-gapped.
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 gcloud CLI. Per saperne di più, consulta Utilizzare gcloud CLI.
Genera il file kubeconfig per il server API o il cluster che ospita le risorse che vuoi gestire con Terraform. Per ulteriori informazioni, vedi Recuperare un file kubeconfig.
Configura Terraform
Per configurare Terraform nel tuo ambiente GDC, completa quanto segue:
All'interno del modulo Terraform o della raccolta di file Terraform sulla tua 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 tue 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 di Terraform nel bucket di archiviazione specificato nel passaggio precedente:
terraform initTerraform potrebbe richiedere una regione AWS come input obbligatorio, ma il valore non viene utilizzato perché utilizzi l'object storage GDC. Inserisci una regione AWS qualsiasi per soddisfare il requisito.
Esegui il deployment della risorsa del ruolo del cluster
crd-viewere associala 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 gestisci con Terraform.USER_EMAIL: l'email dell'utente a cui associare il ruolo.
Esegui il deployment del ruolo
crd-viewersu ogni server API o cluster che vuoi utilizzare per 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