Passer aux dépôts avec prise en charge du domaine gcr.io

Si vous utilisez actuellement Container Registry pour gérer vos images de conteneurs, cette page explique comment configurer les dépôts Artifact Registry avec la compatibilité du domaine gcr.io. Un dépôt gcr.io dans Artifact Registry possède des fonctionnalités rétrocompatibles avec Container Registry.

Ces instructions sont principalement destinées aux administrateurs du dépôt. Pour en savoir plus sur les modifications apportées à la création, à l'envoi, à l'extraction et au déploiement d'images, consultez les pages suivantes:

Avant de commencer

L'API Resource Manager doit être activée dans votre projet Google Cloud pour vérifier l'une des autorisations requises dans ces instructions.

Vous pouvez activer l'API à partir de Cloud Console ou à l'aide de la commande suivante:

gcloud services enable cloudresourcemanager.googleapis.com

Présentation

Les dépôts Artifact Registry compatibles avec le domaine gcr.io offrent plusieurs fonctionnalités rétrocompatibles:

  • Redirigez automatiquement les requêtes des noms d'hôte Container Registry vers les dépôts gcr.io d'Artifact Registry.
  • Utilisez gcloud container images ou les commandes gcloud artifacts équivalentes.

Si vous disposez d'un grand nombre d'automatisations existantes pour effectuer la transition, ces fonctionnalités peuvent vous aider à passer plus rapidement à Artifact Registry. Toutefois, pour assurer la rétrocompatibilité, les dépôts gcr.io dans Artifact Registry présentent certaines limites de fonctionnalités et peuvent ne pas être compatibles avec les nouvelles fonctionnalités d'Artifact Registry.

Les dépôts standards et les dépôts compatibles avec le domaine gcr.io peuvent coexister afin que vous puissiez effectuer une transition progressive. Exemple :

  • Vous pouvez créer des dépôts gcr.io dans Artifact Registry pour migrer votre configuration Container Registry existante et créer des dépôts standards pour de nouveaux travaux.
  • Vous pouvez adopter une approche en plusieurs étapes pour votre transition. Migrez vers les dépôts gcr.io dans Artifact Registry, puis passez progressivement aux dépôts standards lorsque vous mettez à jour votre système automatique pour assurer la compatibilité complète avec le dépôt et les chemins d'images Artifact Registry.

Sinon, si vous avez besoin de la compatibilité complète des fonctionnalités d'Artifact Registry ou que vous souhaitez vous assurer que de nouvelles fonctionnalités sont disponibles pour vos dépôts, passez directement aux dépôts standards.

Limites

Les limites suivantes s'appliquent aux dépôts compatibles avec le domaine gcr.io:

  • Pour créer des dépôts gcr.io dans Artifact Registry, au moins un hôte Container Registry doit exister dans votre projet Google Cloud. Vous ne pouvez pas mapper un hôte Container Registry sur un dépôt Artifact Registry dans un autre projet.
  • Chaque nom d'hôte Container Registry ne correspond qu'à un seul dépôt gcr.io Artifact Registry dans le même emplacement multirégional.
  • Les noms des dépôts gcr.io sont prédéfinis et ne peuvent pas être modifiés.
  • Certaines fonctionnalités ne sont pas compatibles :
    • Sécuriser un dépôt gcr.io dans un périmètre de service VPC Service Controls
    • Répertorier les dépôts à l'aide des requêtes Docker catalog
    • Les commandes gcloud artifacts docker ne sont pas compatibles avec les condensés abrégés. Si vous spécifiez une image avec un condensé, vous devez spécifier la chaîne de condensé complète.

Mapper des hôtes Container Registry avec des dépôts Artifact Registry

L'exemple suivant montre comment un chemin d'accès à l'image Container Registry et le chemin d'accès à l'image correspondant dans un dépôt gcr.io lorsque la redirection est activée. Bien que les utilisateurs de vos dépôts n'aient pas besoin d'utiliser le dépôt d'Artifact Registry et les chemins d'accès des images, il est utile de comprendre le mappage pour la redirection lorsque vous configurez et testez vos dépôts gcr.io.

