Esegui la migrazione dall'API ConfigManagement all'API PolicyController

Questa pagina spiega come eseguire la migrazione dall'API ConfigManagement all'API PolicyController per la gestione di Policy Controller. L'API PolicyController offre le stesse funzionalità per l'installazione e la gestione di Policy Controller.

A partire da aprile 2025, la versione 1.21 e successive dell'API configManagement non supporta più l'installazione o gli aggiornamenti di Policy Controller. Il tentativo di eseguire l'upgrade o installare Policy Controller con questo metodo non riuscirà e verrà visualizzato un errore. Segui le istruzioni riportate in questa pagina per eseguire la migrazione e continuare a utilizzare Policy Controller.

I passaggi per eseguire la migrazione completa variano a seconda del metodo di installazione utilizzato per installare Policy Controller.

Se utilizzi i comandi gcloud CLI PolicyController che iniziano con gcloud container fleet policycontroller, stai già utilizzando l'API PolicyController. Non è richiesto alcun intervento. In caso contrario, rivedi le istruzioni per il metodo che hai utilizzato per installare Policy Controller:

config management

Se utilizzi i comandi gcloud CLI che iniziano con gcloud alpha container fleet config-management, passa all'utilizzo dei comandi gcloud CLI Policy Controller che iniziano con gcloud container fleet policycontroller. Consulta la documentazione di gcloud CLI per un elenco di comandi. Non sono necessarie altre operazioni.

Se il tuo file apply spec di Google Cloud CLI contiene il blocco policyController, rimuovilo per garantire la compatibilità con Config Sync.

Terraform

Se utilizzi una risorsa Terraform che configura Policy Controller con il nome della funzionalità "configmanagement", devi passare a una risorsa Terraform con il nome della funzionalità "policycontroller" completando i seguenti passaggi:

  1. Copia il file Terraform esistente in un nuovo file o aggiorna il file Terraform e aggiungi quanto segue:

    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"
        }
      }
    }
    

    Sostituisci quanto segue:

    • MEMBERSHIP: il nome dell'appartenenza del cluster registrato in cui è installato Policy Controller.
    • PROJECT_ID: il tuo ID progetto.
  2. Rimuovi il blocco "policy_controller" dalla risorsa Terraform esistente. Puoi trovare il blocco sotto il blocco "configmanagement". Se utilizzi la risorsa solo per gestire Policy Controller, puoi rimuovere l'intero blocco configmanagement. Se utilizzi la risorsa per gestire Config Sync, assicurati di rimuovere solo il blocco Policy Controller. Ad esempio, il blocco configmanagement potrebbe essere simile al seguente:

    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. Importa le impostazioni della funzionalità di appartenenza a Policy Controller completando uno dei seguenti passaggi:

    1. Esegui questo comando:

      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. Aggiungi un blocco import alla risorsa 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"
      }
      
  4. Applica le impostazioni di Policy Controller:

    terraform apply
    
  5. (Facoltativo) Al termine dell'importazione, puoi rimuovere il blocco di importazione dalla risorsa Terraform. In alternativa, puoi lasciare il blocco di importazione nella configurazione come record dell'origine della risorsa.

Config Connector

Per interrompere l'utilizzo della specifica configmanagement.policyController, completa i seguenti passaggi:

  1. Crea una nuova specifica GKEHubFeatureMembership con i campi policycontroller obbligatori. Assicurati di impostare il campo resourceID su policyController.

  2. Se hai un GKEHubFeatureMembership esistente che utilizza il campo spec.configmanagement.policyController, rimuovi tutti i campi policycontroller dalla specifica configmanagement.

kubectl

Se utilizzi i comandi kubectl per gestire Policy Controller con un oggetto ConfigManagement, passa all'utilizzo dei comandi Policy Controller di gcloud CLI che iniziano con gcloud container fleet policycontroller. Non sono necessarie altre operazioni.

Se il tuo oggetto ConfigManagement ha il blocco policyController, rimuovilo per la compatibilità con Config Sync.

Per saperne di più sull'API Policy Controller, puoi consultare le seguenti risorse: