Este documento descreve as etapas necessárias para fazer a transição do Container Registry
para os repositórios do Artifact Registry pkg.dev
.
A maioria dos usuários do Container Registry precisa fazer a transição para
repositórios gcr.io
hospedados no Artifact Registry, não
pkg.dev
. Portanto, siga estas instruções apenas se entender a
diferença entre repositórios gcr.io
e pkg.dev
no
Artifact Registry.
A ferramenta de migração automática pode realizar as seguintes ações, dependendo do caminho de transição escolhido:
- Crie um repositório
pkg.dev
no Artifact Registry para seu projetogcr.io
na região correspondente. - Sugerir uma política do IAM para o repositório e aplicar ou pular a aplicação, dependendo da preferência do usuário.
- Copie todas as imagens de contêiner armazenadas no Container Registry para o repositório
pkg.dev
do Artifact Registry.
Antes de começar
-
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
-
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
A ferramenta de migração automática pede que você ative a API Artifact Registry se pular esta etapa.
Funções exigidas
As seguintes funções são necessárias para todas as opções de transição que usam a ferramenta de migração automática.
Papéis da conta de serviço:
Você precisa conceder os seguintes papéis à conta de serviço do Artifact Registry para cada projeto que quer migrar para o Artifact Registry.
Para garantir que a conta de serviço do Artifact Registry tenha as permissões
necessárias para copiar imagens do Container Registry para o Artifact Registry,
peça ao administrador para conceder à conta de serviço do Artifact Registry o
papel do IAM de visualizador de objetos do Storage (roles/storage.objectViewer
)
no projeto do Container Registry.
O administrador também pode conceder à conta de serviço do Artifact Registry as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Funções do usuário:
Para receber as permissões
necessárias para fazer a transição para os repositórios do pkg.dev
Artifact Registry,
peça ao administrador para conceder a você o
papel do IAM de Administrador da migração do Container Registry para o Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
)
na organização ou no projeto Google Cloud que você quer migrar.
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.
Migrar para repositórios do pkg.dev
Artifact Registry
Para migrar seu projeto
gcr.io
para um repositóriopkg.dev
do Artifact Registry, execute o seguinte comando:gcloud artifacts docker upgrade migrate \ --from-gcr=GCR_HOSTNAME/GCR_PROJECT \ --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
Substitua:
GCR_HOSTNAME com o nome do host do Container Registry. O nome do host depende de onde as imagens de contêiner são armazenadas:
gcr.io
hospeda as imagens nos Estados Unidos.us.gcr.io
hospeda as imagens nos Estados Unidos, em um bucket de armazenamento separado das imagens hospedadas porgcr.io
.eu.gcr.io
hospeda as imagens em estados-membros da União Europeia.asia.gcr.io
hospeda as imagens na Ásia.
GCR_PROJECT com o ID do projeto do Container Registry Google Cloud. Se o ID do projeto contiver dois pontos (
:
), consulte Projetos com escopo de domínio.AR_PROJECT com o ID do projeto Google Cloud em que você ativou a API Artifact Registry.
AR_REPOSITORY com o nome do repositório do Artifact Registry.
A ferramenta de migração conclui as seguintes etapas:
- Cria o repositório do Artifact Registry se ele ainda não existir.
- Sugere e aplica uma política do IAM ao repositório ou pula a aplicação, dependendo da preferência do usuário.
- Copia imagens na região e no projeto especificados do Container Registry para o repositório do Artifact Registry.
Se você quiser copiar apenas as imagens extraídas do Container Registry nos últimos 30 a 180 dias, inclua a flag --recent-images=DAYS
.
Substitua DAYS pelo número de dias, entre 30 e 150, que a
ferramenta deve verificar para extrações.
Se você encontrar erros ou tempos limite, poderá executar o comando novamente com segurança, e as etapas concluídas serão ignoradas.
Copiar imagens
A ferramenta de migração copia automaticamente as imagens de contêiner quando você a executa,
mas, se quiser pular todas as outras etapas da migração automática e usar a
ferramenta para copiar imagens para o Artifact Registry, transmita a flag --copy-only
.
Para copiar imagens do Container Registry para um repositório do Artifact Registry pkg.dev
,
execute o seguinte comando:
gcloud artifacts docker upgrade migrate \
--from-gcr=GCR_HOSTNAME/GCR_PROJECT \
--to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
--copy-only
Substitua:
GCR_HOSTNAME com o nome do host do Container Registry. O nome do host depende de onde as imagens de contêiner são armazenadas:
gcr.io
hospeda as imagens nos Estados Unidos.us.gcr.io
hospeda as imagens nos Estados Unidos, em um bucket de armazenamento separado das imagens hospedadas porgcr.io
.eu.gcr.io
hospeda as imagens em estados-membros da União Europeia.asia.gcr.io
hospeda as imagens na Ásia.
GCR_PROJECT com o ID do projeto do Container Registry Google Cloud. Se o ID do projeto contiver dois pontos (
:
), consulte Projetos com escopo de domínio.AR_PROJECT com o ID do projeto Google Cloud em que você ativou a API Artifact Registry.
AR_REPOSITORY com o nome do repositório do Artifact Registry.
A ferramenta pula todas as etapas de migração e copia imagens do local e do projeto especificados no Container Registry para o repositório do Artifact Registry.
Também é possível usar a flag --copy-only
para reiniciar a cópia de imagens se houver um erro ou tempo limite durante o processo.