Migre automaticamente do Container Registry para o Artifact Registry

Este documento descreve os passos necessários para fazer a transição do Container Registry para os repositórios do pkg.dev Artifact Registry.

A maioria dos utilizadores do Container Registry deve fazer a transição para repositórios gcr.io alojados no Artifact Registry e não em repositórios pkg.dev. Por isso, siga estas instruções apenas se compreender a diferença entre repositórios gcr.io e repositórios pkg.dev no Artifact Registry.

A ferramenta de migração automática pode realizar as seguintes ações, consoante o caminho de transição que escolher:

  • Crie um repositório pkg.dev no Artifact Registry para o seu projeto gcr.io na região correspondente.
  • Sugere uma política de IAM para o repositório e aplica a política ou ignora a aplicação consoante a preferência do utilizador.
  • Copie todas as imagens de contentores armazenadas no Container Registry para o seu repositório do Artifact Registry pkg.dev.

Antes de começar

  1. Install the Google Cloud CLI.

  2. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Enable the API


  5. A ferramenta de migração automática pede-lhe que ative a API Artifact Registry se ignorar este passo.

Funções necessárias

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.

Funções da conta de serviço:

Tem de conceder as seguintes funções à 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 tem as autorizações necessárias para copiar imagens do Container Registry para o Artifact Registry, peça ao seu administrador para conceder à conta de serviço do Artifact Registry a função do IAM Leitor de objetos de armazenamento (roles/storage.objectViewer) no projeto do Container Registry.

Para mais informações sobre a concessão de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

O administrador também pode conceder à conta de serviço do Artifact Registry as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Funções de utilizador:

Para receber as autorizações de que precisa para fazer a transição para os pkg.devrepositórios do Artifact Registry, peça ao seu administrador para lhe conceder a função de administrador de migração do Container Registry do Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) função de IAM na Google Cloud organização ou no projeto que quer migrar. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Migre para pkg.dev repositórios do Artifact Registry

  1. Para migrar o seu projeto do gcr.io para um repositório do pkg.dev 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 o seguinte:

    • GCR_HOSTNAME com o nome do anfitrião do Container Registry. O nome do anfitrião depende de onde as imagens de contentores estão armazenadas:

      • gcr.io aloja as imagens nos Estados Unidos.
      • us.gcr.io aloja as imagens nos Estados Unidos, num contentor de armazenamento separado das imagens alojadas pelo gcr.io.
      • eu.gcr.io aloja as imagens nos Estados-Membros da União Europeia.
      • asia.gcr.io aloja as imagens na Ásia.
    • GCR_PROJECT com o Google Cloud ID do projeto do Container Registry. Se o ID do projeto contiver dois pontos (:), consulte Projetos com âmbito de domínio.

    • AR_PROJECT com o Google Cloud ID do projeto onde ativou a API Artifact Registry.

    • AR_REPOSITORY com o nome do seu repositório do Artifact Registry.

A ferramenta de migração conclui os seguintes passos:

  • Cria o repositório do Artifact Registry se ainda não existir.
  • Sugere uma política de IAM para o repositório e aplica a política ou ignora a aplicação consoante a preferência do utilizador.
  • Copia imagens na região do Container Registry especificada e projeto para o seu repositório do Artifact Registry.

Se só quiser copiar imagens extraídas do Container Registry nos últimos 30 a 180 dias, pode incluir a flag --recent-images=DAYS. Substitua DAYS pelo número de dias, entre 30 e 150, durante os quais a ferramenta deve verificar se existem retiradas.

Se encontrar erros ou limites de tempo, pode executar novamente o comando em segurança e os passos concluídos são ignorados.

Copie imagens

A ferramenta de migração copia automaticamente as imagens do contentor quando a executa, mas, se quiser ignorar todos os outros passos da migração automática e usar a ferramenta para copiar imagens para o Artifact Registry, pode transmitir a flag --copy-only.

Para copiar imagens do Container Registry para um pkg.devrepositório 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 \
    --copy-only

Substitua o seguinte:

  • GCR_HOSTNAME com o nome do anfitrião do Container Registry. O nome do anfitrião depende de onde as imagens de contentores estão armazenadas:

    • gcr.io aloja as imagens nos Estados Unidos.
    • us.gcr.io aloja as imagens nos Estados Unidos, num contentor de armazenamento separado das imagens alojadas pelo gcr.io.
    • eu.gcr.io aloja as imagens nos Estados-Membros da União Europeia.
    • asia.gcr.io aloja as imagens na Ásia.
  • GCR_PROJECT com o Google Cloud ID do projeto do Container Registry. Se o ID do projeto contiver dois pontos (:), consulte Projetos com âmbito de domínio.

  • AR_PROJECT com o Google Cloud ID do projeto onde ativou a API Artifact Registry.

  • AR_REPOSITORY com o nome do seu repositório do Artifact Registry.

A ferramenta ignora todos os passos de migração e copia as imagens da localização e do projeto especificados no Container Registry para o seu repositório do Artifact Registry.

Também pode usar a flag --copy-only para reiniciar a cópia de imagens se tiver um erro ou um limite de tempo durante o processo.

O que se segue?