Créer des dépôts distants

Cette page explique comment créer des dépôts Artifact Registry distants.

Les dépôts distants stockent des artefacts de sources externes prédéfinies telles que Docker Hub, Maven Central, l'index de packages Python (PyPI), Debian ou CentOS, ainsi que des sources définies par l'utilisateur pour les formats compatibles. Un dépôt distant agit comme un proxy pour la source externe, ce qui vous permet de mieux contrôler vos dépendances externes. La première fois que vous demandez une version d'un package, Artifact Registry télécharge et met en cache le package dans le dépôt distant. La prochaine fois que vous demanderez la même version de package, Artifact Registry diffusera la copie mise en cache.

Les autres modes de dépôt sont les suivants:

  • Standard: mode de dépôt par défaut. Vous importez ou publiez des artefacts tels que des packages privés directement dans des dépôts standards. Bien que vous puissiez les télécharger directement à partir de dépôts standards individuels, accéder à des groupes de dépôts avec un dépôt virtuel simplifie la configuration des outils.
  • Virtual: dépôt servant de point d'accès unique pour plusieurs dépôts en amont, y compris les dépôts distants et standards.

Pour en savoir plus sur le fonctionnement des dépôts distants, consultez la section Présentation du dépôt distant.

Avant de commencer

  1. Activez Artifact Registry, y compris l'activation de l'API Artifact Registry et l'installation de Google Cloud CLI.
  2. Facultatif: configurez les valeurs par défaut pour les commandes de la gcloud CLI.
  3. Si vous avez besoin de clés de chiffrement gérées par le client (CMEK) pour chiffrer le contenu du dépôt, créez et activez une clé dans Cloud KMS pour le dépôt.
  4. Si vous souhaitez vous authentifier auprès d'un dépôt en amont, activez l'API Secret Manager.

    gcloud services enable secretmanager.googleapis.com \
      --project=PROJECT_ID
    
  5. Si Artifact Registry se trouve dans un périmètre de service VPC Service Controls, activez l'API Access Context Manager si elle n'est pas déjà activée.

    gcloud services enable accesscontextmanager.googleapis.com \
      --project=PROJECT_ID
    

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les dépôts, demandez à votre administrateur de vous attribuer les rôles IAM suivants:

  • Créez des dépôts distants et accordez l'accès à des dépôts individuels : Administrateur Artifact Registry (roles/artifactregistry.admin) sur le projet
  • Enregistrez les identifiants du dépôt en amont dans une version de secret : Administrateur Secret Manager (roles/secretmanager.admin) sur le projet
  • Accordez l'accès aux sources en amont en dehors d'un périmètre de service VPC Service Controls : Éditeur Access Context Manager (roles/accesscontextmanager.policyEditor) au niveau du projet, du dossier ou de l'organisation auquel la règle d'accès est appliquée

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

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

Créer un dépôt distant

Lorsque vous créez un dépôt distant, vous devez configurer les paramètres suivants, qui ne peuvent plus être modifiés une fois le dépôt créé:

  • Format de l'artefact.
  • Le mode du dépôt est défini sur "Remote".
  • Source en amont définie par l'utilisateur ou prédéfinie pour le dépôt distant.
  • Emplacement du dépôt.
  • Chiffrement avec des clés gérées par Google ou des clés de chiffrement gérées par le client. Artifact Registry utilise par défaut des clés de chiffrement gérées par Google.

Artifact Registry applique des contraintes liées aux règles d'administration qui nécessitent le chiffrement des ressources par CMEK ou limite les clés Cloud KMS pouvant être utilisées pour la protection CMEK.

