Cómo migrar automáticamente de Container Registry a Artifact Registry

En este documento, se describen los pasos necesarios para realizar la transición de Container Registry a los repositorios de Artifact Registry de pkg.dev.

La mayoría de los usuarios de Container Registry deben realizar la transición a los repositorios gcr.io alojados en Artifact Registry, no a los repositorios pkg.dev, por lo que solo debes seguir estas instrucciones si comprendes la diferencia entre los repositorios gcr.io y los repositorios pkg.dev en Artifact Registry.

La herramienta de migración automática puede realizar las siguientes acciones según la ruta de transición que elijas:

  • Crea un repositorio de pkg.dev en Artifact Registry para tu proyecto gcr.io en la región correspondiente.
  • Sugerir una política de IAM para el repositorio y aplicarla o omitir la aplicación según la preferencia del usuario
  • Copia todas las imágenes de contenedor almacenadas en Container Registry en tu repositorio pkg.dev de Artifact Registry.

Antes de comenzar

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. Enable the Artifact Registry API.

    Enable the API


    La herramienta de migración automática te solicitará que habilites la API de Artifact Registry si omites este paso.

Roles obligatorios

Los siguientes roles son obligatorios para todas las opciones de transición con la herramienta de migración automática.

Roles de la cuenta de servicio:

Debes otorgar los siguientes roles a la cuenta de servicio de Artifact Registry para cada proyecto que desees migrar a Artifact Registry.

Para garantizar que la cuenta de servicio de Artifact Registry tenga los permisos necesarios para copiar imágenes de Container Registry a Artifact Registry, pídele a tu administrador que le otorgue a la cuenta de servicio de Artifact Registry el rol de IAM Visualizador de objetos de almacenamiento (roles/storage.objectViewer) en el proyecto de Container Registry. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar a la cuenta de servicio de Artifact Registry los permisos necesarios mediante roles personalizados o con otros roles predefinidos.

Roles de usuario:

Para obtener los permisos que necesitas para realizar la transición a los repositorios de Artifact Registry de pkg.dev, pídele a tu administrador que te otorgue el rol de IAM de Administrador de migración de repositorio de contenedores de Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) en la organización o el proyecto de a la que deseas migrar. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Cómo migrar a los repositorios de Artifact Registry de pkg.dev

  1. Para migrar tu proyecto de gcr.io a un repositorio de Artifact Registry de pkg.dev, ejecuta el siguiente comando:

    gcloud artifacts docker upgrade migrate \
        --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
        --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
    

    Reemplaza lo siguiente:

    • GCR_HOSTNAME por el nombre de host de Container Registry. El nombre de host depende de dónde se almacenan tus imágenes de contenedor:

      • gcr.io aloja las imágenes en los Estados Unidos.
      • us.gcr.io aloja las imágenes en los Estados Unidos, en un bucket de almacenamiento independiente de las imágenes alojadas por gcr.io.
      • eu.gcr.io aloja las imágenes en los Estados miembros de la Unión Europea.
      • asia.gcr.io aloja las imágenes en Asia.
    • GCR_PROJECT con el ID de proyecto de tu Registro de contenedores Google Cloud. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

    • AR_PROJECT con el ID de proyecto de Google Cloud en el que habilitaste la API de Artifact Registry.

    • AR_REPOSITORY por el nombre de tu repositorio de Artifact Registry.

La herramienta de migración completa los siguientes pasos:

  • Crea el repositorio de Artifact Registry si aún no existe.
  • Sugiere una política de IAM para el repositorio y la aplica o omite según la preferencia del usuario.
  • Copia las imágenes de la región de Container Registry especificada y las transfiere a tu repositorio de Artifact Registry.

Si solo deseas copiar imágenes extraídas de Container Registry en los últimos 30 a 180 días, puedes incluir la marca --recent-images=DAYS. Reemplaza DAYS por la cantidad de días, entre 30 y 150, que la herramienta debe verificar para detectar extracciones.

Si encuentras errores o tiempos de espera, puedes volver a ejecutar el comando de forma segura, y se omitirán los pasos completados.

Cómo copiar imágenes

La herramienta de migración copia automáticamente tus imágenes de contenedor cuando la ejecutas, pero si quieres omitir todos los demás pasos de la migración automática y usar la herramienta para copiar imágenes a Artifact Registry, puedes pasar la marca --copy-only.

Para copiar imágenes de Container Registry a un repositorio de Artifact Registry de pkg.dev, ejecuta el siguiente comando:

gcloud artifacts docker upgrade migrate \
    --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
    --to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
    --copy-only

Reemplaza lo siguiente:

  • GCR_HOSTNAME por el nombre de host de Container Registry. El nombre de host depende de dónde se almacenan tus imágenes de contenedor:

    • gcr.io aloja las imágenes en los Estados Unidos.
    • us.gcr.io aloja las imágenes en los Estados Unidos, en un bucket de almacenamiento independiente de las imágenes alojadas por gcr.io.
    • eu.gcr.io aloja las imágenes en los Estados miembros de la Unión Europea.
    • asia.gcr.io aloja las imágenes en Asia.
  • GCR_PROJECT con el ID de proyecto de tu contenedor de Registry Google Cloud. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

  • AR_PROJECT con el ID de proyecto de Google Cloud en el que habilitaste la API de Artifact Registry.

  • AR_REPOSITORY por el nombre de tu repositorio de Artifact Registry.

La herramienta omite todos los pasos de migración y copia las imágenes de la ubicación y el proyecto especificados en Container Registry a tu repositorio de Artifact Registry.

También puedes usar la marca --copy-only para reiniciar la copia de imágenes si tienes un error o un tiempo de espera durante el proceso.

¿Qué sigue?