使用 Terraform

如要在 Google Distributed Cloud (GDC) 氣隙隔離環境中設定 Terraform,您必須下載並設定 Terraform,才能處理 Kubernetes 資源。

這份文件適用於所有需要設定 Terraform 的目標對象群組,方便他們管理與氣隙硬體和軟體工作流程相關的作業。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件

事前準備

設定 Terraform

如要在 GDC 環境中設定 Terraform,請完成下列步驟:

  1. 在 Terraform 模組中,或工作站上的 Terraform 檔案集合中,建立 main.tf 檔案並新增下列設定:

    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"
      }
    }
    

    更改下列內容:

    • BUCKET_FQNBucket 自訂資源的完整名稱。

    • TF_STATE_PATH:要儲存在儲存空間 bucket 中的 Terraform 狀態檔案路徑。

    • BUCKET_ENDPOINT:來自Bucket自訂資源的端點。

    • ACCESS_KEY:從包含存取憑證的密鑰取得的存取金鑰。如要進一步瞭解如何取得存取金鑰,請參閱「取得 bucket 存取憑證」。

    • SECRET_KEY:從包含存取憑證的密鑰取得的密鑰。如要進一步瞭解如何取得私密金鑰,請參閱「取得 bucket 存取憑證」。

  2. 在您於上一步驟指定的儲存空間 bucket 中,初始化 Terraform 狀態檔案:

    terraform init
    

    Terraform 可能會要求提供 AWS 區域做為必要輸入內容,但由於您使用的是 GDC 物件儲存空間,因此系統不會使用該值。輸入任何 AWS 區域,即可滿足這項需求。

  3. 部署 crd-viewer 叢集角色資源,並繫結至您的使用者帳戶:

    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
    

    更改下列內容:

    • KUBECONFIG:API 伺服器或叢集的 kubeconfig 檔案,其中包含您要透過 Terraform 管理的資源。

    • USER_EMAIL:要將角色繫結至的使用者電子郵件地址。

    crd-viewer 角色部署至要使用 Terraform 的每個 API 伺服器或叢集。

  4. main.tf 檔案中,插入下列 required_providers 區塊:

    terraform {
      required_providers {
        kubernetes = {
          source = "hashicorp/kubernetes"
          version = ">=2.24.0"
        }
      }
    }
    

    這項設定會安裝 Kubernetes 供應商,在 GDC 環境中佈建及管理 Kubernetes 資源。

  5. 初始化 Terraform 工作目錄,安裝供應商:

    terraform init
    

後續步驟