Créer un dépôt distant à l'aide de la console Google Cloud

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

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

  3. Spécifiez 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.

  4. Dans la section Format, sélectionnez le format du dépôt.

  5. Dans la section Mode dépôt, sélectionnez À distance.

  6. Dans la section Source du dépôt distant, sélectionnez la valeur en amont prédéfini ou Personnalisée si vous souhaitez utiliser une URL définie par l'utilisateur pour l'élément en amont.

  7. Facultatif. Si vous utilisez un amont personnalisé, saisissez l'URL du dépôt personnalisé dans le champ Dépôt personnalisé. Une fois le dépôt créé, l'URL ne peut plus être modifiée.

  8. Dans Mode d'authentification du dépôt distant, sélectionnez l'une des options suivantes:

    • Authentifié: saisissez votre nom d'utilisateur et votre code secret pour l'authentification auprès du dépôt en amont.
    • Non authentifié: permet d'ignorer l'authentification dans le dépôt en amont.
  9. Facultatif. Si vous avez sélectionné Authentifié, saisissez les informations suivantes:

    • Dans le champ Nom d'utilisateur, saisissez votre nom d'utilisateur pour le dépôt en amont.
    • Dans le champ Secret, saisissez la version du secret dans laquelle vous avez enregistré votre mot de passe pour le dépôt en amont.

    Vous pouvez modifier ces valeurs après avoir créé le dépôt. Pour en savoir plus sur l'authentification en amont auprès du dépôt distant, consultez la section Configurer l'authentification auprès des amonts du dépôt distant.

  10. Dans la section Type d'emplacement, choisissez l'emplacement du dépôt:

    1. Choisissez le type d'emplacement : régional ou multirégional. La liste des emplacements change pour refléter votre sélection.

    2. Dans la liste Région ou Multirégional, sélectionnez un emplacement.

    Pour en savoir plus sur les types d'emplacements et les emplacements compatibles, consultez la section Emplacements des dépôts.

  11. Ajoutez une description pour le dépôt. Les descriptions aident à identifier l'objectif du dépôt et le type d'artefacts qu'il contient.

    N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

  12. Si vous souhaitez utiliser des libellés pour organiser vos dépôts, cliquez sur Add Label (Ajouter une étiquette) et saisissez la paire clé-valeur du libellé. Vous pouvez ajouter, modifier ou supprimer des étiquettes après avoir créé le dépôt.

  13. 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.
  14. Cliquez sur Créer.

Artifact Registry crée le dépôt et l'ajoute à la liste des dépôts.

Après avoir créé le dépôt:

Créer un dépôt distant à l'aide de la gcloud CLI

Pour créer un dépôt, exécutez la commande correspondant au format de dépôt approprié:

Docker

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
  --project=PROJECT_ID \
  --repository-format=docker \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
  --remote-username=USERNAME \
  --remote-password-secret-version=SECRET_VERSION \
  --remote-docker-repo=UPSTREAM

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.

  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

  • REMOTE-REPOSITORY-DESCRIPTION par une description de la configuration du dépôt externe pour ce dépôt distant.

  • USERNAME (facultatif), si vous utilisez l'authentification, par votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.

  • SECRET_VERSION (facultatif) si vous utilisez l'authentification, avec la version du secret contenant le mot de passe de votre dépôt en amont.

  • UPSTREAM par le nom prédéfini ou l'URL définie par l'utilisateur du dépôt en amont. Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats acceptés.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet Google Cloud my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version de secret projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=docker \
  --location=us-east1 \
  --description="Remote Docker repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="Docker Hub" \
  --remote-username=my-username \
  --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
  --remote-docker-repo=DOCKER-HUB

Pour en savoir plus sur l'authentification auprès des dépôts en amont de Docker Hub, consultez la section Configurer l'authentification du dépôt distant sur Docker Hub.

Maven

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
  --project=PROJECT_ID \
  --repository-format=maven \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
  --remote-username=USERNAME \
  --remote-password-secret-version=SECRET_VERSION \
  --remote-mvn-repo=UPSTREAM

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.

  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

  • REMOTE-REPOSITORY-DESCRIPTION par une description de la configuration du dépôt externe pour ce dépôt distant.

  • USERNAME (facultatif), si vous utilisez l'authentification, par votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.

  • SECRET_VERSION (facultatif) si vous utilisez l'authentification, avec la version du secret contenant le mot de passe de votre dépôt en amont.

  • UPSTREAM par le nom prédéfini ou l'URL définie par l'utilisateur du dépôt en amont. Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats compatibles.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet Google Cloud my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version de secret projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=maven \
  --location=us-east1 \
  --description="Remote Maven repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="Maven Central" \
  --remote-username=my-username \
  --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
  --remote-mvn-repo=MAVEN-CENTRAL

npm

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
  --project=PROJECT_ID \
  --repository-format=npm \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
  --remote-username=USERNAME \
  --remote-password-secret-version=SECRET_VERSION \
  --remote-npm-repo=UPSTREAM

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.

  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

  • REMOTE-REPOSITORY-DESCRIPTION par une description de la configuration du dépôt externe pour ce dépôt distant.

  • USERNAME (facultatif), si vous utilisez l'authentification, par votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.

  • SECRET_VERSION (facultatif) si vous utilisez l'authentification, avec la version du secret contenant le mot de passe de votre dépôt en amont.

  • UPSTREAM par le nom prédéfini ou l'URL définie par l'utilisateur du dépôt en amont. Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats acceptés.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet Google Cloud my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version de secret projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=npm \
  --location=us-east1 \
  --description="Remote npm repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="Public npm registry" \
  --remote-username=my-username \
  --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
  --remote-npm-repo=NPMJS

Python

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
  --project=PROJECT_ID \
  --repository-format=python \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
  --remote-username=USERNAME \
  --remote-password-secret-version=SECRET_VERSION \
  --remote-python-repo=UPSTREAM

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.

  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.

  • REMOTE-REPOSITORY-DESCRIPTION par une description de la configuration du dépôt externe pour ce dépôt distant.

  • USERNAME (facultatif), si vous utilisez l'authentification, par votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.

  • SECRET_VERSION (facultatif) si vous utilisez l'authentification, avec la version du secret contenant le mot de passe de votre dépôt en amont.

  • UPSTREAM par le nom prédéfini ou l'URL définie par l'utilisateur du dépôt en amont. Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats acceptés.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet Google Cloud my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version de secret projects/my-project/secrets/my-secret/versions/1.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=python \
  --location=us-east1 \
  --description="Remote Python repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="PyPI" \
  --remote-username=my-username \
  --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
  --remote-python-repo=PYPI

Apt (preview)

gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
  --project=PROJECT_ID \
  --repository-format=apt \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
  --remote-apt-repo=APT_REPOSITORY_BASE \
  --remote-apt-repo-path="APT_REPOSITORY_PATH"

Remplacez les éléments suivants :

  • REMOTE_REPOSITORY_NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • REMOTE_REPOSITORY_DESCRIPTION avec une description facultative de la configuration du dépôt externe pour ce dépôt distant.
  • APT_REPOSITORY_BASE par l'un des noms de base de dépôt compatibles répertoriés dans les packages de système d'exploitation compatibles en amont pour les dépôts distants Apt.
  • APT_REPOSITORY_PATH par le reste de l'URL du dépôt en amont que vous souhaitez mettre en cache dans votre dépôt distant après la base du dépôt.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo pour mettre en cache le dépôt buster Debian dans la région us-east1 du projet Google Cloud my-project. L'URL complète du dépôt en amont est http://deb.debian.org/debian/dists/buster.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=apt \
  --location=us-east1 \
  --description="Apt remote repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="Debian buster distribution" \
  --remote-apt-repo=DEBIAN \
  --remote-apt-repo-path="debian/dists/buster"

Yum (preview)

gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
  --project=PROJECT_ID \
  --repository-format=yum \
  --location=LOCATION \
  --description="DESCRIPTION" \
  --mode=remote-repository \
  --remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
  --remote-yum-repo=YUM_REPOSITORY_BASE \
  --remote-yum-repo-path="YUM_REPOSITORY_PATH"

Remplacez les éléments suivants :

  • REMOTE_REPOSITORY_NAME par le nom du dépôt. Pour chaque emplacement de dépôt dans un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION par l'emplacement régional ou multirégional du dépôt. Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • REMOTE_REPOSITORY_DESCRIPTION avec une description facultative de la configuration du dépôt externe pour ce dépôt distant.
  • YUM_REPOSITORY_BASE par l'un des noms de base de dépôt compatibles répertoriés dans le package OS compatible en amont pour les dépôts distants Yum.
  • YUM_REPOSITORY_PATH par le reste de l'URL du dépôt en amont que vous souhaitez mettre en cache dans votre dépôt distant après la base du dépôt.

