本页介绍了如何从 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 资源:
使用以下代码块创建新的 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。
从
"configmanagement"
块中移除"policycontroller"
块。如果您使用"configmanagement"
仅管理 Policy Controller,则可以移除整个代码块。请完成以下任一步骤,导入 Policy Controller 会员功能设置:
运行以下命令:
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"
将导入块添加到 Terraform 资源:
import { to = google_gke_hub_feature_membership.policycontroller id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME" }
应用 Policy Controller 设置:
terraform apply
Config Connector
如需停止使用 configmanagement.policyController
规范,请完成以下步骤:
在
policycontroller
字段中输入spec.ResourceID
号码,以创建或更新GKEHubFeatureMembership
规范。如果您有现有的
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:
- 使用
gcloud container fleet policycontroller
命令安装 Policy Controller - 查看 Config Connector
GKEHubFeature
参考文档 - 查看 Terraform
google_gke_hub_feature
参考文档