Neste documento, descrevemos como definir e gerenciar limites de gerenciamento e configurações de capacidade usando o Resource Manager. Os limites de gerenciamento permitem a descoberta e a governança de recursos entre projetos para o Agent Registry.
Antes de começar
Antes de definir os limites e as configurações de capacidade, consiga os papéis necessários e ative a API necessária.
Funções exigidas
Para receber as permissões necessárias para configurar limites e recursos, peça ao administrador que conceda a você os seguintes papéis do IAM:
-
Criar, atualizar e excluir limites e configurações de capacidade:
Editor do Resource Manager (
roles/resourcemanager.editor) na pasta ou organização de destino (e no projeto de gerenciamento, se você fornecer um projeto de gerenciamento gerenciado pelo usuário) -
Ver limites e configurações de capacidade:
Leitor do Resource Manager (
roles/resourcemanager.viewer) na pasta ou organização de destino -
Anexe tags aos projetos de membros:
- Usuário de tag (
roles/resourcemanager.tagUser) na pasta, na organização ou nos projetos de membros de destino - Administrador de tags (
roles/resourcemanager.tagAdmin) na pasta ou organização de destino
- Usuário de tag (
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Ativar API
Para ativar a API Resource Manager, use o comando
gcloud services enable:gcloud services enable cloudresourcemanager.googleapis.com \ --project=PROJECT_IDSubstitua
PROJECT_IDpelo ID do seu projeto.
Configurar um limite de gerenciamento
É possível configurar um limite de gerenciamento em uma pasta ou organização de duas maneiras:
- Limite em toda a pasta ou organização (sem filtro de tag): inclui todos os projetos descendentes na pasta ou organização. Pule as etapas 1 e 4
e conclua apenas a Etapa 2: criar um limite (sem
--tag-keye--tag-value) e a Etapa 3: criar uma configuração de recurso. - Limite baseado em tag: particiona projetos na pasta ou organização por valores de tag. Siga as quatro etapas abaixo.
Etapa 1: configurar a chave da tag de particionamento
Pule esta etapa se você estiver criando um limite para toda a pasta ou organização
sem um filtro de tag. Por padrão, um recurso BoundaryConfig não tem uma chave de tag
configurada.
Para limites baseados em tags, um recurso BoundaryConfig estabelece a chave de tag
usada para particionar projetos em uma pasta ou organização. Configure esse recurso antes de criar limites baseados em tags.
Para definir a chave de tag de particionamento, use o
comando
gcloud resource-manager boundary-configs update:
gcloud resource-manager boundary-configs update \
--folder=FOLDER_ID \
--tag-key=TAG_KEY_NAME
Para configurar a chave de tag em uma organização, especifique
--organization=ORGANIZATION_ID em vez de --folder.
Se você já configurou uma chave de tag e quer mudar para um limite sem tag (quando não há limites no pai), execute este comando com
--clear-tag-key em vez de --tag-key.
Substitua:
FOLDER_ID: o ID da pasta pai.TAG_KEY_NAME: o nome da chave de tag, formatado comoORGANIZATION_ID/TAG_KEY_SHORT_NAME, como123456789012/env
Etapa 2: criar um limite
Crie um recurso Boundary na pasta ou organização.
Para criar um limite em toda a pasta sem um filtro de tag (que inclui automaticamente
todos os projetos descendentes na pasta), use o
comando
gcloud resource-manager boundaries create sem
--tag-key e --tag-value:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary"
Para criar um limite baseado em tags depois de configurar a chave de tag de particionamento na
etapa 1, inclua as flags --tag-key e --tag-value:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary" \
--tag-key=TAG_KEY_NAME \
--tag-value=TAG_VALUE_SHORT_NAME
Para criar um limite em uma organização, especifique
--organization=ORGANIZATION_ID em vez de --folder.
Substitua:
BOUNDARY_ID: um ID exclusivo para o limite, comoprod-boundary.FOLDER_ID: o ID da pasta pai.TAG_KEY_NAME: a chave de tag que você configurou, como123456789012/env.TAG_VALUE_SHORT_NAME: o valor da tag que os projetos precisam ter para ingressar no limite, comoprod
Etapa 3: criar uma configuração de recurso
Crie um recurso CapabilityConfig para vincular seu limite a um projeto de gerenciamento e declarar quais serviços são gerenciados no limite.
Para criar uma configuração de recurso, use o
comando
gcloud resource-manager capability-configs create
e especifique --types=agent-management para o registro de agente:
gcloud resource-manager capability-configs create \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--types=agent-management \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID \
--display-name="DISPLAY_NAME"
Para criar a configuração de recurso em uma organização, especifique
--organization=ORGANIZATION_ID em vez de --folder.
Substitua:
CAPABILITY_CONFIG_ID: um ID exclusivo para a configuração de capacidade, comoprod-capabilities.FOLDER_ID: o ID da pasta pai.BOUNDARY_ID: o ID do limite que você criou.DISPLAY_NAME: um nome de exibição legível por humanos
Para ativar recursos em um único projeto independente sem limites, pule
as etapas 1, 2 e 4 e execute este comando com
--project=PROJECT_NUMBER e
--management-project=projects/PROJECT_NUMBER em vez de
--folder e --boundaries.
Para usar um projeto atual como o de gerenciamento, transmita a
flag --management-project=projects/PROJECT_NUMBER.
O projeto especificado precisa atender aos seguintes requisitos, caso contrário, o comando falhará com um erro:
- Residir diretamente no mesmo pai
(
folders/FOLDER_IDouorganizations/ORGANIZATION_ID) que o recursoCapabilityConfig. - Estar no estado de ciclo de vida
ACTIVE. - Não estar designado como um projeto de gerenciamento.
Se você omitir --management-project, o Resource Manager provisionará automaticamente um
projeto de gerenciamento dedicado diretamente na pasta ou organização pai.
A criação de um recurso CapabilityConfig ativa automaticamente as APIs de serviço correspondentes no projeto de gerenciamento (como agentregistry.googleapis.com ao especificar agent-management). Não é necessário ativar manualmente essas APIs no projeto de gerenciamento.
Etapa 4: anexar tags aos projetos de membros
Pule esta etapa se você tiver criado um limite para toda a pasta ou organização sem um filtro de tag, porque todos os projetos descendentes são incluídos automaticamente.
Para limites baseados em tags, os projetos se juntam dinamicamente ao limite de gerenciamento quando você vincula o valor de tag correspondente a eles.
Para anexar a tag a cada projeto que pertence ao limite, use o
comando
gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
Substitua:
TAG_VALUE_NAME: o nome do valor da tag, como123456789012/env/prodPROJECT_NUMBER: o número (ou ID do projeto) do projeto que você quer incluir no limite.
Gerenciar configurações de recursos
É possível listar, descrever, atualizar e excluir configurações de recursos. Os
exemplos nesta seção usam --folder=FOLDER_ID. Para
gerenciar configurações de capacidade em uma organização ou um projeto, especifique
--organization=ORGANIZATION_ID ou
--project=PROJECT_NUMBER em vez de --folder
(os limites só podem ser anexados a configurações de capacidade no nível da pasta ou da organização).
Listar configurações de recursos
Para listar todas as configurações de recursos em uma pasta, use o
comando
gcloud resource-manager capability-configs list:
gcloud resource-manager capability-configs list \
--folder=FOLDER_ID
Descrever uma configuração de capability
Para ver os detalhes da configuração e o projeto de gerenciamento atribuído, use o
comando
gcloud resource-manager capability-configs describe:
gcloud resource-manager capability-configs describe \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID
Atualizar limites associados
Para atualizar os limites vinculados a uma configuração de recurso, use o
comando
gcloud resource-manager capability-configs update:
gcloud resource-manager capability-configs update \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID_1,folders/FOLDER_ID/boundaries/BOUNDARY_ID_2
O comando update também aceita as sinalizações --types e --display-name para
atualizar os tipos de recursos ativados ou o nome de exibição.
Excluir uma configuração de recurso
Não é possível excluir um recurso CapabilityConfig enquanto houver limites anexados a ele, e não é possível excluir um recurso Boundary enquanto ele estiver anexado a um recurso CapabilityConfig.
Para excluir uma configuração de recurso quando o gerenciamento entre projetos não for mais necessário:
Para remover os limites associados, use o comando
gcloud resource-manager capability-configs updatecom a flag--clear-boundaries:gcloud resource-manager capability-configs update \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID \ --clear-boundariesPara excluir a configuração de recurso, use o comando
gcloud resource-manager capability-configs delete:gcloud resource-manager capability-configs delete \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID