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

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

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

config management

Se utilizzi i comandi dell'interfaccia a riga di comando gcloud che iniziano con gcloud alpha container fleet config-management, passa a utilizzare i comandi di Policy Controller dell'interfaccia a riga di comando gcloud che iniziano con gcloud container fleet policycontroller. Consulta la documentazione dell'interfaccia a riga di comando gcloud per un elenco dei comandi. Non sono necessarie altre azioni.

Se il 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 aggiornalo 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 su 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 di 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.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. Aggiungi un blocco di importazione alla risorsa Terraform:

      import {
         to = google_gke_hub_feature_membership.policycontroller
         id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      }
      
  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, è possibile 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 o aggiorna la specifica GKEHubFeatureMembership inserendo il numero spec.ResourceID nel campo policycontroller.

  2. Se hai già un GKEHubFeatureMembership che utilizza il campo spec.configmanagement.policyController,rimuovi eventuali campi policycontroller dalla specifica configmanagement.

kubectl

Se utilizzi i comandi kubectl per gestire Policy Controller con un oggetto ConfigManagement, passa a utilizzare i comandi Policy Controller della CLI gcloud che iniziano con gcloud container fleet policycontroller. Non sono necessarie altre azioni.

Se l'oggetto ConfigManagement contiene il blocco policyController, rimuovilo per compatibilità con Config Sync.

Per scoprire di più sull'API Policy Controller, ti consigliamo di consultare le seguenti risorse: