Auf dieser Seite wird erläutert, wie Sie zur Verwaltung von Policy Controller von der ConfigManagement
API zur PolicyController
API migrieren.
Die PolicyController
API bietet dieselben Funktionen zum Installieren und Verwalten von Policy Controller.
Ab April 2025 werden die Installation oder Updates von Policy Controllern in der configManagement
API-Version 1.21 und höher nicht mehr unterstützt. Versuche, Policy Controller mit dieser Methode zu aktualisieren oder zu installieren, schlagen mit einem Fehler fehl. Folgen Sie der Anleitung auf dieser Seite, um die Migration durchzuführen, damit Sie Policy Controller weiterhin verwenden können.
Die Schritte für die vollständige Migration unterscheiden sich je nach der Installationsmethode, die Sie für Policy Controller verwendet haben.
Wenn Sie gcloud CLI-PolicyController
-Befehle verwenden, die mit gcloud container fleet policycontroller
beginnen, verwenden Sie bereits die PolicyController
API. Sie müssen nichts tun. Andernfalls folgen Sie der Anleitung für die Methode, mit der Sie Policy Controller installiert haben:
config management
Wenn Sie gcloud CLI-Befehle verwenden, die mit gcloud alpha container fleet config-management
beginnen, verwenden Sie stattdessen gcloud CLI-Policy Controller-Befehle, die mit gcloud container fleet policycontroller
beginnen. Eine Liste der Befehle finden Sie in der Dokumentation zur gcloud CLI. Sie müssen nichts weiter unternehmen.
Wenn Ihre apply spec
-Datei der Google Cloud CLI den Block policyController
enthält, entfernen Sie ihn, um die Kompatibilität mit Config Sync zu gewährleisten.
Terraform
Wenn Sie eine Terraform-Ressource verwenden, die Policy Controller mit dem Feature-Namen "configmanagement"
konfiguriert, sollten Sie zu einer Terraform-Ressource mit dem Feature-Namen "policycontroller"
wechseln. Führen Sie dazu die folgenden Schritte aus:
Kopieren Sie Ihre vorhandene Terraform-Datei in eine neue Datei oder aktualisieren Sie sie und fügen Sie Folgendes hinzu:
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" } } }
Ersetzen Sie Folgendes:
MEMBERSHIP
: Name der Mitgliedschaft des registrierten Clusters, auf dem Policy Controller installiert ist.PROJECT_ID
: Ihre Projekt-ID.
Entfernen Sie den Block
"policy_controller"
aus der vorhandenen Terraform-Ressource. Sie finden den Block unter dem Block"configmanagement"
. Wenn Sie die Ressource nur zum Verwalten von Policy Controller verwenden, können Sie den gesamtenconfigmanagement
-Block entfernen. Wenn Sie die Ressource zum Verwalten von Config Sync verwenden, entfernen Sie nur den Policy Controller-Block. Ihrconfigmanagement
-Block könnte beispielsweise so aussehen: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 } } }
Importieren Sie die Einstellungen für die Policy Controller-Mitgliedschaftsfunktion. Gehen Sie dazu so vor:
Führen Sie dazu diesen Befehl aus:
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"
Fügen Sie Ihrer Terraform-Ressource einen Importblock hinzu:
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" }
Wenden Sie die Policy Controller-Einstellungen an:
terraform apply
Optional: Nachdem der Import abgeschlossen ist, können Sie den Importblock aus Ihrer Terraform-Ressource entfernen. Alternativ können Sie den Importblock in Ihrer Konfiguration als Hinweis auf den Ursprung der Ressource belassen.
Config Connector
So stellen Sie die Verwendung der configmanagement.policyController
-Spezifikation ein:
Erstellen Sie eine neue
GKEHubFeatureMembership
-Spezifikation mit den erforderlichenpolicycontroller
-Feldern. Achten Sie darauf, dass das FeldresourceID
aufpolicyController
gesetzt ist.Wenn Sie bereits eine
GKEHubFeatureMembership
haben, für die das Feldspec.configmanagement.policyController
verwendet wird, entfernen Sie allepolicycontroller
-Felder aus derconfigmanagement
-Spezifikation.
kubectl
Wenn Sie Policy Controller mit einem ConfigManagement
-Objekt über kubectl
-Befehle verwalten, verwenden Sie stattdessen Policy Controller-Befehle der gcloud CLI, die mit gcloud container fleet policycontroller
beginnen. Sie müssen nichts weiter unternehmen.
Wenn Ihr ConfigManagement
-Objekt den Block policyController
enthält, entfernen Sie ihn, um für die Kompatibilität mit Config Sync zu sorgen.
Weitere Informationen zur Policy Controller API finden Sie in den folgenden Ressourcen:
- Policy Controller mit
gcloud container fleet policycontroller
-Befehlen installieren - Referenzdokumentation für Config Connector
GKEHubFeature
- Referenzdokumentation zu Terraform
google_gke_hub_feature