Crea repositorios remotos

En esta página, se describe cómo crear repositorios remotos de Artifact Registry.

Los repositorios remotos almacenan artefactos de las siguientes fuentes upstream:

  • Repositorios estándar de Artifact Registry
  • Fuentes externas, como las siguientes:
    • CentOS
    • Debian
    • Docker Hub
    • GitHub Container Registry (ghcr.io)
    • Maven Central
    • Índice de paquetes de Python (PyPI)

Un repositorio remoto actúa como proxy para la fuente upstream, de modo que tengas más control sobre tus dependencias. La primera vez que solicitas una versión de un paquete, Artifact Registry descarga y almacena en caché el paquete en el repositorio remoto. La próxima vez que solicites la misma versión del paquete, Artifact Registry publicará la copia almacenada en caché.

Si solicitas un artefacto de una fuente upstream que no existe o no contiene la versión que especificaste, la solicitud fallará.

Para obtener más detalles sobre cómo funcionan los repositorios remotos, consulta la Descripción general de los repositorios remotos.

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 gcloud CLI de gcloud.
  3. Si necesitas claves de encriptación administradas por el cliente (CMEK) para encriptar el contenido del repositorio, crea y habilita una clave en Cloud KMS para el repositorio.
  4. Si deseas autenticarte en un repositorio upstream, habilita la API de Secret Manager.

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. Si Artifact Registry se encuentra en un perímetro de servicio de los Controles del servicio de VPC, habilita la API de Access Context Manager si aún no está habilitada.

    gcloud services enable accesscontextmanager.googleapis.com \
        --project=PROJECT_ID
    
  6. Si quieres establecer un repositorio de Artifact Registry como upstream y se encuentra en un proyecto diferente al de tu repositorio remoto, debes otorgar acceso a la cuenta de servicio del proyecto del repositorio remoto al proyecto del repositorio upstream antes de crear el repositorio remoto.

    Otorga el rol de agente de servicio

    Los repositorios remotos de Artifact Registry usan el agente de servicio de Artifact Registry para autenticarse en los repositorios upstream de Artifact Registry. Debes otorgar al agente de servicio acceso de lectura al repositorio upstream.

    Para otorgar al agente de servicio el rol de agente de servicio de Artifact Registry en el repositorio upstream, ejecuta el siguiente comando:

    
      gcloud artifacts repositories add-iam-policy-binding UPSTREAM_REPOSITORY \
          --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
          --location=LOCATION \
          --project=UPSTREAM_PROJECT_ID \
          --role roles/artifactregistry.serviceAgent
      

    Reemplaza lo siguiente:

    • UPSTREAM_REPOSITORY es el ID del repositorio upstream. Los repositorios upstream de Artifact Registry deben ser repositorios de modo estándar.
    • REMOTE_PROJECT_NUMBER es el número de proyecto del proyecto Google Cloud para tu repositorio remoto.
    • LOCATION es la ubicación regional o multirregional del repositorio.
    • UPSTREAM_PROJECT_ID es el ID del proyecto de Google Cloud con el repositorio upstream.

Roles obligatorios

Para obtener los permisos que necesitas para administrar repositorios, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Crea repositorios remotos y otorga acceso a repositorios individuales: Administrador de Artifact Registry (roles/artifactregistry.admin) en el proyecto
  • Guarda las credenciales de tu repositorio upstream en una versión del secreto: Administrador de Secret Manager (roles/secretmanager.admin) en el proyecto
  • Otorga acceso a fuentes upstream fuera de un perímetro de servicio de los Controles del servicio de VPC: Editor de Access Context Manager (roles/accesscontextmanager.policyEditor) en la organización del recurso en el que se aplica la política de acceso

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Crea un repositorio remoto

Cuando creas un repositorio remoto, debes configurar los siguientes parámetros, que no se pueden cambiar después de crear el repositorio:

  • Formato del artefacto.
  • El modo del repositorio está establecido como remoto.
  • Es la fuente upstream del repositorio remoto.
  • Ubicación del repositorio
  • Encriptación con Google-owned and Google-managed encryption keys oclaves de encriptación administradas por el cliente Artifact Registry usaGoogle-owned and Google-managed encryption keys de forma predeterminada.

