Menggunakan Terraform

Untuk mengonfigurasi Terraform di lingkungan air gap Google Distributed Cloud (GDC), 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 dari internet. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.

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 yang sudah ada. 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 gcloud 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, selesaikan langkah-langkah berikut:

  1. Dalam modul Terraform, atau kumpulan file Terraform di workstation, buat file main.tf dan 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 kustom Bucket.

    • TF_STATE_PATH: jalur file status Terraform yang akan disimpan di bucket penyimpanan.

    • BUCKET_ENDPOINT: endpoint dari resource kustom Bucket.

    • 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 rahasia yang diperoleh dari secret yang berisi kredensial akses Anda. Untuk mengetahui informasi selengkapnya tentang cara mendapatkan kunci rahasia, lihat Mendapatkan kredensial akses bucket.

  2. Lakukan inisialisasi file status Terraform Anda di bucket penyimpanan yang Anda tentukan pada langkah sebelumnya:

    terraform init
    

    Terraform 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.

  3. Deploy resource peran cluster crd-viewer dan 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
    EOF
    

    Ganti kode berikut:

    • KUBECONFIG: file kubeconfig server API atau cluster yang menghosting resource yang Anda kelola dengan Terraform.

    • USER_EMAIL: email pengguna untuk mengikat peran.

    Deploy peran crd-viewer ke setiap server atau cluster API yang ingin Anda gunakan Terraform.

  4. Dalam file main.tf, masukkan blok required_providers berikut:

    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.

  5. Lakukan inisialisasi direktori kerja Terraform Anda untuk menginstal penyedia:

    terraform init
    

Langkah berikutnya