Container Registry : Artifact Registry.
Projet : my-project Projet : my-project
Nom d'hôte du registre: gcr.io Nom du dépôt : gcr.io
Chemin de l'image : gcr.io/my-project/my-image Chemin de l'image : us-docker.pkg.dev/my-project/gcr.io/my-image

Étapes de transition

Ce guide vous explique comment effectuer les étapes suivantes:

  1. Découvrez les tarifs d'Artifact Registry avant de commencer la transition.
  2. Mettre à jour le SDK Cloud et découvrir les nouvelles commandes gcloud.
  3. Activer l'API Artifact Registry.
  4. Créez des dépôts Docker pour les hôtes Container Registry du projet.
  5. Accorder des autorisations sur le dépôt.
  6. Configurer l'authentification afin de pouvoir vous connecter au nouveau dépôt.
  7. Si nécessaire, copiez les images Container Registry que vous souhaitez utiliser dans votre nouveau dépôt.
  8. Activer la redirection afin de pouvoir vérifier que les requêtes push et pull existantes vers gcr.io dans votre automatisation utilisent vos nouveaux dépôts Docker. Cette modification n'est définitive que lorsque vous finalisez la redirection.
  9. Vérifier que votre automatisation existante peut transférer et extraire des images.
  10. Lorsque vous êtes sûr que vos dépôts fonctionnent comme prévu, finaliser la redirection du trafic gcr.io.
  11. Configurer des fonctionnalités supplémentaires.
  12. Nettoyez les images dans Container Registry une fois la transition terminée.

Activer le service

Pour utiliser Artifact Registry, activez l'API Artifact Registry depuis Cloud Console ou avec la commande suivante :

gcloud services enable artifactregistry.googleapis.com

Mettre à jour et configurer le SDK Cloud

Container Registry utilise les commandes gcloud container images.

Artifact Registry utilise les commandes gcloud artifacts pour les images.

  1. Installez le SDK Cloud si ce n'est pas déjà fait.

  2. Mettez à jour les composants gcloud.

    gcloud components update
    

Comparaison des commandes gcloud

Le tableau suivant récapitule les commandes Container Registry et les commandes Artifact Registry équivalentes dans l'outil gcloud. Cliquez sur un lien dans le tableau pour afficher la page de référence de la commande.

Le tableau n'inclut pas les commandes Artifact Registry disponibles qui n'ont pas d'équivalent dans Container Registry. Consultez la documentation de gcloud artifacts pour obtenir la documentation de référence complète sur les commandes Artifact Registry.

Opération Container Registry Artifact Registry
Créer un dépôt Non applicable. gcloud artifacts repositories create
Supprimer un dépôt Non applicable. gcloud artifacts repositories delete
Obtenir la liste des images gcloud container images list gcloud artifacts docker images list
Répertorier les tags gcloud container images list-tags gcloud artifacts docker tags list
Taguer gcloud container images add-tag gcloud artifacts docker tags add
Supprimer un tag gcloud container images untag gcloud artifacts docker tags delete
Décrire les images gcloud container images describe gcloud artifacts docker image list --include-tags

Créer des dépôts

Container Registry crée automatiquement un bucket de stockage dans un emplacement multirégional si vous n'y avez pas encore stocké d'image. Dans Artifact Registry, vous devez créer un dépôt avant de pouvoir importer des images.

Vous pouvez utiliser un panneau spécial dans Google Cloud Console pour créer rapidement des dépôts gcr.io ou créer des dépôts gcr.io manuellement. Au moins un hôte Container Registry doit exister dans votre projet pour créer des dépôts gcr.io Artifact Registry.

Création rapide d'un dépôt

Ces étapes permettent de créer des dépôts gcr.io dans Artifact Registry pour les hôtes Container Registry existants de votre projet. Les dépôts sont chiffrés avec des clés de chiffrement gérées par Google. Si vous souhaitez utiliser des clés de chiffrement gérées par le client (CMEK), vous devez créer des dépôts manuellement.