Artifact Registry aplica restricciones de políticas de la organización que requieren CMEK para encriptar recursos o limitar las claves de Cloud KMS que se pueden usar para la protección de CMEK.

Console

  1. Abre la página Repositorios en la consola de Google Cloud .

    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. En la sección Formato, selecciona el formato del repositorio.

  5. En la sección Modo de repositorio, selecciona Remoto.

  6. En la sección Remote repository source, selecciona una de las siguientes formas de ingresar la URL de tu repositorio upstream:

    • Selecciona la fuente predeterminada de transmisión ascendente que aparece en la lista para tu tipo de formato.
    • Selecciona Personalizado para especificar la URL completa de un repositorio público o privado para los formatos admitidos.
    • Selecciona Repositorio de Artifact Registry para elegir un repositorio estándar de Artifact Registry.
  7. Si seleccionaste Personalizado, ingresa la URL completa del repositorio en el campo Repositorio personalizado. La URL debe usar HTTPS y no se puede cambiar después de crear el repositorio.

    Para ver ejemplos de algunas URLs de servidores ascendentes comunes, consulta Servidores ascendentes personalizados.

  8. Si seleccionaste Repositorio de Artifact Registry, haz lo siguiente:

    1. En el campo Repositorio de Artifact Registry, ingresa el nombre completo del repositorio que deseas usar como upstream o haz clic en Explorar para ver una lista de los repositorios a los que tienes acceso. Solo se muestran los repositorios con el mismo formato que tu repositorio remoto.
    2. Haz clic en el nombre del repositorio que quieres usar como upstream.
    3. Haz clic en Seleccionar.
  9. Si seleccionaste uno de los elementos upstream predeterminados o ingresaste una URL completa con el botón Personalizado, en el Modo de autenticación del repositorio remoto, elige una de las siguientes opciones:

    • Authenticated: Para ingresar tu nombre de usuario y secreto para la autenticación en tu repositorio upstream
    • Sin autenticación: Para omitir la autenticación en el repositorio upstream.
  10. Si seleccionaste Autenticado, ingresa lo siguiente:

    • En el campo Nombre de usuario, ingresa tu nombre de usuario para el repositorio upstream.
    • En el campo Secret, ingresa la versión del secreto en la que guardaste la contraseña del repositorio upstream.

    Puedes editar estos valores después de crear el repositorio. Para obtener más información sobre la autenticación en repositorios remotos ascendentes, consulta Configura la autenticación en repositorios remotos ascendentes.

  11. En la sección Tipo de ubicación, elige la ubicación del 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 ubicaciones y las ubicaciones admitidas, consulta Ubicaciones del repositorio.

  12. 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 de los repositorios no están encriptadas.

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

  14. En la sección Encryption, elige el mecanismo de encriptación para el repositorio.

    • Google-managed encryption key: Encripta el contenido del repositorio con un Google-owned and Google-managed encryption key.
    • 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.
  15. Si deseas usar políticas de limpieza para borrar artefactos sin usar, en la sección Políticas de limpieza, haz lo siguiente:

    1. Selecciona Ejecución de prueba para probar la política antes de aplicarla.
    2. Haz clic en Agregar política para agregar una política de conservación o eliminación a tu repositorio.
    3. Asigna un nombre descriptivo a tu política de limpieza en el campo Nombre.
    4. En la sección Tipo de política, selecciona una de las siguientes opciones:

      • Eliminación condicional: Borra artefactos según las condiciones que definas.
      • Conservación condicional: Conserva artefactos según las condiciones que definas.
      • Conservar las versiones más recientes: Conserva una cantidad establecida de las versiones más recientes por paquete.

      Para obtener más detalles sobre las políticas de limpieza, consulta Configura políticas de limpieza.

  16. En la sección Artifact Analysis, elige la configuración del análisis de vulnerabilidades:

    • Habilitado: Permite el análisis en este repositorio. La API de Container Scanning debe estar habilitada en tu proyecto.

      Cuando habilitas la API de Container Scanning, la facturación comienza de inmediato. Después de habilitar la API de Container Scanning en un proyecto, se habilita el análisis de vulnerabilidades para todos los repositorios nuevos y existentes. Cuando envías una imagen a Artifact Registry, Artifact Analysis la analiza automáticamente.

    • Inhabilitado: Evita el análisis en este repositorio. Si la API de Container Scanning está habilitada en tu proyecto, el análisis continuará en otros repositorios, y este se excluirá.

      Para obtener más información sobre las opciones de análisis de vulnerabilidades, consulta Cómo habilitar y cómo inhabilitar el análisis automático.

  17. Haz clic en Crear.

Artifact Registry crea el repositorio y lo agrega a la lista de repositorios.

gcloud CLI

Para crear un repositorio, ejecuta el comando para el formato de repositorio adecuado:

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" \
    --disable-vulnerability-scanning \
    --remote-docker-repo=UPSTREAM \
    --remote-username="USERNAME" \
    --remote-password-secret-version="PASSWORD"

Reemplaza lo siguiente:

  • REMOTE-REPOSITORY-NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • USERNAME: es opcional. Tu nombre de usuario para autenticarte en el repositorio upstream.
  • PASSWORD: es opcional. Es la versión del secreto que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre upstream preestablecido, la ruta de acceso al repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream

    En el caso de los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los flujos ascendentes predeterminados disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.

  • --disable-vulnerability-scanning: Es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: Es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Cómo habilitar o inhabilitar el análisis automático.

Por ejemplo, con el siguiente comando, se crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y se puede autenticar en el repositorio upstream con el nombre de usuario my-username y la versión secreta 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

Para obtener más información sobre la autenticación en los repositorios upstream de Docker Hub, consulta Configura la autenticación del repositorio remoto en 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" \
    --disable-vulnerability-scanning \
    --remote-mvn-repo=UPSTREAM \
    --remote-username="USERNAME" \
    --remote-password-secret-version="PASSWORD"

Reemplaza lo siguiente:

  • REMOTE-REPOSITORY-NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • USERNAME: es opcional. Tu nombre de usuario para autenticarte en el repositorio upstream.
  • PASSWORD: es opcional. Es la versión del secreto que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre upstream preestablecido, la ruta de acceso al repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream

    En el caso de los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los flujos ascendentes predeterminados disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.

  • --disable-vulnerability-scanning: Es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: Es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Cómo habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 en el proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión secreta 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" \
    --disable-vulnerability-scanning \
    --remote-npm-repo=UPSTREAM \
    --remote-username="USERNAME" \
    --remote-password-secret-version="PASSWORD"

Reemplaza lo siguiente:

  • REMOTE-REPOSITORY-NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • USERNAME: es opcional. Tu nombre de usuario para autenticarte en el repositorio upstream.
  • PASSWORD: es opcional. Es la versión del secreto que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre upstream preestablecido, la ruta de acceso al repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream

    En el caso de los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los flujos ascendentes predeterminados disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.

  • --disable-vulnerability-scanning: Es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: Es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Cómo habilitar o inhabilitar el análisis automático.

Por ejemplo, con el siguiente comando, se crea un repositorio remoto llamado my-repo en la región us-east1 del proyecto Google Cloud my-project y se puede autenticar en el repositorio upstream con el nombre de usuario my-username y la versión secreta 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" \
    --disable-vulnerability-scanning \
    --remote-python-repo=UPSTREAM \
    --remote-username="USERNAME" \
    --remote-password-secret-version="PASSWORD"

Reemplaza lo siguiente:

  • REMOTE-REPOSITORY-NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • USERNAME: es opcional. Tu nombre de usuario para autenticarte en el repositorio upstream.
  • PASSWORD: es opcional. Es la versión del secreto que contiene la contraseña de tu repositorio upstream.
  • UPSTREAM con el nombre upstream preestablecido, la ruta de acceso al repositorio de Artifact Registry o la URL definida por el usuario del repositorio upstream

    En el caso de los repositorios upstream de Artifact Registry, formatea la ruta del repositorio de manera similar a la siguiente: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Para obtener información sobre los flujos ascendentes predeterminados disponibles y los flujos ascendentes definidos por el usuario compatibles, consulta Formatos compatibles.

  • --disable-vulnerability-scanning: Es una marca opcional que configura tu repositorio para inhabilitar el análisis automático de vulnerabilidades.

  • --allow-vulnerability-scanning: Es una marca opcional que configura tu repositorio para permitir el análisis automático de vulnerabilidades. Para obtener más información, consulta Cómo habilitar o inhabilitar el análisis automático.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 en el proyecto Google Cloud my-project y puede autenticarse en el repositorio upstream con el nombre de usuario my-username y la versión secreta 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 (versión preliminar)

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"

