Migrer automatiquement de Container Registry vers Artifact Registry

Ce document décrit les étapes nécessaires pour passer de Container Registry aux dépôts pkg.dev Artifact Registry.

La plupart des utilisateurs de Container Registry doivent passer aux dépôts gcr.io hébergés sur Artifact Registry, et non aux dépôts pkg.dev. Par conséquent, ne suivez ces instructions que si vous comprenez la différence entre les dépôts gcr.io et les dépôts pkg.dev dans Artifact Registry.

L'outil de migration automatique peut effectuer les actions suivantes en fonction du chemin de transition que vous choisissez :

  • Créez un dépôt pkg.dev dans Artifact Registry pour votre projet gcr.io dans la région correspondante.
  • Suggérer une stratégie IAM pour le dépôt et l'appliquer ou l'ignorer selon les préférences de l'utilisateur.
  • Copiez toutes les images de conteneur stockées dans Container Registry dans votre dépôt pkg.dev Artifact Registry.

Avant de commencer

  1. Install the Google Cloud CLI.

  2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  3. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    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


    L'outil de migration automatique vous invite à activer l'API Artifact Registry si vous ignorez cette étape.

Rôles requis

Les rôles suivants sont requis pour toutes les options de transition utilisant l'outil de migration automatique.

Rôles de compte de service :

Vous devez attribuer les rôles suivants au compte de service Artifact Registry pour chaque projet que vous souhaitez migrer vers Artifact Registry.

Pour vous assurer que le compte de service Artifact Registry dispose des autorisations nécessaires pour copier des images de Container Registry vers Artifact Registry, demandez à votre administrateur d'accorder au compte de service Artifact Registry le rôle IAM Lecteur d'objets Storage (roles/storage.objectViewer) sur le projet Container Registry.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Votre administrateur peut également attribuer au compte de service Artifact Registry les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.

Rôles utilisateur :

Pour obtenir les autorisations nécessaires pour migrer vers les dépôts pkg.dev Artifact Registry, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de la migration de Container Registry vers Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) sur l'organisation ou le projet Google Cloud que vous souhaitez migrer. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Migrer vers les dépôts pkg.dev Artifact Registry

  1. Pour migrer votre projet gcr.io vers un dépôt pkg.dev Artifact Registry, exécutez la commande suivante :

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

    Remplacez les éléments suivants :

    • GCR_HOSTNAME par le nom d'hôte Container Registry. Le nom d'hôte dépend de l'emplacement de stockage de vos images de conteneurs :

      • gcr.io héberge les images aux États-Unis.
      • us.gcr.io héberge les images aux États-Unis, dans un bucket de stockage distinct de celui utilisé pour les images hébergées par gcr.io.
      • eu.gcr.io héberge les images dans les États membres de l'Union européenne.
      • asia.gcr.io héberge les images en Asie.
    • GCR_PROJECT par l'ID de projet de votre Google CloudContainer Registry. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

    • AR_PROJECT par l'ID du projet Google Cloud dans lequel vous avez activé l'API Artifact Registry.

    • AR_REPOSITORY par le nom de votre dépôt Artifact Registry.

L'outil de migration effectue les étapes suivantes :

  • Crée le dépôt Artifact Registry s'il n'existe pas encore.
  • Suggère une stratégie IAM pour le dépôt et l'applique ou l'ignore selon les préférences de l'utilisateur.
  • Copie les images dans la région et le projet Container Registry spécifiés vers votre dépôt Artifact Registry.

Si vous souhaitez uniquement copier les images extraites de Container Registry au cours des 30 à 180 derniers jours, vous pouvez inclure le tag --recent-images=DAYS. Remplacez DAYS par le nombre de jours (entre 30 et 150) pendant lesquels l'outil doit rechercher les extractions.

Si vous rencontrez des erreurs ou des délais d'attente, vous pouvez réexécuter la commande en toute sécurité. Les étapes effectuées sont ignorées.

Copier des images

L'outil de migration copie automatiquement vos images de conteneurs lorsque vous l'exécutez. Toutefois, si vous souhaitez ignorer toutes les autres étapes de la migration automatique et utiliser l'outil pour copier des images dans Artifact Registry, vous pouvez transmettre l'indicateur --copy-only.

Pour copier des images de Container Registry vers un dépôt pkg.dev Artifact Registry, exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • GCR_HOSTNAME par le nom d'hôte Container Registry. Le nom d'hôte dépend de l'emplacement de stockage de vos images de conteneurs :

    • gcr.io héberge les images aux États-Unis.
    • us.gcr.io héberge les images aux États-Unis, dans un bucket de stockage distinct de celui utilisé pour les images hébergées par gcr.io.
    • eu.gcr.io héberge les images dans les États membres de l'Union européenne.
    • asia.gcr.io héberge les images en Asie.
  • GCR_PROJECT par l'ID de projet de votre Google CloudContainer Registry. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

  • AR_PROJECT par l'ID du projet Google Cloud dans lequel vous avez activé l'API Artifact Registry.

  • AR_REPOSITORY par le nom de votre dépôt Artifact Registry.

L'outil ignore toutes les étapes de migration et copie les images de l'emplacement et du projet spécifiés dans Container Registry vers votre dépôt Artifact Registry.

Vous pouvez également utiliser l'option --copy-only pour redémarrer la copie des images en cas d'erreur ou de délai d'attente pendant le processus.

Étapes suivantes