Migrar da API ConfigManagement para a API PolicyController

Esta página explica como migrar da API ConfigManagement para a API PolicyController para gerenciar o Policy Controller. A API PolicyController oferece os mesmos recursos para instalar e gerenciar o Policy Controller.

As etapas para migrar totalmente variam de acordo com o método de instalação usado para instalar o Policy Controller.

Se você usa comandos PolicyController da CLI gcloud que começam com gcloud container fleet policycontroller, já está usando a API PolicyController. Nenhuma ação é necessária. Caso contrário, leia as instruções para o método usado para instalar o Policy Controller:

config management

Se você usa comandos da CLI gcloud que começam com gcloud alpha container fleet config-management, mude para os comandos do Policy Controller da CLI gcloud que começam com gcloud container fleet policycontroller. Consulte a documentação da CLI gcloud para conferir uma lista de comandos. Não é necessário fazer mais nada.

Se o arquivo apply spec da CLI do Google Cloud tiver o bloco policyController, remova-o para garantir a compatibilidade com o Config Sync.

Terraform

Se você usa um recurso do Terraform que configura o Policy Controller com o nome do recurso "configmanagement", mude para um recurso do Terraform com o nome do recurso "policycontroller" seguindo estas etapas:

  1. Copie o arquivo do Terraform atual para um novo arquivo ou atualize o arquivo do Terraform e adicione o seguinte:

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

    Substitua:

    • MEMBERSHIP: o nome da assinatura do cluster registrado que tem o Policy Controller instalado.
    • PROJECT_ID: o ID do projeto.
  2. Remova o bloco "policy_controller" do recurso do Terraform. Você pode encontrar o bloco abaixo de "configmanagement". Se você estiver usando o recurso para somente gerenciar o Policy Controller, é possível remover todo o bloco configmanagement. Se você estiver usando o recurso para gerenciar o Config Sync, remova apenas o bloco do Policy Controller. Por exemplo, o bloco configmanagement pode ser semelhante a este:

    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. Importe as configurações do recurso de associação do Policy Controller seguindo uma destas etapas:

    1. Execute este 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. Adicione um bloco de importação ao recurso do Terraform:

      import {
         to = google_gke_hub_feature_membership.policycontroller
         id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      }
      
  4. Aplique as configurações do Policy Controller:

    terraform apply
    
  5. Opcional: depois que a importação for concluída, você poderá remover o bloco de importação do recurso do Terraform. Como alternativa, é seguro deixar o bloco de importação na configuração como um registro da origem do recurso.

Config Connector

Para deixar de usar a especificação configmanagement.policyController, siga estas etapas:

  1. Crie ou atualize a especificação GKEHubFeatureMembership digitando o número spec.ResourceID no campo policycontroller.

  2. Se você tiver um GKEHubFeatureMembership que usa o campo spec.configmanagement.policyController, remova todos os campos policycontroller da especificação configmanagement.

kubectl

Se você usa comandos kubectl para gerenciar o Policy Controller com um objeto ConfigManagement, mude para comandos do Policy Controller da gcloud CLI que começam com gcloud container fleet policycontroller. Não é necessário fazer mais nada.

Se o objeto ConfigManagement tiver o bloco policyController, remova-o para garantir a compatibilidade com o Config Sync.

Consulte os recursos a seguir para saber mais sobre a API Policy Controller: