En esta página, se describe cómo crear repositorios estándar de Artifact Registry.
Los repositorios estándar son repositorios para tus artefactos privados. Puedes subir artefactos a estos repositorios y descargarlos directamente de ellos.
Hay otros dos modos de repositorio disponibles para algunos formatos de artefactos:
- Remote almacena artefactos de fuentes externas como Docker Hub, Maven Central o PyPI.
- Las virtuales actúan como un único punto de acceso para descargar, instalar o implementar artefactos que se encuentran en repositorios remotos o estándar ascendentes.
Cada repositorio puede contener artefactos para un solo formato admitido.
Antes de comenzar
- Habilita Artifact Registry, incluida la habilitación de la API de Artifact Registry y la instalación de Google Cloud CLI.
- (Opcional) Configura valores predeterminados para los comandos de gcloud.
- Si necesitas claves de encriptación administradas por el cliente (CMEK) a fin de encriptar el contenido del repositorio, crea y habilita una clave en Cloud KMS para el repositorio.
Roles obligatorios
A fin de obtener los permisos que necesitas para crear repositorios, solicita a tu administrador que te otorgue la función de administrador de repositorios de Artifact Registry (roles/artifactregistry.repoAdmin
) en el proyecto de Google Cloud.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Crea un repositorio estándar
Cuando creas un repositorio, debes establecer la siguiente configuración que no se puede cambiar después de que se crea el repositorio:
- Formato del artefacto.
- Modo de repositorio, si hay varios modos disponibles para el formato seleccionado.
- La ubicación del repositorio
- Encriptación con claves administradas por Google o claves de encriptación administradas por el cliente Artifact Registry usa las claves de encriptación administradas por Google de forma predeterminada.
Artifact Registry aplica restricciones de políticas de la organización que requieren CMEK a fin de encriptar recursos o limitar las claves de Cloud KMS que se pueden usar para la protección de CMEK.
Crea un repositorio con la consola de Google Cloud
Abre la página Repositories en Google Cloud Console.
Haz clic en Crear repositorio.
Especifica el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
Selecciona el formato del repositorio.
Si hay varios modos de repositorio disponibles, selecciona Estándar.
Solo Maven: Configura la política de la versión.
Elige una política de versiones:
- Ninguna: Ninguna política de la versión. Almacena paquetes de instantáneas y de versiones.
- Release: Almacena solo los paquetes del lanzamiento.
- Instantánea: Almacena solo paquetes de instantáneas.
Si deseas que un repositorio de instantáneas acepte instantáneas no únicas que reemplacen las versiones existentes en el repositorio, selecciona Permitir instantáneas que se reemplazan.
En Tipo de ubicación, elige la ubicación para el repositorio:
Elige el tipo de ubicación: Región o Multirregión. La lista de ubicaciones cambia para reflejar tu selección.
En la lista Región o Multirregión, selecciona una ubicación.
Para obtener información sobre los tipos de ubicación y las ubicaciones compatibles, consulta Ubicaciones de repositorios.
Agrega una descripción para el repositorio. Las descripciones ayudan a identificar el propósito del repositorio y el tipo de artefactos que contiene.
No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
Si deseas usar etiquetas para organizar tus repositorios, haz clic en Agregar etiqueta y, luego, ingresa el par clave-valor de la etiqueta. Puedes agregar, editar o quitar etiquetas después de crear el repositorio.
En la sección Encriptación, elige el mecanismo de encriptación para el repositorio.
- Clave administrada por Google: Encripta el contenido de un repositorio mediante una clave de encriptación administrada por Google.
- Clave administrada por el cliente: Encripta el contenido de un repositorio mediante una clave que controlas a través de Cloud Key Management Service. Si deseas obtener instrucciones para la configuración de claves, consulta Configura CMEK para repositorios.
Haz clic en Crear.
Artifact Registry crea el repositorio y lo agrega a la lista de repositorios.
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
Configura Docker, los administradores de paquetes y otros clientes de terceros para la autenticación en los repositorios.
Crea un repositorio con Google Cloud CLI
Ejecuta el comando para crear un repositorio nuevo.
Apt
gcloud artifacts repositories create REPOSITORY \
--repository-format=apt \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Docker
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Canalizaciones de Kubeflow
gcloud artifacts repositories create REPOSITORY \
--repository-format=kfp \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Maven
De forma predeterminada, los repositorios de Maven almacenan versiones y versiones de actualización de paquetes. Puedes especificar una política de versión para crear una instantánea o un repositorio de versiones.
Para crear un repositorio que almacene instantáneas y actualizaciones, ejecuta el siguiente comando:
gcloud artifacts repositories create REPOSITORY \
--repository-format=maven \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Para almacenar instantáneas y versiones de actualización en diferentes repositorios, especifica la política de versiones en el comando:
gcloud artifacts repositories create REPOSITORY \
--repository-format=maven \
[--location=LOCATION] \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--version-policy=VERSION-POLICY] \
[--allow-snapshot-overwrites] \
[--async] \
Las siguientes marcas son específicas de los repositorios de Maven:
--version-policy=VERSION-POLICY
- Especifica los tipos de paquetes que se almacenarán en el repositorio. Puedes configurar VERSION-POLICY en lo siguiente:
None
: No hay política de versiones. Almacena paquetes de instantáneas y de versiones. Si no incluyes la marca--version-policy
en tu comando, esta es la configuración predeterminada.Release
: almacena solo los paquetes de la versión.Snapshot
: almacena solo paquetes de instantáneas.
--allow-snapshot-overwrites
- Solo para los repositorios de instantáneas. Si especificas esta marca, puedes publicar instantáneas no únicas que reemplacen las versiones existentes en el repositorio.
npm
gcloud artifacts repositories create REPOSITORY \
--repository-format=npm \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Python
gcloud artifacts repositories create REPOSITORY \
--repository-format=python \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Yum
gcloud artifacts repositories create REPOSITORY \
--repository-format=yum \
--location=LOCATION \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--async]
- REPOSITORY es el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
LOCATION es la ubicación regional o multirregional del repositorio. Puedes omitir esta marca si estableces un valor predeterminado. Para ver una lista de las ubicaciones compatibles, ejecuta el siguiente comando:
gcloud artifacts locations list
DESCRIPTION es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
KMS-KEY es la ruta completa a la clave de encriptación de Cloud KMS, si usas una clave de encriptación administrada por el cliente para encriptar el contenido del repositorio. La ruta tiene el siguiente formato:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Donde
- KMS-PROJECT es el proyecto en el que se almacena tu clave.
- KMS-LOCATION es la ubicación de la clave.
- KEY-RING es el nombre del llavero de claves.
- KEY es el nombre de la clave.
--async
se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Artifact Registry crea tu repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
Configura Docker, los administradores de paquetes y otros clientes de terceros para la autenticación en los repositorios.
Crear un repositorio con Terraform
Usa la versión Beta del recurso google_artifact_registry_repository para crear repositorios.
Si es la primera vez que usas Terraform para Google Cloud, consulta la página Primeros pasos: Google Cloud en el sitio web de HashiCorp.
En el siguiente ejemplo, se define el proveedor y un repositorio con el nombre de recurso de Terraform my-repo
.
Apt
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "apt"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Docker
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "docker"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Canalizaciones de Kubeflow
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "kfp"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Maven
Si no especificas una política de la versión, Artifact Registry crea un repositorio Maven que almacena versiones de instantáneas y versiones de paquetes de forma predeterminada.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "maven"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Si deseas almacenar instantáneas y versiones de actualización en diferentes repositorios, especifica una política de versiones para el repositorio mediante un bloque maven_config
. Este bloque admite las siguientes configuraciones:
version_policy
establece la política de versión con uno de los siguientes valores:VERSION_POLICY_UNSPECIFIED
: Almacena instantáneas y libera paquetes. Esta es la configuración predeterminada.- LANZAMIENTO: solo los paquetes de lanzamiento en tienda.
- INSTANTÁNEA: Almacena solo paquetes de instantáneas.
allow_snapshot_overwrites
configura un repositorio con una política de versión deSNAPSHOT
para aceptar instantáneas no únicas que reemplazan las versiones existentes en el repositorio.
En el siguiente ejemplo, se define un repositorio de Maven con una política de versión de actualización.
provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "us-central1"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
maven_config {
version_policy = "RELEASE"
}
}
npm
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "npm"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Python
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "python"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Artifact Registry crea tu repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Yum
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = DESCRIPTION"
format = "yum"
kms_key_name = "KEY"
}
Donde
- PROJECT-ID es el ID del proyecto de Google Cloud.
- LOCATION es la ubicación del repositorio.
- REPOSITORY es el nombre del repositorio.
- DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
- KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
Después de crear el repositorio, haz lo siguiente:
- Otorga acceso al repositorio.
Configura Docker, los administradores de paquetes y otros clientes de terceros para la autenticación en los repositorios.
Edita las descripciones del repositorio
Puedes cambiar la descripción del repositorio desde Google Cloud Console o gcloud CLI.
Consola
Abre la página Repositories en Google Cloud Console.
En la lista de repositorios, selecciona el repositorio y haz clic en Editar repositorio.
Edita la descripción del repositorio y haz clic en Guardar.
gcloud
Para actualizar la descripción del repositorio, ejecuta el siguiente comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT] \
--location=LOCATION \
--description="DESCRIPTION"
Reemplaza los siguientes valores:
- REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
- PROJECT es el ID del proyecto de Google Cloud. Si se omite esta marca, se usa el proyecto actual o predeterminado.
- LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
- DESCRIPTION es una descripción para el repositorio.