Par exemple, la commande suivante crée un dépôt distant pour les packages Yum nommés my-repo dans la région us-east1 du projet Google Cloud my-project pour le dépôt en amont centos/8-stream/BaseOs/x86_64/os.

gcloud artifacts repositories create my-repo \
  --project=my-project \
  --repository-format=yum \
  --location=us-east1 \
  --description="Yum remote repository" \
  --mode=remote-repository \
  --remote-repo-config-desc="CentOS 8 x86" \
  --remote-yum-repo=CENTOS \
  --remote-yum-repo-path="centos/8-stream/BaseOs/x86_64/os"

Artifact Registry crée votre dépôt. Exécutez la commande suivante pour afficher une description du dépôt:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
  --location=LOCATION

Après avoir créé le dépôt, procédez comme suit:

Créer un dépôt distant à l'aide de Terraform

Utilisez la ressource google_artifact_registry_repository pour créer des dépôts. Veuillez utiliser terraform-provider-google version 5.0.0 ou ultérieure.

Si vous débutez avec Terraform pour Google Cloud, consultez la page Premiers pas – Google Cloud sur le site Web de HashiCorp.

L'exemple suivant définit le fournisseur et un dépôt distant avec le nom de ressource Terraform my-repo.

Docker

provider "google" {
  project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "docker"
kms_key_name = "KEY"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  docker_repository {
    public_repository = "DOCKER_HUB"
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • KEY est le nom de la clé Cloud Key Management Service si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement. Omettez cet argument pour utiliser le paramètre par défaut, à savoir les clés de chiffrement gérées par Google.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.

Maven

Si vous ne spécifiez pas de stratégie de version, Artifact Registry crée un dépôt Maven qui stocke par défaut les versions d'instantané et de version des packages.

provider "google" {
  project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "maven"
kms_key_name = "KEY"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  maven_repository {
    public_repository = "MAVEN_CENTRAL"
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • KEY est le nom de la clé Cloud Key Management Service si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement. Omettez cet argument pour utiliser le paramètre par défaut, à savoir les clés de chiffrement gérées par Google.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.

Pour stocker des versions d'instantanés et de publication dans différents dépôts, spécifiez une stratégie de version pour le dépôt à l'aide d'un bloc maven_config. Ce bloc prend en charge les paramètres suivants:

  • version_policy définit la stratégie de version avec l'une des valeurs suivantes :
    • VERSION_POLICY_UNSPECIFIED: stocker les packages d'instantanés et de versions. Il s'agit du paramètre par défaut.
    • VERSION: packages de version sur le Play Store uniquement.
    • SNAPSHOT: stocker uniquement les packages d'instantanés
  • allow_snapshot_overwrites configure un dépôt avec une règle de version SNAPSHOT pour accepter les instantanés non uniques qui écrasent les versions existantes du dépôt.

L'exemple suivant définit un dépôt Maven avec une stratégie de version de version.

provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
version_policy = "RELEASE"
}
}

npm

provider "google" {
  project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "npm"
kms_key_name = "KEY"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  npm_repository {
    public_repository = "NPMJS"
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • KEY est le nom de la clé Cloud Key Management Service si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement. Omettez cet argument pour utiliser le paramètre par défaut, à savoir les clés de chiffrement gérées par Google.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.

Python

provider "google" {
  project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "python"
kms_key_name = "KEY"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  python_repository {
    public_repository = "PYPI"
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • KEY est le nom de la clé Cloud Key Management Service si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement. Omettez cet argument pour utiliser le paramètre par défaut, à savoir les clés de chiffrement gérées par Google.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.

Apt (preview)

  provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "APT"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  apt_repository {
    public_repository {
      repository_base = "REPOSITORY_BASE"
      repository_path = "REPOSITORY_PATH"
    }
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • REPOSITORY_BASE est la base de dépôt public prédéfinie pour Apt. Les valeurs possibles sont DEBIAN et UBUNTU.
  • REPOSITORY_PATH est le dépôt spécifique de la base. Exemple : debian/dists/buster.

Miam (aperçu)

  provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location      = "LOCATION"
repository_id = "REPOSITORY_ID"
description   = "DESCRIPTION"
format        = "YUM"
mode          = "REMOTE_REPOSITORY"
remote_repository_config {
  description = "CONFIG_DESCRIPTION"
  yum_repository {
    public_repository {
      repository_base = "REPOSITORY_BASE"
      repository_path = "REPOSITORY_PATH"
    }
  }
}
}

  • PROJECT-ID est l'ID du projet Google Cloud.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôt ne sont pas chiffrées.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • REPOSITORY_BASE est la base du dépôt public prédéfini pour Yum. Les valeurs possibles sont CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY et EPEL.
  • REPOSITORY_PATH est le dépôt spécifique de la base. Exemple : "centos/8-stream/BaseOS/x86_64/os.

Artifact Registry crée votre dépôt. Exécutez la commande suivante pour afficher une description du dépôt:

gcloud artifacts repositories describe REPOSITORY \
  --location=LOCATION

Après avoir créé le dépôt:

Modifier les descriptions du dépôt

Vous pouvez modifier la description du dépôt depuis la console Google Cloud ou la gcloud CLI.

Console

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, sélectionnez le dépôt et cliquez sur Modifier le dépôt.

  3. Modifiez la description du dépôt, puis cliquez sur Save (Enregistrer).

gcloud

Pour mettre à jour la description du dépôt, exécutez la commande suivante:

gcloud artifacts repositories update REPOSITORY \
  --project=PROJECT] \
  --location=LOCATION \
  --description="DESCRIPTION"

Remplacez les valeurs suivantes :

  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez ignorer cette option et utiliser le dépôt par défaut.
  • PROJECT est l'ID du projet Google Cloud. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • DESCRIPTION est une description du dépôt.

Accès aux sources en amont dans un périmètre de service

Les services d'un périmètre de service VPC Service Controls ont limité l'accès aux ressources en dehors de celui-ci.

Vous pouvez autoriser ou refuser l'accès aux sources en amont dans un projet et un emplacement Google Cloud spécifiés.

Par défaut, Artifact Registry refuse l'accès aux sources en amont si vous n'avez pas explicitement accordé l'accès.

Pour Artifact Registry, le rôle requis est Administrateur Artifact Registry (roles/artifactregistry.admin).

Afficher les paramètres des sources en amont

Pour afficher la configuration d'une combinaison projet/emplacement spécifique, exécutez la commande suivante:

gcloud artifacts vpcsc-config describe \
  --project=PROJECT_ID \
  --location=LOCATION

Par exemple, utilisez la commande suivante pour afficher les paramètres des dépôts distants dans us-east1 dans le projet my-project:

gcloud artifacts vpcsc-config describe \
  --project=my-project \
  --location=us-east1

Autoriser l'accès aux sources en amont

Pour autoriser l'accès aux sources en amont dans un emplacement spécifié, exécutez la commande suivante:

gcloud artifacts vpcsc-config allow \
  --project=PROJECT_ID \
  --location=LOCATION

Par exemple, utilisez la commande suivante pour autoriser tous les dépôts distants de us-east1 dans le projet my-project à accéder à leurs sources en amont en dehors du périmètre:

gcloud artifacts vpcsc-config allow \
  --project=my-project \
  --location=us-east1

Refuser l'accès aux sources en amont

Lorsque vous refusez l'accès aux sources en amont, les artefacts mis en cache existants dans les dépôts distants restent disponibles.

Pour refuser l'accès aux sources en amont dans un emplacement spécifié, exécutez la commande suivante:

gcloud artifacts vpcsc-config deny \
  --project=PROJECT_ID \
  --location=LOCATION

Par exemple, utilisez la commande suivante pour bloquer l'accès aux sources en amont en dehors du périmètre pour tous les dépôts distants de us-west1 dans le projet my-project:

gcloud artifacts vpcsc-config deny \
  --project=my-project \
  --location=us-west1

Étapes suivantes