Crea repositorios estándar

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

  1. Habilita Artifact Registry, incluida la habilitación de la API de Artifact Registry y la instalación de Google Cloud CLI.
  2. (Opcional) Configura valores predeterminados para los comandos de gcloud.
  3. 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

  1. Abre la página Repositories en Google Cloud Console.

    Abrir la página Repositorios

  2. Haz clic en Crear repositorio.

  3. Especifica el nombre del repositorio. Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.

  4. Selecciona el formato del repositorio.

  5. Si hay varios modos de repositorio disponibles, selecciona Estándar.

  6. Solo Maven: Configura la política de la versión.

    1. 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.
    2. 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.

  7. En Tipo de ubicación, elige la ubicación para el repositorio:

    1. Elige el tipo de ubicación: Región o Multirregión. La lista de ubicaciones cambia para reflejar tu selección.

    2. 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.

  8. 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.

  9. 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.

  10. 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.
  11. 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:

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:

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 de SNAPSHOT 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:

Edita las descripciones del repositorio

Puedes cambiar la descripción del repositorio desde Google Cloud Console o gcloud CLI.

Consola

  1. Abre la página Repositories en Google Cloud Console.

    Abrir la página Repositorios

  2. En la lista de repositorios, selecciona el repositorio y haz clic en Editar repositorio.

  3. 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.

¿Qué sigue?