Esta página explica como migrar da API ConfigManagement
para a API PolicyController
para gerir o Policy Controller.
A API PolicyController
oferece as mesmas capacidades para instalar e gerir o Policy Controller.
A partir de abril de 2025, a versão 1.21 e posterior da API configManagement
já não suporta a instalação nem as atualizações do Policy Controller. A tentativa de atualizar ou instalar o Policy Controller com este método falha com um erro. Siga as instruções nesta página para migrar, de modo a poder continuar a usar o Policy Controller.
Os passos para migrar totalmente diferem consoante o método de instalação que usou para instalar o Policy Controller.
Se usar comandos da CLI gcloud PolicyController
que começam com gcloud container fleet policycontroller
, já está a usar a PolicyController
API. Não é necessária nenhuma ação. Caso contrário, reveja as instruções relativas ao método
que usou para instalar o Policy Controller:
config management
Se usar comandos da CLI gcloud que começam com gcloud alpha container fleet config-management
, mude para comandos do Policy Controller da CLI gcloud que começam com gcloud container fleet policycontroller
. Reveja a
documentação da CLI gcloud
para ver uma lista de comandos. Não é necessária qualquer outra ação da sua parte.
Se o ficheiro Google Cloud CLI apply spec
tiver o bloco policyController
, remova-o para garantir a compatibilidade com o Config Sync.
Terraform
Se usar um recurso do Terraform que configure o Policy Controller com o
nome da funcionalidade "configmanagement"
,
deve mudar para um recurso do Terraform com o nome da funcionalidade "policycontroller"
concluindo os seguintes passos:
Copie o ficheiro Terraform existente para um novo ficheiro ou atualize o ficheiro 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 o seguinte:
MEMBERSHIP
: o nome da associação do cluster registado que tem o Policy Controller instalado.PROJECT_ID
: o ID do seu projeto.
Remova o bloco
"policy_controller"
do recurso do Terraform existente. Pode encontrar o bloco no bloco"configmanagement"
. Se estiver a usar o recurso apenas para gerir o Policy Controller, pode remover todo o blococonfigmanagement
. Se estiver a usar o recurso para gerir o Config Sync, certifique-se de que remove apenas o bloco do Policy Controller. Por exemplo, o seu blococonfigmanagement
pode ser semelhante ao seguinte: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 } } }
Importe as definições da funcionalidade de subscrição do Policy Controller concluindo um dos seguintes passos:
Execute o seguinte 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"
Adicione um bloco de importação ao seu recurso do 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" }
Aplique as definições do Policy Controller:
terraform apply
Opcional: depois de concluída a importação, pode remover o bloqueio de importação do seu recurso do Terraform. Em alternativa, pode deixar o bloco de importação na configuração como registo da origem do recurso.
Config Connector
Para deixar de usar a especificação configmanagement.policyController
, conclua os
passos seguintes:
Crie uma nova
GKEHubFeatureMembership
especificação com os campospolicycontroller
obrigatórios. Certifique-se de que define o camporesourceID
comopolicyController
.Se tiver um
GKEHubFeatureMembership
existente que use o campospec.configmanagement.policyController
, remova todos os campospolicycontroller
da especificaçãoconfigmanagement
.
kubectl
Se usar comandos kubectl
para gerir o Policy Controller com um objeto ConfigManagement
, mude para usar comandos do Policy Controller da CLI gcloud que começam com gcloud container fleet policycontroller
. Não é necessária qualquer outra ação da sua parte.
Se o seu objeto
tiver o bloco policyController
, remova-o para garantir a compatibilidade com o Config Sync.ConfigManagement
Recomendamos que reveja os seguintes recursos para saber mais sobre a API Policy Controller:
- Instale o Policy Controller com comandos
gcloud container fleet policycontroller
- Reveja a documentação de referência do Config Connector
GKEHubFeature
- Reveja a documentação de referência do
google_gke_hub_feature
Terraform