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 pkg.dev Artifact Registry.

La mayoría de los usuarios de Container Registry deberían migrar a los repositorios gcr.io alojados en Artifact Registry, no a los repositorios pkg.dev, por lo que solo deben seguir estas instrucciones si comprenden 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 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 aplicar la política o omitir la aplicación según las preferencias 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. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  3. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  4. Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API


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

Roles requeridos

Se requieren los siguientes roles para todas las opciones de transición que utilizan 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 de Visualizador de objetos de Storage (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 los permisos necesarios a la cuenta de servicio de Artifact Registry a través de roles personalizados o de otros roles predefinidos.

Roles del usuario:

Para obtener los permisos que necesitas para realizar la transición a los repositorios de pkg.dev Artifact Registry, pídele a tu administrador que te otorgue el rol de IAM de administrador de migración de Container Registry a Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) en la organización o el proyecto que deseas migrar. Google Cloud 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 a través de roles personalizados o cualquier otro rol predefinido.

Migra a los repositorios de pkg.dev de Artifact Registry

  1. Para migrar tu proyecto de gcr.io a un repositorio de pkg.dev Artifact Registry, 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 Estados Unidos.
      • us.gcr.io aloja las imágenes en 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 por el ID del proyecto de Container Registry Google CloudSi el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

    • AR_PROJECT por el ID del proyecto 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.
  • Sugerir una política de IAM para el repositorio y aplicar la política o omitir la aplicación según la preferencia del usuario
  • Copia imágenes en la región y el proyecto especificados de Container Registry a tu repositorio de Artifact Registry.

Si solo deseas copiar las 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, en los que la herramienta debe buscar 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 deseas omitir todos los demás pasos de la migración automática y usar la herramienta para copiar imágenes en Artifact Registry, puedes pasar la marca --copy-only.

Para copiar imágenes de Container Registry a un repositorio de pkg.dev Artifact Registry, 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 Estados Unidos.
    • us.gcr.io aloja las imágenes en 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 por el ID del proyecto de Container Registry Google CloudSi el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

  • AR_PROJECT por el ID del proyecto 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 se produce un error o un tiempo de espera durante el proceso.

¿Qué sigue?