Untuk mengonfigurasi Terraform di lingkungan Google Distributed Cloud (GDC) yang terisolasi, Anda harus mendownload dan mengonfigurasinya untuk menangani resource Kubernetes.
Dokumen ini ditujukan untuk semua grup audiens yang perlu menyiapkan Terraform untuk mengelola alur kerja hardware dan software yang terisolasi. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Download Terraform ke workstation Anda dengan mengikuti dokumentasi yang disediakan oleh HashiCorp: https://developer.hashicorp.com/terraform/install.
Pastikan Anda memiliki bucket penyimpanan GDC. Jika Anda tidak memiliki bucket penyimpanan, buat bucket. Untuk mengetahui informasi selengkapnya, lihat Membuat bucket penyimpanan.
Instal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat Menggunakan gdcloud CLI.
Buat file kubeconfig untuk server atau cluster API yang menghosting resource yang ingin Anda kelola dengan Terraform. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan file kubeconfig.
Menyiapkan Terraform
Untuk menyiapkan Terraform di lingkungan GDC, lakukan hal berikut:
Dalam modul Terraform, atau kumpulan file Terraform di workstation Anda, buat file
main.tfdan tambahkan konfigurasi berikut: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" } }Ganti kode berikut:
BUCKET_FQN: nama yang sepenuhnya memenuhi syarat dari resource kustomBucket.TF_STATE_PATH: jalur file status Terraform yang akan disimpan di bucket penyimpanan.BUCKET_ENDPOINT: endpoint dari resource kustomBucket.ACCESS_KEY: kunci akses yang diperoleh dari secret yang berisi kredensial akses Anda. Untuk mengetahui informasi selengkapnya tentang cara mendapatkan kunci akses, lihat Mendapatkan kredensial akses bucket.SECRET_KEY: kunci secret yang diperoleh dari secret yang berisi kredensial akses Anda. Untuk mengetahui informasi selengkapnya tentang cara mendapatkan kunci secret, lihat Mendapatkan kredensial akses bucket.
Lakukan inisialisasi file status Terraform di bucket penyimpanan yang Anda tentukan pada langkah sebelumnya:
terraform initTerraform mungkin meminta region AWS sebagai input yang diperlukan, tetapi nilai tersebut tidak digunakan karena Anda menggunakan penyimpanan objek GDC. Masukkan region AWS apa pun untuk memenuhi persyaratan.
Deploy resource peran cluster
crd-viewerdan ikat ke akun pengguna Anda: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 EOFGanti kode berikut:
KUBECONFIG: file kubeconfig server atau cluster API yang menghosting resource yang Anda kelola dengan Terraform.USER_EMAIL: email pengguna yang akan mengikat peran.
Deploy peran
crd-viewerke setiap server atau cluster API yang ingin Anda gunakan untuk Terraform.Di file
main.tf, sisipkan blokrequired_providersberikut:terraform { required_providers { kubernetes = { source = "hashicorp/kubernetes" version = ">=2.24.0" } } }Konfigurasi ini menginstal penyedia Kubernetes untuk menyediakan dan mengelola resource Kubernetes di lingkungan GDC Anda.
Lakukan inisialisasi direktori kerja Terraform untuk menginstal penyedia:
terraform init