使用 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:要存储在存储桶中的 Terraform 状态文件的路径。

    • BUCKET_ENDPOINTBucket 自定义资源的端点。

    • ACCESS_KEY:从包含访问凭据的 Secret 中获取的访问密钥。如需详细了解如何 获取访问密钥,请参阅 获取存储桶访问凭据

    • SECRET_KEY:从包含访问凭据的 Secret 中获取的 Secret 密钥。如需详细了解如何 获取 Secret 密钥,请参阅 获取存储桶访问凭据

  2. 在您在上一步中指定的存储桶中初始化 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:托管您要使用 Terraform 管理的资源的 API 服务器或集群的 kubeconfig 文件。

    • 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
    

后续步骤