Reemplaza lo siguiente:

  • REMOTE_REPOSITORY_NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION con una descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE_REPOSITORY_DESCRIPTION (opcional): Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • APT_REPOSITORY_BASE: Es uno de los nombres base de repositorio admitidos que se enumeran en los upstream admitidos de paquetes del SO para los repositorios remotos de Apt.
  • APT_REPOSITORY_PATH: Es el resto de la URL del repositorio upstream que deseas almacenar en caché en tu repositorio remoto después de la base del repositorio.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo para almacenar en caché el repositorio estable de Debian en la región us-east1 en el proyecto Google Cloud my-project. La URL completa del repositorio upstream es http://deb.debian.org/debian/dists/stable.

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 stable distribution" \
    --remote-apt-repo=DEBIAN \
    --remote-apt-repo-path="debian/dists/stable"

Ruby (vista previa)

gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
    --project=PROJECT_ID \
    --repository-format=ruby \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo=https://rubygems.org \
    --remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \

Reemplaza lo siguiente:

  • REMOTE_REPOSITORY_NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID por el ID del proyecto que contiene el repositorio.
  • LOCATION: Es la ubicación regional o multirregional del repositorio. Para ver una lista de las ubicaciones compatibles, ejecuta el comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE_REPOSITORY_DESCRIPTION opcional Es una descripción de la configuración del repositorio externo para este repositorio remoto.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-ruby-repo en la región us-central1 en el proyecto Google Cloud my-project. La URL completa del repositorio directo es https://rubygems.org.

gcloud artifacts repositories create my-ruby-repo \
    --project=my-project \
    --repository-format=ruby \
    --location=us-central1 \
    --description="Ruby remote repository" \
    --mode=remote-repository \
    --remote-repo=https://rubygems.org

Yum (versión preliminar)

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"

Reemplaza lo siguiente:

  • REMOTE_REPOSITORY_NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • REMOTE_REPOSITORY_DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.
  • YUM_REPOSITORY_BASE: Es uno de los nombres base del repositorio admitidos que se enumeran en los repositorios upstream admitidos de paquetes del SO para los repositorios remotos de Yum.
  • YUM_REPOSITORY_PATH: Es el resto de la URL del repositorio upstream que deseas almacenar en caché en tu repositorio remoto después de la base del repositorio.

Por ejemplo, el siguiente comando crea un repositorio remoto para paquetes de Yum llamado my-repo en la región us-east1 en el proyecto Google Cloud my-project para el repositorio upstream 9-stream/BaseOs/x86_64/os. La URL completa del repositorio es https://mirror.stream.centos.org/9-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_STREAM \
    --remote-yum-repo-path="9-stream/BaseOs/x86_64/os"

Go

Los repositorios remotos de Go de Artifact Registry solo admiten el https://proxy.golang público upstream.

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=go \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --remote-go-repo=https://proxy.golang.org

Reemplaza lo siguiente:

  • REMOTE-REPOSITORY-NAME: es el nombre del repositorio, Para la ubicación de cada repositorio en un proyecto, los nombres de los repositorios deben ser únicos.
  • PROJECT_ID: Es el ID del proyecto. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • 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 comando gcloud artifacts locations list.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles. Las descripciones de los repositorios no están encriptadas.
  • REMOTE-REPOSITORY-DESCRIPTION: es opcional. Es una descripción de la configuración del repositorio externo para este repositorio remoto.

Por ejemplo, el siguiente comando crea un repositorio remoto llamado my-repo en la región us-east1 en el proyecto Google Cloud my-project.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=go \
    --location=us-east1 \
    --description="Remote Go repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Go proxy" \
    --remote-go-repo=https://proxy.golang.org

Artifact Registry crea tu repositorio. Ejecuta el siguiente comando para ver una descripción del repositorio:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
    --location=LOCATION

Terraform

Usa el recurso google_artifact_registry_repository para crear repositorios. Se requiere la versión terraform-provider-google 5.0.0 o una posterior.

Si es la primera vez que usas Terraform para Google Cloud, consulta la página Comenzar con Google Cloud en el sitio web de HashiCorp.

En el siguiente ejemplo, se definen el proveedor y un repositorio remoto con el nombre del recurso de 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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-IDes el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • KEYes 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.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se establecieran políticas de limpieza en el repositorio. Omite este campo si no deseas agregar políticas de limpieza al repositorio. * true: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de ejecución de prueba. * false: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica a los artefactos etiquetados y sin etiquetar. Si un repositorio tiene habilitadas etiquetas inmutables, no se pueden borrar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas para aplicar la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquetes a los que se aplica la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión del artefacto al repositorio, especificado como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregando s, m, h o d, respectivamente.
    • KEEP_COUNT es la cantidad de versiones por paquete de un artefacto que se conservarán en tu repositorio.

Maven

Si no especificas una política de versiones, Artifact Registry creará un repositorio de Maven que almacene versiones de instantáneas y de lanzamiento de paquetes de forma predeterminada.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-IDes el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • KEYes 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.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se establecieran políticas de limpieza en el repositorio. Omite este campo si no deseas agregar políticas de limpieza al repositorio. * true: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de ejecución de prueba. * false: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica a los artefactos etiquetados y sin etiquetar. Si un repositorio tiene habilitadas etiquetas inmutables, no se pueden borrar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas para aplicar la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquetes a los que se aplica la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión del artefacto al repositorio, especificado como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregando s, m, h o d, respectivamente.
    • KEEP_COUNT es la cantidad de versiones por paquete de un artefacto que se conservarán en tu repositorio.

Para almacenar versiones de actualización y de instantáneas en diferentes repositorios, especifica una política de versiones para el repositorio con un bloque maven_config. Este bloque admite los siguientes parámetros de configuración:

  • version_policy establece la política de versión con uno de los siguientes valores:
    • VERSION_POLICY_UNSPECIFIED: Almacena instantáneas y paquetes de versiones. Este es el parámetro de configuración predeterminado.
    • RELEASE: Almacena solo los paquetes de lanzamiento.
    • SNAPSHOT: Almacena solo paquetes de instantáneas.
  • allow_snapshot_overwrites configura un repositorio con una política de versiones 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 versiones de lanzamiento.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-IDes el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • KEYes 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.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se establecieran políticas de limpieza en el repositorio. Omite este campo si no deseas agregar políticas de limpieza al repositorio. * true: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de ejecución de prueba. * false: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica a los artefactos etiquetados y sin etiquetar. Si un repositorio tiene habilitadas etiquetas inmutables, no se pueden borrar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas para aplicar la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquetes a los que se aplica la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión del artefacto al repositorio, especificado como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregando s, m, h o d, respectivamente.
    • KEEP_COUNT es la cantidad de versiones por paquete de un artefacto que se conservarán en tu repositorio.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Dónde

  • PROJECT-IDes el Google Cloud ID del proyecto.
  • LOCATION es la ubicación del repositorio.
  • REPOSITORY_ID es el ID del repositorio.
  • DESCRIPTIONes la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • KEYes 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.
  • CONFIG_DESCRIPTIONes la descripción opcional de la fuente remota.
  • DRY_RUN_STATUS determina si las políticas de limpieza borran artefactos o solo registran qué artefactos se borrarían si se establecieran políticas de limpieza en el repositorio. Omite este campo si no deseas agregar políticas de limpieza al repositorio. * true: Establece las políticas para que se ejecuten en modo de ejecución de prueba. No se borran artefactos en el modo de ejecución de prueba. * false: Aplica las políticas de limpieza. Los artefactos se borran o se conservan según las políticas. Para obtener más información sobre las políticas de limpieza, consulta Configura políticas de limpieza.
    • POLICY_NAME es el nombre de la política de limpieza.
    • TAG_STATE es el estado de la etiqueta al que se aplicará la política. Los valores son tagged, untagged y any. any se aplica a los artefactos etiquetados y sin etiquetar. Si un repositorio tiene habilitadas etiquetas inmutables, no se pueden borrar los artefactos etiquetados.
    • TAG_PREFIX y TAG_PREFIX_N son prefijos de etiquetas para aplicar la política.
    • PKG_PREFIX y PKG_PREFIX_N son prefijos de paquetes a los que se aplica la política.
    • TIME_SINCE_UPLOAD es el tiempo transcurrido desde que se subió una versión del artefacto al repositorio, especificado como una duración. Puedes especificar duraciones de segundos, minutos, horas o días agregando s, m, h o d, respectivamente.
    • KEEP_COUNT es la cantidad de versiones por paquete de un artefacto que se conservarán en tu repositorio.

Apt (vista previa)

  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"
      }
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación del repositorio.
  • REPOSITORY_ID: Es el ID del repositorio.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • CONFIG_DESCRIPTION: es opcional. Es una descripción de la fuente remota.
  • REPOSITORY_BASE: Es el repositorio público predeterminado para Apt. Los valores posibles son DEBIAN y UBUNTU.
  • REPOSITORY_PATH: Es el repositorio específico de la base. Por ejemplo, debian/dists/stable.

Yum (versión preliminar)

  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"
      }
    }
  }
}

Dónde

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • LOCATION: Es la ubicación del repositorio.
  • REPOSITORY_ID: Es el ID del repositorio.
  • DESCRIPTION: es opcional. Es una descripción del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
  • CONFIG_DESCRIPTION: es opcional. Es una descripción de la fuente remota.
  • REPOSITORY_BASE: Es la base predeterminada del repositorio público para Yum. Los valores posibles son CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY y EPEL.
  • REPOSITORY_PATH: Es el repositorio específico de la base. Por ejemplo, "centos/8-stream/BaseOS/x86_64/os.

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:

Cómo editar las descripciones de los repositorios

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

Console

  1. Abre la página Repositorios en la consola de Google Cloud .

    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, luego, 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 lo siguiente:

  • REPOSITORY: Es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usar el valor predeterminado.
  • PROJECT: Es el ID del proyecto de Google Cloud. Si se omite esta marca, se usa el proyecto actual o predeterminado.
  • LOCATION es la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar la predeterminada.
  • DESCRIPTION: Es una descripción del repositorio.

Acceso a fuentes upstream en un perímetro de servicio

Los servicios en un perímetro de servicio de los Controles del servicio de VPC tienen acceso restringido a los recursos fuera del perímetro.

Puedes permitir o denegar el acceso a las fuentes upstream dentro de unGoogle Cloud proyecto y una ubicación especificados.

De forma predeterminada, Artifact Registry deniega el acceso a las fuentes upstream si no otorgaste acceso de forma explícita.

En el caso de Artifact Registry, el rol requerido es el de administrador de Artifact Registry (roles/artifactregistry.admin).

Cómo ver la configuración de las fuentes upstream

Para ver la configuración de una combinación específica de proyecto y ubicación, ejecuta el siguiente comando:

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

Por ejemplo, usa el siguiente comando para ver la configuración de los repositorios remotos en us-east1 en el proyecto my-project:

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

Permite el acceso a las fuentes upstream

Para permitir el acceso a fuentes upstream en una ubicación especificada, ejecuta el siguiente comando:

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

Por ejemplo, usa el siguiente comando para permitir que todos los repositorios remotos en us-east1 del proyecto my-project accedan a sus fuentes upstream fuera del perímetro:

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

Deniega el acceso a las fuentes upstream

Cuando deniegas el acceso a las fuentes upstream, los artefactos almacenados en caché existentes en los repositorios remotos siguen disponibles.

Para denegar el acceso a las fuentes upstream en una ubicación especificada, ejecuta el siguiente comando:

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

Por ejemplo, usa el siguiente comando para bloquear el acceso a las fuentes upstream fuera del perímetro para todos los repositorios remotos en us-west1 en el proyecto my-project:

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

¿Qué sigue?