Pour créer des dépôts gcr.io pour vos hôtes Container Registry:

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

    Sur la page, une bannière affiche le message You have gcr.io repositories in Container Registry. Si vous avez fermé la bannière ou si elle n'apparaît pas, ouvrez la page "Paramètres".

    Ouvrir la page "Paramètres"

  2. Dans la bannière, cliquez sur Créer des dépôts gcr.io.

    Le panneau Créer des dépôts gcr.io affiche la liste des noms d'hôte Container Registry de votre projet.

  3. Sélectionnez les noms d'hôte que vous souhaitez migrer vers Artifact Registry. Artifact Registry affiche le chemin d'accès complet du dépôt gcr.io correspondant sous la liste des noms d'hôte.

  4. Cliquez sur Create (Créer).

Artifact Registry crée des dépôts pour chaque nom d'hôte sélectionné et les ajoute à la liste des dépôts. Pour consulter rapidement l'URL Artifact Registry du dépôt, passez la souris sur l'icône d'avertissement ("") à côté du nom du dépôt.

Avant de rediriger le trafic vers vos nouveaux dépôts, vous devez vous assurer que votre automatisation existante peut accéder au dépôt. L'étape suivante consiste à configurer les autorisations pour accorder l'accès aux dépôts.

Création manuelle du dépôt

Créez manuellement des dépôts gcr.io si vous avez ignoré la bannière avec l'option rapide de création de dépôt, ou si vous souhaitez utiliserClés de chiffrement gérées par le client (CMEK) pour chiffrer le contenu du dépôt.

Pour créer manuellement un dépôt gcr.io, procédez comme suit:

  1. Si vous utilisez CMEK, créez la clé que vous utiliserez avec ce dépôt et accordez les autorisations requises pour utiliser la clé. Consultez la section Activer les clés de chiffrement gérées par le client.

  2. Ajoutez le dépôt.

    Console

    1. Ouvrez la page Dépôts dans Cloud Console.

      Ouvrir la page "Dépôts"

    2. Cliquez sur Créer un dépôt.

    3. Spécifiez le nom du dépôt.

      Nom d'hôte Container Registry Nom du dépôt Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    4. Spécifiez Docker comme format du dépôt.

    5. Sous Type d'emplacement, spécifiez l'emplacement multirégional du dépôt:

      Nom d'hôte Container Registry Emplacement du dépôt Artifact Registry
      gcr.io fr
      asia.gcr.io asia
      eu.gcr.io Europe
      us.gcr.io fr
    6. Ajoutez une description pour le dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

    7. Dans la section Chiffrement, choisissez le mécanisme de chiffrement du dépôt.

      • Clé gérée par Google : chiffrez le contenu du dépôt avec une clé de chiffrement gérée par Google.
      • Clé gérée par le client : chiffre le contenu du dépôt à l'aide d'une clé que vous contrôlez via Cloud Key Management Service. Pour obtenir des instructions sur la configuration de la clé, consultez la page Configurer des CMEK pour les dépôts.
    8. Cliquez sur Create (Créer).

    gcloud

    Exécutez la commande suivante pour créer un dépôt.

    gcloud artifacts repositories create REPOSITORY \
    --repository-format=docker [--location=LOCATION] \
    [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
    

    Remplacez les valeurs suivantes :

    • REPOSITORY est le nom du dépôt. Pour chaque emplacement de dépôt d'un projet, les noms de dépôt doivent être uniques.

      Nom d'hôte Container Registry Nom du dépôt Artifact Registry
      gcr.io gcr.io
      asia.gcr.io asia.gcr.io
      eu.gcr.io eu.gcr.io
      us.gcr.io us.gcr.io
    • LOCATION est l'emplacement multirégional du dépôt:

      Nom d'hôte Container Registry Emplacement du dépôt Artifact Registry
      gcr.io fr
      asia.gcr.io asia
      eu.gcr.io Europe
      us.gcr.io fr
    • DESCRIPTION est une description du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

    • KMS-KEY est le chemin d'accès complet à la clé de chiffrement Cloud KMS, si vous utilisez une clé de chiffrement gérée par le client pour chiffrer le contenu du dépôt. Le chemin est au format suivant :

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      Où :

      • KMS-PROJECT est le projet dans lequel votre clé est stockée.
      • KMS-LOCATION correspond à l'emplacement de la clé.
      • KEY-RING correspond au nom du trousseau de clés.
      • KEY correspond au nom de la clé.
    • --async renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.

    Vous pouvez confirmer que le dépôt est créé en répertoriant vos dépôts à l'aide de la commande suivante:

    gcloud artifacts repositories list
    

Avant de rediriger le trafic vers vos nouveaux dépôts, vous devez vous assurer que votre automatisation existante peut accéder au dépôt. L'étape suivante consiste à configurer les autorisations pour accorder l'accès aux dépôts.

Accorder des autorisations sur les dépôts

Dans Container Registry, le contrôle des accès est basé sur les rôles et les autorisations Cloud Storage. Si vous ne souhaitez pas accorder un rôle à l'échelle du projet, vous devez accorder des autorisations sur le bucket de stockage spécifique utilisé par Container Registry.

Artifact Registry dispose de ses propres rôles IAM. Vous pouvez attribuer des rôles au niveau du projet ou définir des autorisations sur des dépôts individuels. Utilisez plusieurs dépôts Docker conjointement avec des autorisations spécifiques au dépôt pour contrôler l'accès à différents types d'artefacts. Par exemple, vous pouvez appliquer des contrôles plus stricts sur un dépôt de production ou accorder l'accès à des dépôts spécifiques à une équipe en fonction de l'appartenance à une équipe.

Les comptes de service pour les intégrations courantes avec Artifact Registry disposent d'autorisations par défaut pour les dépôts d'un même projet. Si vous utilisez un service Google Cloud dans un autre projet ou un outil tiers pour transférer ou extraire des images, vous devez configurer les autorisations appropriées manuellement.

Pour savoir comment accorder des autorisations, consultez la page Accorder des autorisations.

S'authentifier auprès du dépôt

Artifact Registry est compatible avec les mêmes méthodes d'authentification que Container Registry. Vous pouvez continuer à utiliser vos clients Docker existants avec Artifact Registry.

Si vous utilisez l'assistant d'identification Docker pour l'authentification, il n'accepte par défaut que les noms d'hôte gcr.io. Si vous devez vous connecter à des noms d'hôte pkg.dev et gcr.io, vous pouvez ajouter les noms d'hôte requis à la configuration de l'assistant d'identification. Pour en savoir plus, consultez la page Configurer l'authentification pour Docker.

Copier des conteneurs depuis Container Registry

Si vous souhaitez continuer à utiliser des conteneurs de Container Registry dans Artifact Registry, plusieurs options s'offrent à vous pour les copier. Pour obtenir des instructions détaillées, consultez la page Copier des images à partir de Container Registry.

Lorsque vous spécifiez le dépôt gcr.io de destination, utilisez le chemin d'accès Artifact Registry du dépôt au format suivant:

LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Où :

  • LOCATION est l'emplacement multirégional où se trouve le dépôt.

    Nom d'hôte Container Registry Emplacement du dépôt Artifact Registry
    gcr.io fr
    asia.gcr.io asia
    eu.gcr.io Europe
    us.gcr.io fr
  • PROJECT est l'ID de projet.

  • REPOSITORY est le nom du dépôt:

    Nom d'hôte Container Registry Nom du dépôt Artifact Registry
    gcr.io gcr.io
    asia.gcr.io asia.gcr.io
    eu.gcr.io eu.gcr.io
    us.gcr.io us.gcr.io

Pour afficher rapidement l'URL Artifact Registry d'un dépôt gcr.io que vous avez créé dans Cloud Console, passez la souris sur l'icône d'avertissement ("") à côté du nom du dépôt.

Exemples

Les exemples de commandes suivants copient toutes les images d'un hôte Container Registry dans le dépôt gcr.io Artifact Registry correspondant dans le projet my-project.

Pour gcr.io :

gcrane cp -r gcr.io/my-project us-docker.pkg.dev/my-project/gcr.io

Pour asia.gcr.io :

gcrane cp -r asia.gcr.io/my-project asia-docker.pkg.dev/my-project/asia.gcr.io

Pour eu.gcr.io :

gcrane cp -r eu.gcr.io/my-project europe-docker.pkg.dev/my-project/eu.gcr.io

Pour us.gcr.io :

gcrane cp -r us.gcr.io/my-project us-docker.pkg.dev/my-project/us.gcr.io

Configurer d'autres fonctionnalités

Cette section décrit la configuration d'autres fonctionnalités que vous avez peut-être configurées dans Container Registry.

Container Analysis

Container Analysis est compatible avec Container Registry et Artifact Registry. La documentation de Container Analysis inclut les deux produits.

  • Les deux produits utilisent les mêmes API Container Analysis. Lorsque vous activez les API Container Analysis dans Container Registry ou Artifact Registry, les API sont activées pour les deux produits.
  • Les deux produits utilisent les mêmes sujets Pub/Sub pour les notifications Container Analysis. Une fois la redirection activée, tous les abonnements existants incluent des notifications pour les images dans les dépôts gcr.io.
  • Vous pouvez continuer à utiliser les commandes gcloud container images pour répertorier les notes et les occurrences associées aux chemins d'accès d'image gcr.io.

Notifications Pub/Sub

Artifact Registry publie les modifications apportées dans le même sujet gcr que Container Registry. Aucune configuration supplémentaire n'est requise si vous utilisez déjà Pub/Sub avec Container Registry dans le même projet qu'Artifact Registry. Toutefois, Artifact Registry ne publie pas de messages pour les dépôts gcr.io tant que vous n'activez pas la redirection. Une fois la redirection activée, le sujet gcr inclut des notifications pour Artifact Registry et Container Registry.

Si vous configurez Artifact Registry dans un projet distinct, le sujet gcr peut ne pas exister. Pour obtenir des instructions de configuration, consultez la section Configurer les notifications Pub/Sub.

Activer la redirection du trafic gcr.io

Pour activer ou finaliser la redirection, vous devez disposer des autorisations suivantes au niveau du projet:

  • artifacts.projectsettings.update: autorisations de mise à jour des paramètres du projet Artifact Registry. Cette autorisation est associée au rôle "Administrateur du dépôt Artifact Registry" (roles/artifactregistry.repoAdmin).
  • storage.buckets.update : permet de mettre à jour les buckets de stockage dans l'ensemble du projet. Cette autorisation est associée au rôle "Administrateur de l'espace de stockage" (roles/storage.admin).

Si vous ne disposez pas de ces autorisations, demandez à un administrateur de les accorder au niveau du projet.

Les commandes suivantes attribuent les rôles Administrateur de dépôt Artifact Registry et Administrateur de l'espace de stockage sur un projet.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/artifactregistry.repoAdmin

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/storage.admin

Remplacez les valeurs suivantes :

  • PROJECT_ID est l'ID du projet Google Cloud.
  • MEMBER est l'adresse e-mail du compte que vous mettez à jour. Exemple : user:my-user@example.com

Après avoir créé vos dépôts gcr.io et configuré les autorisations et l'authentification pour vos clients tiers, vous pouvez effectuer les opérations suivantes : Activer la redirection du trafic gcr.io

L'ensemble du trafic vers gcr.io, asia.gcr.io, eu.gcr.io et us.gcr.io est redirigé, même si vous n'avez pas créé de dépôts gcr.io pour tous les noms d'hôte Container Registry. Par exemple, si le projetmy-project dispose de dépôts gcr.io pour tous les noms d'hôte Container Registry, à l'exception deeu.gcr.io , les requêtes vers ou verseu.gcr.io/my-project renvoie un404 Not Found erreur.

Lorsque vous activez la redirection, la modification n'est pas permanente tant que vous n'avez pas finalisé la redirection. Vous pouvez réacheminer le trafic vers Container Registry si vous devez apporter des modifications supplémentaires avant de finaliser la redirection.

Valider la configuration du projet

Pour valider la configuration de votre projet, exécutez la commande suivante:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID --dry-run

Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

Artifact Registry recherche les dépôts qui correspondent aux noms d'hôte Container Registry.

Si tous vos hôtes Container Registry possèdent un dépôt Docker Artifact Registry correspondant, le résultat ressemble à l'exemple suivant:

Redirection enablement report:

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io
eu.gcr.io                eu        projects/my-project/locations/us/repositories/eu.gcr.io

PASS: Redirection enablement checks passed.

Dry run enabled, no changes made.

Si un nom d'hôte de votre projet ne possède pas de dépôt gcr.io correspondant, Artifact Registry affiche un avertissement. Par exemple, si le nom d'hôte gcr.io ne possède pas de dépôt Docker Artifact Registry nommé gcr.io, le résultat inclut un avertissement semblable à celui-ci:

WARNING: Not all Container Registry repositories have Artifact Registry
repositories created to handle redirected requests.

Container Registry repository 'gcr.io' should redirect to an Artifact Registry
Docker repository in location 'us' named 'gcr.io'. This repository can be
created with:

gcloud artifacts repositories create gcr.io --location=us --project=my-project
--repository-format=DOCKER

If Artifact Registry repositories are not created, the following Container
Registry repositories will no longer serve requests:
gcr.io

Activer la redirection

Pour activer la redirection du trafic gcr.io:

Console

  1. Ouvrez la page "Paramètres" dans Cloud Console.

    Ouvrir la page "Paramètres"

  2. Cliquez sur Acheminer le trafic vers Artifact Registry.

gcloud

Pour activer la redirection, exécutez la commande suivante:

gcloud beta artifacts settings enable-upgrade-redirection \
    --project=PROJECT_ID

Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

La commande renvoie la liste des hôtes Container Registry redirigés. Exemple :

Container Registry Host  Location  Artifact Registry Repository
gcr.io                   us        projects/my-project/locations/us/repositories/gcr.io

Pour vérifier l'état actuel de la redirection, exécutez la commande suivante :

gcloud beta artifacts settings describe

Lorsque la redirection est activée, le résultat est le suivant:

legacyRedirectionState: REDIRECTION_FROM_GCR_IO_ENABLED

Lorsque la redirection est activée, vous pouvez tester l'automatisation, et vérifier que vous pouvez transférer et extraire des images à l'aide de vos nouveaux dépôts gcr.io. Si nécessaire, vous pouvez réacheminer le trafic vers Container Registry, puis réactiver la redirection lorsque vous êtes prêt à poursuivre les tests.

Lorsque vous êtes prêt à rendre la redirection permanente, vous pouvez finaliser la redirection.

Réacheminer le trafic vers Container Registry

Si nécessaire, vous pouvez acheminer le trafic gcr.io vers Container Registry. Vous pouvez réactiver la redirection lorsque vous êtes prêt.

Console

  1. Ouvrez la page "Paramètres" dans Cloud Console.

    Ouvrir la page "Paramètres"

  2. Cliquez sur Réacheminer le trafic vers Container Registry.

gcloud

  1. Exécutez la commande suivante :

    gcloud beta artifacts settings disable-upgrade-redirection \
        --project=PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

    Artifact Registry vous invite à confirmer votre choix.

  2. Pour confirmer le réacheminement vers Container Registry, saisissez y.

Vérifier la redirection

Vérifiez que les requêtes pull et push sur les noms d'hôte gcr.io fonctionnent.

  1. Transférez une image de test vers l'un de vos dépôts gcr.io à l'aide du chemin d'accès gcr.io.

    1. Ajoutez un tag à l'image à l'aide du chemin gcr.io. Par exemple, cette commande ajoute le tag us.gcr.io/my-project/test-image à l'image local-image:

      docker tag local-image us.gcr.io/my-project/test-image
      
    2. Transférez l'image sur laquelle vous avez ajouté le tag. Par exemple, cette commande transfère l'image us.gcr.io/my-project/test-image:

      docker push us.gcr.io/my-project/test-image
      
  2. Répertoriez les images du dépôt pour vérifier qu'elles ont bien été importées. Par exemple, pour répertorier les images dans us.gcr.io/my-project, exécutez la commande suivante:

    gcloud container images list --repository=us.gcr.io/my-project
    
  3. Récupérez l'image depuis le dépôt à l'aide de son chemin d'accès Container Registry. Par exemple, cette commande extrait l'image us.gcr.io/my-project/test-image.

    docker pull us.gcr.io/my-project/test-image
    

Après ce test initial, vérifiez que votre automatisation existante pour créer et déployer des images fonctionne comme prévu, en particulier:

  • Les utilisateurs et les comptes de service qui utilisent Container Registry peuvent toujours transférer, extraire et déployer des images lorsque la redirection est activée.
  • Votre automatisation ne transfère les images que vers les dépôts existants.
  • Si l'analyse des failles de Container Analysis est activée, l'analyse identifie les images présentant des failles dans les dépôts gcr.io.
  • Si vous utilisez l'autorisation binaire, vos stratégies existantes fonctionnent correctement pour les images déployées à partir des dépôts gcr.io.
  • Les abonnements Pub/Sub configurés incluent des notifications sur les modifications apportées à vos dépôts gcr.io.

Finaliser la redirection du trafic gcr.io

Après avoir vérifié que vous pouvez transférer et extraire des images dans vos nouveaux dépôts, vous pouvez finaliser la redirection du trafic gcr.io afin qu'elle soit permanente.

Pour finaliser la redirection :

Console

  1. Ouvrez la page "Paramètres" dans Cloud Console.

    Ouvrir la page "Paramètres"

  2. Cliquez sur Finaliser.

gcloud

  1. Exécutez la commande suivante :

    gcloud beta artifacts settings finalize-upgrade-redirection \
        --project=PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

    Artifact Registry répertorie les hôtes Container Registry qui sont actuellement redirigés et vous invite à confirmer que vous souhaitez finaliser la redirection.

  2. Pour confirmer la redirection permanente, saisissez y.

Nettoyer les images Container Registry

Lorsque la redirection est activée, les commandes de suppression d'images dans les chemins d'accès gcr.io suppriment les images du dépôt gcr.io correspondant d'Artifact Registry. Ils ne suppriment pas les images stockées sur les hôtes Container Registry. Pour supprimer en toute sécurité toutes les images Container Registry, supprimez les buckets Cloud Storage pour chaque nom d'hôte Container Registry.

Pour nettoyer, procédez comme suit:

  1. Supprimez chaque bucket de stockage Container Registry:

    Console

    Cloud Console peut supprimer plusieurs millions d'objets de manière groupée en arrière-plan. Il peut également supprimer de manière groupée uniquement les objets qui partagent un préfixe commun, qui apparaissent dans un dossier lorsque vous utilisez Cloud Console.

    1. Accédez à la page Cloud Storage dans Cloud Console.
    2. Sélectionnez le bucket de stockage à supprimer:

      • Pour gcr.io: artifacts.PROJECT_ID.appspot.com
      • Pour les autres noms d'hôte : STORAGE-REGION.artifacts.PROJECT_ID.appspot.com

        Remplacez les valeurs suivantes :

        • PROJECT_ID est l'ID de votre projet Google Cloud.
        • STORAGE-REGION est l'emplacement du bucket de stockage :
          • us pour us.gcr.io
          • eu pour eu.gcr.io
          • asia pour asia.gcr.io
    3. Cliquez sur Supprimer. Une boîte de dialogue de confirmation s'affiche.

    4. Pour confirmer la suppression, saisissez le nom du bucket, puis cliquez sur Supprimer.

    gsutil

    Si vous souhaitez effectuer une suppression groupée pour au moins cent mille images dans un bucket, évitez d'utiliser gsutil, car le processus de suppression prend beaucoup de temps. Utilisez plutôt Cloud Console pour effectuer l'opération.

    Pour supprimer un bucket, exécutez la commande [gsutil rm][/storage/docs/gsutil/commands/rm] avec l'option -r.

    Pour le nom d'hôte gcr.io, exécutez la commande suivante:

    gsutil rm -r gs://artifacts.PROJECT_ID.appspot.com
    

    Pour les autres noms d'hôte, exécutez la commande suivante:

    gsutil rm -r gs://STORAGE-REGION.artifacts.PROJECT_ID.appspot.com
    

    Remplacez les valeurs suivantes :

    • PROJECT_ID est l'ID de votre projet Google Cloud.
    • STORAGE-REGION est l'emplacement du bucket de stockage :
      • us pour us.gcr.io
      • eu pour eu.gcr.io
      • asia pour asia.gcr.io

    La réponse est semblable à ceci :

    Removing gs://artifacts.my-project.appspot.com/...
    
  2. Désactivez l'API Container Registry.

Étape suivante