Von der ConfigManagement API zur PolicyController API migrieren

Auf dieser Seite wird erläutert, wie Sie die ConfigManagement API zur Verwaltung von Policy Controller zur PolicyController API migrieren. Die PolicyController API bietet dieselben Funktionen zum Installieren und Verwalten von Policy Controller.

Ab April 2025 werden die Installation oder Aktualisierung von Policy Controller in der configManagement API-Version 1.21 und höher nicht mehr unterstützt. Der Versuch, Policy Controller mit dieser Methode zu aktualisieren oder zu installieren, schlägt mit einem Fehler fehl. Folgen Sie der Anleitung auf dieser Seite, um zu migrieren und Policy Controller weiterhin verwenden zu können.

Die Schritte für die vollständige Migration hängen davon ab, welche Installationsmethode Sie zum Installieren von Policy Controller verwendet haben.

Wenn Sie PolicyController-Befehle der gcloud CLI verwenden, die mit gcloud container fleet policycontroller beginnen, verwenden Sie bereits die PolicyController API. Sie müssen nichts tun. Andernfalls sehen Sie sich die Anleitung für die Methode an, mit der Sie Policy Controller installiert haben:

config management

Wenn Sie gcloud CLI-Befehle verwenden, die mit gcloud alpha container fleet config-management beginnen, wechseln Sie zu gcloud CLI Policy Controller-Befehlen, die mit gcloud container fleet policycontroller beginnen. Eine Liste der Befehle finden Sie in der gcloud CLI-Dokumentation. Ansonsten sind keine weiteren Maßnahmen erforderlich.

Wenn Ihre Google Cloud CLI-Datei apply spec 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:

  1. Kopieren Sie Ihre vorhandene Terraform-Datei in eine neue Datei oder aktualisieren Sie Ihre Terraform-Datei 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.
  2. Entfernen Sie den Block "policy_controller" aus Ihrer vorhandenen Terraform-Ressource. Sie finden den Block unter dem "configmanagement"-Block. Wenn Sie die Ressource nur zum Verwalten von Policy Controller verwenden, können Sie den gesamten configmanagement-Block entfernen. Wenn Sie die Ressource zum Verwalten von Config Sync verwenden, entfernen Sie nur den Policy Controller-Block. Ihr configmanagement-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
          }
       }
    }
    
  3. Importieren Sie die Einstellungen für die Policy Controller-Mitgliedschaft, indem Sie einen der folgenden Schritte ausführen:

    1. 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"
      
    2. 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"
      }
      
  4. Wenden Sie die Policy Controller-Einstellungen an:

    terraform apply
    
  5. 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 lassen, um den Ursprung der Ressource zu dokumentieren.

Config Connector

Führen Sie die folgenden Schritte aus, um die Verwendung der configmanagement.policyController-Spezifikation zu beenden:

  1. Erstellen Sie eine neue GKEHubFeatureMembership-Spezifikation mit den erforderlichen policycontroller-Feldern. Achten Sie darauf, dass Sie das Feld resourceID auf policyController setzen.

  2. Wenn Sie eine vorhandene GKEHubFeatureMembership haben, in der das Feld spec.configmanagement.policyController verwendet wird, entfernen Sie alle policycontroller-Felder aus der configmanagement-Spezifikation.

kubectl

Wenn Sie kubectl-Befehle verwenden, um Policy Controller mit einem ConfigManagement-Objekt zu verwalten, wechseln Sie zu gcloud CLI Policy Controller-Befehlen, die mit gcloud container fleet policycontroller beginnen. Ansonsten sind keine weiteren Maßnahmen erforderlich.

Wenn Ihr ConfigManagement-Objekt den Block policyController enthält, entfernen Sie ihn, um die Kompatibilität mit Config Sync zu gewährleisten.

Weitere Informationen zur Policy Controller API finden Sie in den folgenden Ressourcen: