Migrar de la API ConfigManagement a la API PolicyController

En esta página se explica cómo migrar de la API ConfigManagement a la API PolicyController para gestionar Policy Controller. La API PolicyController ofrece las mismas funciones para instalar y gestionar Policy Controller.

A partir de abril del 2025, la versión 1.21 y posteriores de la API configManagement ya no admitirán la instalación ni las actualizaciones de Policy Controller. Si intentas actualizar o instalar Policy Controller con este método, se producirá un error. Sigue las instrucciones de esta página para migrar y poder seguir usando Policy Controller.

Los pasos para completar la migración varían en función del método de instalación que hayas usado para instalar Policy Controller.

Si usas comandos de gcloud CLI PolicyController que empiezan por gcloud container fleet policycontroller, ya estás usando la API PolicyController. No es necesario hacer nada. De lo contrario, consulta las instrucciones del método que hayas usado para instalar Policy Controller:

config management

Si usas comandos de gcloud CLI que empiezan por gcloud alpha container fleet config-management, cambia a los comandos de Policy Controller de gcloud CLI que empiezan por gcloud container fleet policycontroller. Consulta la documentación de la CLI de gcloud para ver una lista de comandos. No es necesario hacer nada más.

Si tu archivo Google Cloud CLI apply spec tiene el bloque policyController, elimínalo para asegurar la compatibilidad con Config Sync.

Terraform

Si usas un recurso de Terraform que configura Policy Controller con el nombre de la función "configmanagement", debes cambiar a un recurso de Terraform con el nombre de la función "policycontroller". Para ello, sigue estos pasos:

  1. Copia tu archivo de Terraform en un archivo nuevo o actualízalo y añade lo siguiente:

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

    Haz los cambios siguientes:

    • MEMBERSHIP: el nombre de miembro del clúster registrado que tiene instalado Policy Controller.
    • PROJECT_ID: tu ID de proyecto.
  2. Quita el bloque "policy_controller" del recurso de Terraform que tengas. Puedes encontrar el bloque en el bloque "configmanagement". Si usas el recurso solo para gestionar Policy Controller, puedes quitar todo el bloque configmanagement. Si usas el recurso para gestionar Config Sync, asegúrate de eliminar solo el bloque de Policy Controller. Por ejemplo, tu bloque configmanagement podría ser similar al siguiente:

    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 los ajustes de la función de pertenencia a Policy Controller siguiendo uno de estos pasos:

    1. Ejecuta el siguiente 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. Añade un bloque de importación al recurso de 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. Aplica los ajustes de Policy Controller:

    terraform apply
    
  5. Opcional: Una vez que se haya completado la importación, puedes quitar el bloque de importación de tu recurso de Terraform. También puedes dejar el bloque de importación en tu configuración como registro del origen del recurso.

Config Connector

Para dejar de usar la especificación configmanagement.policyController, sigue estos pasos:

  1. Crea una GKEHubFeatureMembership especificación con los campos policycontroller necesarios. Asegúrate de que el campo resourceID tenga el valor policyController.

  2. Si tienes un GKEHubFeatureMembership que usa el campo spec.configmanagement.policyController, elimina los campos policycontroller de la especificación configmanagement.

kubectl

Si usas comandos kubectl para gestionar Policy Controller con un objeto ConfigManagement, cambia a los comandos de Policy Controller de gcloud CLI que empiezan por gcloud container fleet policycontroller. No es necesario hacer nada más.

Si tu objeto ConfigManagement tiene el bloque policyController, quítalo para que sea compatible con Config Sync.

Te recomendamos que consultes los siguientes recursos para obtener más información sobre la API Policy Controller: