Migra de la API de ConfigManagement a la API de PolicyController

En esta página, se explica cómo migrar de la API de ConfigManagement a la API de PolicyController para administrar el Controlador de políticas. La API de PolicyController ofrece las mismas capacidades para instalar y administrar Policy Controller.

A partir de abril de 2025, la versión 1.21 y las versiones posteriores de la API de 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 el Controlador de políticas.

Los pasos para migrar por completo difieren según el método de instalación que usaste para instalar el Controlador de políticas.

Si usas comandos de gcloud CLI PolicyController que comienzan con gcloud container fleet policycontroller, ya estás usando la API de PolicyController. No se requiere ninguna acción. De lo contrario, revisa las instrucciones del método que usaste para instalar el Controlador de políticas:

config management

Si usas comandos de gcloud CLI que comienzan con gcloud alpha container fleet config-management, cambia a los comandos de Policy Controller de gcloud CLI que comienzan con gcloud container fleet policycontroller. Revisa la documentación de la CLI de gcloud para obtener una lista de los comandos. No es necesario que realices ninguna otra acción.

Si tu archivo apply spec de Google Cloud CLI tiene el bloque policyController, quítalo para garantizar la compatibilidad con el Sincronizador de configuración.

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, completa los siguientes pasos:

  1. Copia tu archivo de Terraform existente en un archivo nuevo o actualiza tu archivo de Terraform y agrega 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"
        }
      }
    }
    

    Reemplaza lo siguiente:

    • MEMBERSHIP: Es el nombre de la membresía del clúster registrado que tiene instalado Policy Controller.
    • PROJECT_ID: el ID de tu proyecto
  2. Quita el bloque "policy_controller" de tu recurso de Terraform existente. Puedes encontrar el bloque debajo del bloque "configmanagement". Si usas el recurso solo para administrar Policy Controller, puedes quitar todo el bloque configmanagement. Si usas el recurso para administrar el Sincronizador de configuración, asegúrate de quitar solo el bloque de Policy Controller. Por ejemplo, tu bloque configmanagement podría parecerse 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 la configuración de la función de membresía de Policy Controller completando uno de los siguientes 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. Agrega un bloque de importación a tu 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 la configuración del Controlador de políticas:

    terraform apply
    
  5. Opcional: Una vez que se complete la importación, puedes quitar el bloque de importación de tu recurso de Terraform. Como alternativa, 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, completa los siguientes pasos:

  1. Crea una nueva especificación de GKEHubFeatureMembership con los campos policycontroller obligatorios. Asegúrate de configurar el campo resourceID como policyController.

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

kubectl

Si usas comandos de kubectl para administrar el Controlador de políticas con un objeto ConfigManagement, cambia a los comandos del Controlador de políticas de gcloud CLI que comienzan con gcloud container fleet policycontroller. No es necesario que realices ninguna otra acción.

Si tu objeto ConfigManagement tiene el bloque policyController, quítalo para que sea compatible con Sincronizador de configuración.

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