从 ConfigManagement API 迁移到 PolicyController API

本页介绍了如何从 ConfigManagement API 迁移到 PolicyController API 以管理 Policy Controller。PolicyController API 提供与安装和管理 Policy Controller 相同的功能

完全迁移的步骤因您安装 Policy Controller 时所用的方法而异。

如果您使用以 gcloud container fleet policycontroller 开头的 gcloud CLI PolicyController 命令,则表示您已经在使用 PolicyController API。对此,您无需执行任何操作。 否则,请查看用于安装政策控制器的方法的说明:

config management

如果您使用以 gcloud alpha container fleet config-management 开头的 gcloud CLI 命令,请改用以 gcloud container fleet policycontroller 开头的 gcloud CLI Policy Controller 命令。如需查看命令列表,请参阅 gcloud CLI 文档。除此之外,您无需采取其他措施。

如果您的 Google Cloud CLI apply spec 文件包含 policyController 块,请将其移除,以确保与 Config Sync 兼容。

Terraform

如果您使用的是使用功能名称 "configmanagement" 配置 Policy Controller 的 Terraform 资源,则应完成以下步骤,改用功能名称为 "policycontroller" 的 Terraform 资源:

  1. 使用以下代码块创建新的 Terraform 文件或更新 Terraform 文件:

    resource "google_gke_hub_feature" "feature" {
      name = "policycontroller"
      location = "global"
    }
    
    resource "google_gke_hub_feature_membership" "feature_member" {
      feature = google_gke_hub_feature.feature.name
      location = "global"
      membership = MEMBERSHIP_NAME
      project = PROJECT_ID
       policycontroller {
          policy_controller_hub_config {
            install_spec = "INSTALL_SPEC_ENABLED"
        }
      }
    }
    

    替换以下内容:

    • MEMBERSHIP:已安装 Policy Controller 的已注册集群的成员资格名称。
    • PROJECT_ID:您的项目 ID。
  2. "configmanagement" 块中移除 "policycontroller" 块。如果您使用 "configmanagement" 管理 Policy Controller,则可以移除整个代码块。

  3. 请完成以下任一步骤,导入 Policy Controller 会员功能设置

    1. 运行以下命令:

      terraform import "google_gke_hub_feature.policycontroller" "projects/PROJECT_ID/locations/global/features/policycontroller"
      terraform import "google_gke_hub_feature_membership.policycontroller" "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      
    2. 导入块添加到 Terraform 资源:

      import {
         to = google_gke_hub_feature_membership.policycontroller
         id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      }
      
  4. 应用 Policy Controller 设置:

    terraform apply
    

Config Connector

如需停止使用 configmanagement.policyController 规范,请完成以下步骤:

  1. policycontroller 字段中输入 spec.ResourceID 号码,以创建或更新 GKEHubFeatureMembership 规范

  2. 如果您有现有的 GKEHubFeatureMembership 使用 spec.configmanagement.policyController 字段,请从 configmanagement 规范中移除所有 policycontroller 字段。

kubectl

如果您使用 kubectl 命令通过 ConfigManagement 对象管理 Policy Controller,请改用以 gcloud container fleet policycontroller 开头的 gcloud CLI Policy Controller 命令。除此之外,您无需采取其他措施。

如果您的 ConfigManagement 对象包含 policyController 块,请将其移除,以便与 Config Sync 兼容。

您可以参阅以下资源,详细了解 Policy Controller API: