本頁說明如何從 ConfigManagement API 遷移至 PolicyController API,以管理 Policy Controller。PolicyController API 提供安裝及管理 Policy Controller 的相同功能。
自 2025 年 4 月起,configManagement API 1.21 以上版本將不再支援安裝或更新 Policy Controller。如果嘗試使用這種方法升級或安裝 Policy Controller,系統會顯示錯誤訊息,且作業會失敗。請按照本頁的操作說明進行遷移,以便繼續使用 Policy Controller。
完整遷移的步驟會因您安裝 Policy Controller 時使用的方法而異。
如果您使用以 gcloud container fleet policycontroller 開頭的 gcloud CLI PolicyController 指令,表示您已在使用 PolicyController API。廣告主無須採取任何行動,否則,請參閱您用來安裝 Policy Controller 的方法的操作說明:
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
如果您使用 Terraform 資源設定 Policy Controller,且功能名稱為 "configmanagement",請完成下列步驟,改用功能名稱為 "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 # "policycontroller" location = "global" membership = MEMBERSHIP_NAME project = PROJECT_ID policycontroller { policy_controller_hub_config { install_spec = "INSTALL_SPEC_ENABLED" } } }更改下列內容:
MEMBERSHIP:已安裝 Policy Controller 的註冊叢集成員名稱。PROJECT_ID:您的專案 ID。
從現有 Terraform 資源中移除
"policy_controller"區塊。 你可以在"configmanagement"區塊下方找到該區塊。 如果您只使用資源管理 Policy Controller,可以移除整個configmanagement區塊。如果您使用資源管理 Config Sync,請務必只移除 Policy Controller 區塊。舉例來說,您的configmanagement區塊可能類似下列內容:resource "google_gke_hub_feature_membership" "feature_member" { provider = google-beta location = "global" feature = "configmanagement" membership = google_gke_hub_membership.membership.membership_id configmanagement { version = "1.8.0" config_sync { source_format = "unstructured" git { } } # if you're still using the config_sync block, delete only the policy_controller block policy_controller { enabled = true template_library_installed = true referential_rules_enabled = true } } }匯入 Policy Controller 成員資格功能設定,方法如下:
執行下列指令:
terraform import "google_gke_hub_feature.feature" "projects/PROJECT_ID/locations/global/features/policycontroller" terraform import "google_gke_hub_feature_membership.feature_member" "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"在 Terraform 資源中新增匯入區塊:
import { to = google_gke_hub_feature_membership.feature_member id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME" } import { to = google_gke_hub_feature.feature id = "projects/PROJECT_ID/locations/global/features/policycontroller" }
套用 Policy Controller 設定:
terraform apply選用:匯入完成後,您可以從 Terraform 資源中移除匯入區塊。或者,您也可以將匯入區塊保留在設定中,做為資源來源的記錄。
Config Connector
如要停止使用 configmanagement.policyController 規格,請完成下列步驟:
建立新的
GKEHubFeatureMembership規格,並填寫必要的policycontroller欄位。請務必將resourceID欄位設為policyController。如果現有
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參考說明文件