Von der ConfigManagement API zur PolicyController API migrieren

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.

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. Gehen Sie dazu so vor:

  1. Kopieren Sie Ihre vorhandene Terraform-Datei in eine neue Datei oder aktualisieren Sie die 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 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 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-Mitgliedschaftsfunktion. Gehen Sie dazu so vor:

    1. Führen Sie dazu diesen Befehl aus:

      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. Fügen Sie Ihrer Terraform-Ressource einen Importblock hinzu:

      import {
         to = google_gke_hub_feature_membership.policycontroller
         id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      }
      
  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 als Hinweis auf den Ursprung der Ressource belassen.

Config Connector

So stellen Sie die Verwendung der configmanagement.policyController-Spezifikation ein:

  1. Erstelle oder aktualisiere die GKEHubFeatureMembership-Spezifikation, indem du die spec.ResourceID-Nummer in das Feld policycontroller eingibst.

  2. Wenn Sie bereits eine GKEHubFeatureMembership haben, in der das Feld spec.configmanagement.policyController verwendet wird, entfernen Sie alle policycontroller-Felder aus der configmanagement-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: