Crea repositorios

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 de Artifact Registry.

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. Debes tener la función de administrador de Artifact Registry o una función con permisos equivalentes.

Descripción general

Debes crear un repositorio para poder subir artefactos. Cada repositorio puede contener artefactos para un formato compatible único.

Todo el contenido del repositorio se encripta con claves de encriptación administradas por Google o por el cliente. Artifact Registry usa claves de encriptación administradas por Google de forma predeterminada y no se requiere ninguna configuración para esta opción.

Artifact Registry admite políticas de la organización CMEK que pueden requerir protección de CMEK y limitar las CryptoKeys de Cloud KMS que se pueden usar para la protección con CMEK.

Para obtener información sobre cómo administrar repositorios existentes, consulta la siguiente información:

Configura CMEK para repositorios

De forma predeterminada, Google Cloud encripta de forma automática los datos cuando están en reposo con claves de encriptación administradas por Google que administras en Cloud Key Management Service (KMS). Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes crear repositorios que usen claves de encriptación administradas por el cliente (CMEK) para encriptar el contenido del repositorio.

Antes de crear un repositorio que desees encriptar con CMEK, debes crear y habilitar una clave en Cloud KMS. Luego, puedes asignar la clave al repositorio cuando lo crees.

No puedes cambiar el mecanismo de encriptación de un repositorio existente. Si tienes un repositorio encriptado mediante una CMEK, no puedes cambiar el mecanismo de encriptación a la encriptación predeterminada de Google ni asignar una clave de Cloud KMS diferente para la encriptación.

Descripción general

Cuando creas un repositorio, debes elegir la siguiente configuración:

No puedes cambiar esta configuración después de crear el repositorio.

En la siguiente tabla, se resumen los formatos de artefactos disponibles, el repositorio correspondiente para el formato y el valor que se usará a fin de crear el repositorio con Google Cloud CLI.

Artefacto Formato del repositorio Configuración de gcloud
Imágenes de contenedor o gráficos de Helm Docker docker
Paquetes Java Maven maven
Paquetes de Node.js npm npm
Paquetes de Python Python python
Paquetes de Debian APT apt
Paquetes de RPM Yum yum
Plantillas de canalización de Kubeflow Canalizaciones de Kubeflow kfp

Crea y configura repositorios

Para crear y configurar un repositorio nuevo, haz lo siguiente:

  1. Si usas CMEK para encriptar los datos del repositorio, crea la clave que usarás con este repositorio y otórgale permisos para usarla. Consulta Cómo habilitar claves de encriptación administradas por el cliente.

  2. Agrega el repositorio.

    Console

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

      Abrir la página Repositorios

    2. Haz clic en Crear repositorios.

    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. Especifica el formato del repositorio.

    5. Si creas un repositorio de Maven, configura la política de versión del repositorio.

      1. Elige una política de versión:

        • Ninguna: Sin política de versiones. Almacena paquetes de instantáneas y de lanzamientos.
        • Release: Almacena solo paquetes de 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 reemplazos de instantáneas.

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

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

    8. Si deseas usar etiquetas para organizar tus repositorios, haz clic en Agregar etiqueta y, luego, ingresa el par clave-valor para la etiqueta. Puedes agregar, editar o quitar etiquetas después de crear el repositorio.

    9. 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.
    10. Haga clic en Crear.

    gcloud

    Ejecuta el comando para crear un repositorio nuevo.

    gcloud artifacts repositories create REPOSITORY \
        --repository-format=FORMAT \
        [--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.
    • FORMAT es el formato del repositorio.
    • 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 de acceso 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.

    De forma predeterminada, los repositorios de Maven almacenan versiones de instantáneas y versiones de paquetes. Si deseas almacenar instantáneas y versiones de actualización en diferentes repositorios, especifica la política de versión para el repositorio cuando la crees.

    gcloud artifacts repositories create REPOSITORY \
        --repository-format=FORMAT \
        [--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 como:
    • None: Sin política de versión. Almacena paquetes de instantáneas y de lanzamientos. Si no incluyes la marca --version-policy en tu comando, esta es la configuración predeterminada.
    • Release: Almacena solo los paquetes de lanzamiento.
    • Snapshot: Almacena solo paquetes de instantáneas.
    --allow-snapshot-overwrites

    Solo para repositorios de instantáneas. Si especificas esta marca, puedes publicar instantáneas no únicas que reemplacen las versiones existentes en el repositorio.

    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.

    .
    provider "google" {
        project = "PROJECT-ID"
    }
    
    resource "google_artifact_registry_repository" "my-repo" {
      provider = google-beta
    
      location = "LOCATION"
      repository_id = "REPOSITORY"
      description = "DESCRIPTION"
      format = "FORMAT"
      kms_key_name = "KEY"
    }
    

    Dónde

    • PROJECT-ID es el ID del proyecto de Google Cloud.
    • REPOSITORY es el nombre del repositorio.
    • LOCATION es la ubicación del repositorio.
    • DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones del repositorio no están encriptadas.
    • FORMAT es el formato del repositorio.

      • DOCKER
      • KFP
      • MAVEN
      • Administración de socios de red
      • PYTHON
      • APT
      • YUM
    • 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.

    Solo en los repositorios de Maven, puedes especificar una política de versión para el repositorio mediante un bloque maven_config. Este bloque admite la siguiente configuración:

    • version_policy establece la política de versión con uno de los siguientes valores:
      • VERSION_POLICY_UNSPECIFIED: Almacena instantáneas y lanzamientos de paquetes. Esta es la configuración predeterminada.
      • RELEASE: Solo se almacenan paquetes de lanzamiento.
      • INSTANTÁNEA: solo almacena paquetes de instantáneas.
    • allow_snapshot_overwrites configura un repositorio con una política de versión SNAPSHOT para aceptar instantáneas no únicas que reemplacen 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"
      }
    }
    
  3. Otorga permisos para acceder al repositorio.

    Si otorgaste cualquiera de las funciones de Artifact Registry a nivel de proyecto, los repositorios del proyecto heredan estas funciones. Si quieres que los miembros del equipo tengan diferentes niveles de acceso a los repositorios del proyecto, otorga funciones a nivel del repositorio.

  4. Para interactuar con los repositorios desde Docker o los administradores de paquetes, debes configurar la autenticación de esas herramientas. Consulta la página adecuada:

Actualizar descripciones del repositorio

Puedes actualizar la descripción de un repositorio existente mediante el siguiente comando:

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

WHERE

  • 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 del repositorio.

Para obtener más información sobre el comando, ejecuta el siguiente comando:

 gcloud artifacts repositories update --help

¿Qué sigue?