Questa pagina descrive come creare repository remoti Artifact Registry.
I repository remoti archiviano artefatti da origini esterne preimpostate come Docker Hub, Maven Central, Python Package Index (PyPI), Debian o CentOS come nonché origini definite dall'utente per i formati supportati. R repository remoto funge da proxy per l'origine esterna, in modo che il controllo sulle dipendenze esterne. La prima volta che richiedi un di un pacchetto, Artifact Registry scarica e memorizza nella cache il pacchetto nel repository remoto. La prossima volta la stessa versione del pacchetto, Artifact Registry gestisce la copia memorizzata nella cache.
Le altre modalità di repository sono:
- Standard: la modalità di repository predefinita. Carichi o pubblichi come pacchetti privati direttamente nei repository standard. Sebbene sia possibile scaricare direttamente da singoli repository standard, l'accesso a gruppi di repository con un repository virtuale semplifica della configurazione dello strumento.
- Virtuale: un repository che funge da singolo accesso punto di accesso per più repository upstream, inclusi repository remoti e standard repository.
Per maggiori dettagli su come funzionano i repository remoti, consulta Panoramica del repository remoto.
Prima di iniziare
- Abilita Artifact Registry, tra cui l'abilitazione dell'API Artifact Registry e l'installazione di Google Cloud CLI.
- (Facoltativo) Configura i valori predefiniti per i comandi gcloud CLI.
- Se sono necessarie chiavi di crittografia gestite dal cliente (CMEK) per criptare i contenuti del repository, creare e abilitare una chiave Cloud KMS per il repository.
Se vuoi eseguire l'autenticazione in un repository upstream, abilita il l'API Secret Manager.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Se Artifact Registry si trova in un perimetro di servizio Controlli di servizio VPC, abilitare l'API Access Context Manager, se non è già abilitata.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i repository, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Crea repository remoti e concedi l'accesso a singoli repository:
Amministratore Artifact Registry (
roles/artifactregistry.admin
) del progetto -
Salva le credenziali del repository upstream in una versione del secret:
Amministratore Secret Manager (
roles/secretmanager.admin
) del progetto -
Concedi l'accesso alle origini upstream esterne a un perimetro di servizio dei Controlli di servizio VPC:
Editor Gestore contesto accesso (
roles/accesscontextmanager.policyEditor
) Sul progetto, sulla cartella o sull'organizzazione in cui viene applicato il criterio di accesso.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Crea un repository remoto
Quando crei un repository remoto, devi configurare le impostazioni seguenti: che non può essere modificato dopo la creazione del repository:
- Formato artefatto.
- La modalità del repository è impostata su remoto.
- Origine upstream preimpostata o definita dall'utente per il repository remoto.
- Posizione del repository.
- Crittografia con chiavi di proprietà e gestite da Google chiavi di crittografia gestite dal cliente. Artifact Registry utilizza Chiavi di crittografia di proprietà di Google e gestite da Google per impostazione predefinita.
Artifact Registry applica i vincoli dei criteri dell'organizzazione che richiedono una CMEK per criptare le risorse o limitare le risorse di Cloud KMS per la protezione CMEK.
Crea un repository remoto utilizzando la console Google Cloud
Apri la pagina Repository nella console Google Cloud.
Fai clic su Crea repository.
Specifica il nome del repository. Per ogni posizione del repository in un progetto, i nomi dei repository devono essere univoci.
Nella sezione Formato, seleziona il formato del repository.
Nella sezione Modalità repository, seleziona Remote.
Nella sezione Origine repository remoto, seleziona il preset upstream o Personalizzato se vuoi utilizzare una l'URL definito dall'utente per l'upstream.
Facoltativo. Se utilizzi un upstream personalizzato, nel Repository personalizzato inserisci l'URL del repository personalizzato. L'URL non può essere modificato dopo la creazione del repository.
In Modalità di autenticazione del repository remoto, scegli una delle seguenti opzioni:
- Autenticato: per inserire il tuo nome utente e il tuo secret per l'autenticazione. nel repository upstream.
- Non autenticato: per saltare l'autenticazione al repository upstream.
Facoltativo. Se hai selezionato Autenticato, inserisci quanto segue:
- Nel campo Nome utente, inserisci il tuo nome utente per l'upstream repository Git.
- Nel campo Secret, inserisci la versione del secret in cui hai salvato per il repository upstream.
Puoi modificare questi valori dopo aver creato il repository. Per ulteriori informazioni informazioni sull'autenticazione negli upstream del repository remoto, consulta Configura l'autenticazione negli upstream del repository remoto.
Nella sezione Tipo di località, scegli la posizione del repository:
Scegli il tipo di località: Regione o Più regioni. L'elenco di le località cambiano in base alla selezione.
Nell'elenco Regione o Più regioni, seleziona una località.
Per informazioni sui tipi di località e sulle località supportate, vedi Località dei repository
Aggiungi una descrizione per il repository. Le descrizioni aiutano a identificare lo scopo del repository e il tipo di artefatti che contiene.
Non includere dati sensibili perché le descrizioni dei repository sono non è criptato.
Se vuoi utilizzare le etichette per organizzare i tuoi repository, fai clic su Aggiungi etichetta e inserisci la coppia chiave-valore per l'etichetta. Puoi aggiungere, modificare o rimuovere le etichette dopo aver creato repository Git.
Nella sezione Crittografia, scegli il meccanismo di crittografia per il repository.
- Chiave gestita da Google: cripta i contenuti del repository con una Chiave di proprietà di Google e gestita da Google.
- Chiave gestita dal cliente: cripta i contenuti del repository con una chiave che controlli tramite Cloud Key Management Service. Per istruzioni sulla configurazione della chiave, consulta Configurazione di CMEK per i repository.
Se vuoi utilizzare i criteri di pulizia per eliminare gli elementi inutilizzati, nella sezione Criteri di pulizia:
- Seleziona Prova per testare il criterio prima di applicarlo.
- Fai clic su Aggiungi criterio per aggiungere un criterio di conservazione o di eliminazione al repository.
- Assegna al criterio di pulizia un nome descrittivo nel campo Nome.
Nella sezione Tipo di criterio, seleziona una delle seguenti opzioni:
- Eliminazione condizionale: elimina gli artefatti in base alle condizioni impostate definire.
- Conservazione condizionale: conserva gli artefatti in base alle condizioni che definisci.
Conserva le versioni più recenti: mantiene un numero specifico delle versioni più recenti o versioni successive per pacchetto.
Per maggiori dettagli sui criteri di pulizia, consulta Configura i criteri di pulizia.
Fai clic su Crea.
Artifact Registry crea il repository e lo aggiunge all'elenco di repository.
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configurare Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per eseguire l'autenticazione nelle loro origini a monte.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Crea un repository remoto utilizzando gcloud CLI
Per creare un repository, esegui il comando per il formato del repository appropriato:
Docker
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-docker-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, in uso il progetto corrente o quello predefinito.LOCATION
con una o più regioni location del repository. Puoi ometti questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository non sono criptato.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione per la configurazione del repository esterno.USERNAME
in via facoltativa, se utilizzi l'autenticazione, con il tuo nome utente per l'autenticazione nel repository a monte.SECRET_VERSION
in via facoltativa, se utilizzi l'autenticazione, con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente della repository upstream. Per informazioni sugli upstream preimpostati disponibili e su quelli definiti dall'utente supportati, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository a monte utilizzando
nome utente my-username
e versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=docker \
--location=us-east1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-docker-repo=DOCKER-HUB
Per ulteriori informazioni sull'autenticazione nei repository upstream di Docker Hub, vedi Configura l'autenticazione del repository remoto in Docker Hub.
Maven
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=maven \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-mvn-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, viene utilizzato il progetto corrente o predefinito.LOCATION
con la località regionale o multiregionale del repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository non sono criptato.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione per la configurazione del repository esterno.USERNAME
in via facoltativa, se utilizzi l'autenticazione, con il tuo nome utente per l'autenticazione nel repository a monte.SECRET_VERSION
in via facoltativa, se utilizzi l'autenticazione, con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente della repository upstream. Per informazioni sugli upstream preimpostati disponibili e su quelli definiti dall'utente supportati, consulta Formati supportati.
Ad esempio, il seguente comando crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può autenticarsi nel repository di origine utilizzando
nome utente my-username
e la versione della secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=maven \
--location=us-east1 \
--description="Remote Maven repository" \
--mode=remote-repository \
--remote-repo-config-desc="Maven Central" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-mvn-repo=MAVEN-CENTRAL
npm
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=npm \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-npm-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, in uso il progetto corrente o quello predefinito.LOCATION
con una o più regioni location del repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository non sono criptato.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione per la configurazione del repository esterno.USERNAME
in via facoltativa, se utilizzi l'autenticazione, con il tuo nome utente per l'autenticazione nel repository a monte.SECRET_VERSION
in via facoltativa, se utilizzi l'autenticazione, con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente della repository upstream. Per informazioni sugli upstream preimpostati disponibili upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository a monte utilizzando
nome utente my-username
e versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=npm \
--location=us-east1 \
--description="Remote npm repository" \
--mode=remote-repository \
--remote-repo-config-desc="Public npm registry" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-npm-repo=NPMJS
Python
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=python \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-python-repo=UPSTREAM
Sostituisci quanto segue:
REMOTE-REPOSITORY-NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, in uso il progetto corrente o quello predefinito.LOCATION
con una o più regioni location del repository. Puoi omettere questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository non sono criptato.REMOTE-REPOSITORY-DESCRIPTION
con una descrizione per la configurazione del repository esterno.USERNAME
in via facoltativa, se utilizzi l'autenticazione, con il tuo nome utente per l'autenticazione nel repository a monte.SECRET_VERSION
in via facoltativa, se utilizzi l'autenticazione, con la versione del secret contenente la password del repository upstream.UPSTREAM
con il nome preimpostato o l'URL definito dall'utente della repository upstream. Per informazioni sugli upstream preimpostati disponibili upstream supportati definiti dall'utente, consulta Formati supportati.
Ad esempio, il comando seguente crea un repository remoto denominato
my-repo
nella regione us-east1
nel progetto Google Cloud
my-project
e può eseguire l'autenticazione nel repository a monte utilizzando
nome utente my-username
e versione del secret
projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=python \
--location=us-east1 \
--description="Remote Python repository" \
--mode=remote-repository \
--remote-repo-config-desc="PyPI" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-python-repo=PYPI
Apt (anteprima)
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"
Sostituisci quanto segue:
REMOTE_REPOSITORY_NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, in uso il progetto corrente o quello predefinito.LOCATION
con una o più regioni location del repository. Puoi ometti questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE_REPOSITORY_DESCRIPTION
con una descrizione facoltativa per la configurazione del repository esterno.APT_REPOSITORY_BASE
con uno dei repository supportati i nomi base elencati Upstream supportati per i pacchetti del sistema operativo per Apt Remote repository.APT_REPOSITORY_PATH
con il resto dell'URL della che vuoi memorizzare nella cache nel repository remoto dopo alla base del repository.
Ad esempio, il seguente comando crea un repository remoto denominato
my-repo
per memorizzare nella cache il repository Debian Buster nella regione us-east1
nel
progetto Google Cloud my-project
. L'URL completo dell'upstream
il repository è http://deb.debian.org/debian/dists/buster
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=apt \
--location=us-east1 \
--description="Apt remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="Debian buster distribution" \
--remote-apt-repo=DEBIAN \
--remote-apt-repo-path="debian/dists/buster"
Slurp (anteprima)
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"
Sostituisci quanto segue:
REMOTE_REPOSITORY_NAME
con il nome del repository. Per per ogni posizione di repository in un progetto, i nomi dei repository devono essere univoci.PROJECT_ID
con l'ID progetto. Se questo flag viene omesso, in uso il progetto corrente o quello predefinito.LOCATION
con una o più regioni location del repository. Puoi ometti questo flag se imposti un valore default. Per visualizzare un elenco delle località supportate, esegui il comandogcloud artifacts locations list
.DESCRIPTION
con una descrizione facoltativa del repository. Non includere dati sensibili, poiché le descrizioni dei repository non sono criptate.REMOTE_REPOSITORY_DESCRIPTION
con una descrizione facoltativa per la configurazione del repository esterno per questo repository remoto.YUM_REPOSITORY_BASE
con uno dei repository supportati i nomi base elencati Upstream supportati per il pacchetto del sistema operativo per Yum Remote repository.YUM_REPOSITORY_PATH
con il resto dell'URL del repository a monte che vuoi memorizzare nella cache nel repository remoto dopo la base del repository.
Ad esempio, il seguente comando crea un repository remoto per i pacchetti Yum chiamato my-repo
nella regione us-east1
nel progetto Google Cloud my-project
per il repository centos/8-stream/BaseOs/x86_64/os
a monte.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=yum \
--location=us-east1 \
--description="Yum remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="CentOS 8 x86" \
--remote-yum-repo=CENTOS \
--remote-yum-repo-path="centos/8-stream/BaseOs/x86_64/os"
Artifact Registry crea il repository. Esegui questo comando per visualizzare una descrizione del repository:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configura i criteri di pulizia per eliminare gli artefatti inutilizzati.
- Configurare Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per l'autenticazione
le relative origini upstream.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Creare un repository remoto utilizzando Terraform
Usa la risorsa google_artifact_registry_repository
per creare repository.
È richiesta la versione 5.0.0
o successive di terraform-provider-google
.
Se non hai mai utilizzato Terraform per Google Cloud, consulta Inizia - Google Cloud nella Sito web di HashiCorp.
L'esempio seguente definisce il provider e un repository remoto con
Nome della risorsa 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
}
}
}
Dove
PROJECT-ID
è l'ID del progetto Google Cloud.LOCATION
è la posizione del repository.REPOSITORY_ID
è l'ID repository.DESCRIPTION
è la descrizione facoltativa del repository. Non includere dati sensibili, in quanto le descrizioni dei repository non è criptato.KEY
è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Omit questo argomento per utilizzare l'impostazione predefinita, la crittografia gestita da Google chiave.CONFIG_DESCRIPTION
è la descrizione facoltativa del telecomando sorgente.DRY_RUN_STATUS
determina se i criteri di pulizia vengono eliminati artefatti o registra solo gli artefatti che verranno eliminati se l'impostazione di pulizia del repository. Ometti se non vuoi aggiungere i criteri di pulizia nel repository. *true
: consente di impostare i criteri per l'esecuzione in modalità dry run. Nessun artefatto è eliminati in modalità dry run. *false
: applica i criteri di pulizia. Gli artefatti vengono eliminati a seconda dei criteri. Per maggiori informazioni sui criteri di pulizia, consulta Configura i criteri di pulizia.POLICY_NAME
è il nome del criterio di pulizia.TAG_STATE
è lo stato del tag a cui applicare il criterio. I valori sonotagged
,untagged
eany
.any
si applica sia a tag che a artefatti senza tag. Se in un repository sono abilitati tag immutabili, gli artefatti non possono essere eliminati.TAG_PREFIX
,TAG_PREFIX_N
sono prefissi dei tag di per applicare il criterio.PKG_PREFIX
,PKG_PREFIX_N
sono prefissi del pacchetto a cui applicare il criterio.TIME_SINCE_UPLOAD
è il tempo trascorso dalla versione di un artefatto è stato caricato nel repository, specificato come durata. Puoi specificare durate di secondi, minuti, ore o giorni aggiungendos
,m
,h
, od
rispettivamente.KEEP_COUNT
è il numero di versioni per pacchetto di un artefatto in e mantenere nel repository.
Maven
Se non specifichi un criterio di versione, Artifact Registry crea un Repository Maven in cui sono archiviati snapshot e release dei pacchetti per impostazione predefinita.
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
}
}
}
Dove
PROJECT-ID
è l'ID del progetto Google Cloud.LOCATION
è la posizione del repository.REPOSITORY_ID
è l'ID repository.DESCRIPTION
è la descrizione facoltativa del repository. Non includere dati sensibili, in quanto le descrizioni dei repository non è criptato.KEY
è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Omit questo argomento per utilizzare l'impostazione predefinita, la crittografia gestita da Google chiave.CONFIG_DESCRIPTION
è la descrizione facoltativa del telecomando sorgente.DRY_RUN_STATUS
determina se i criteri di pulizia vengono eliminati artefatti o registra solo gli artefatti che verranno eliminati se l'impostazione di pulizia del repository. Ometti se non vuoi aggiungere i criteri di pulizia nel repository. *true
: consente di impostare i criteri per l'esecuzione in modalità dry run. Nessun artefatto viene eliminato in modalità di prova. *false
: applica i criteri di pulizia. Gli elementi vengono eliminati o conservati in base ai criteri. Per ulteriori informazioni sui criteri di pulizia, consulta Configurare i criteri di pulizia.POLICY_NAME
è il nome del criterio di pulizia.TAG_STATE
è lo stato del tag a cui applicare il criterio. I valori sonotagged
,untagged
eany
.any
si applica sia a tag che a artefatti senza tag. Se in un repository sono abilitati tag immutabili, gli artefatti non possono essere eliminati.TAG_PREFIX
,TAG_PREFIX_N
sono prefissi dei tag di per applicare il criterio.PKG_PREFIX
,PKG_PREFIX_N
sono prefissi del pacchetto a cui applicare il criterio.TIME_SINCE_UPLOAD
è il tempo trascorso dalla versione di un artefatto è stato caricato nel repository, specificato come durata. Puoi specificare durate di secondi, minuti, ore o giorni aggiungendos
,m
,h
, od
rispettivamente.KEEP_COUNT
è il numero di versioni per pacchetto di un artefatto in e mantenere nel repository.
Per archiviare versioni di snapshot e release in diverse
repository, specifica un criterio di versione
utilizzando un blocco maven_config
. Questo blocco supporta
le seguenti impostazioni:
version_policy
imposta il criterio di versione con uno dei seguenti valori:VERSION_POLICY_UNSPECIFIED
: archivia pacchetti di snapshot e release. Questo è l'impostazione predefinita.- LANCIO: soltanto pacchetti release dello store.
- SNAPSHOT: archivia solo i pacchetti di snapshot.
allow_snapshot_overwrites
configura un repository con unSNAPSHOT
criterio di versione per accettare snapshot non univoci che sovrascrivono più versioni del repository.
L'esempio seguente definisce un Repository Maven con una versione di release .
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
}
}
}
Dove
PROJECT-ID
è l'ID del progetto Google Cloud.LOCATION
è la posizione del repository.REPOSITORY_ID
è l'ID repository.DESCRIPTION
è la descrizione facoltativa del repository. Non includere dati sensibili, in quanto le descrizioni dei repository non è criptato.KEY
è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Omit questo argomento per utilizzare l'impostazione predefinita, la crittografia gestita da Google chiave.CONFIG_DESCRIPTION
è la descrizione facoltativa del telecomando sorgente.DRY_RUN_STATUS
determina se i criteri di pulizia vengono eliminati artefatti o registra solo gli artefatti che verranno eliminati se l'impostazione di pulizia del repository. Ometti se non vuoi aggiungere criteri di pulizia al repository. *true
: consente di impostare i criteri per l'esecuzione in modalità dry run. Nessun artefatto è eliminati in modalità dry run. *false
: applica i criteri di pulizia. Gli elementi vengono eliminati o conservati in base ai criteri. Per maggiori informazioni sui criteri di pulizia, consulta Configura i criteri di pulizia.POLICY_NAME
è il nome del criterio di pulizia.TAG_STATE
è lo stato del tag a cui applicare il criterio. I valori sonotagged
,untagged
eany
.any
si applica sia a tag che a artefatti senza tag. Se in un repository sono abilitati tag immutabili, gli artefatti non possono essere eliminati.TAG_PREFIX
,TAG_PREFIX_N
sono prefissi dei tag di per applicare il criterio.PKG_PREFIX
,PKG_PREFIX_N
sono prefissi del pacchetto a cui applicare il criterio.TIME_SINCE_UPLOAD
è il tempo trascorso dalla versione di un artefatto è stato caricato nel repository, specificato come durata. Puoi specificare durate di secondi, minuti, ore o giorni aggiungendos
,m
,h
, od
rispettivamente.KEEP_COUNT
è il numero di versioni per pacchetto di un artefatto da conservare nel repository.
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
}
}
}
Dove
PROJECT-ID
è l'ID del progetto Google Cloud.LOCATION
è la posizione del repository.REPOSITORY_ID
è l'ID repository.DESCRIPTION
è la descrizione facoltativa del repository. Non includere dati sensibili, in quanto le descrizioni dei repository non è criptato.KEY
è il nome della chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia. Omit questo argomento per utilizzare l'impostazione predefinita, la crittografia gestita da Google chiave.CONFIG_DESCRIPTION
è la descrizione facoltativa del telecomando sorgente.DRY_RUN_STATUS
determina se i criteri di pulizia vengono eliminati artefatti o registra solo gli artefatti che verranno eliminati se l'impostazione di pulizia del repository. Ometti se non vuoi aggiungere i criteri di pulizia nel repository. *true
: imposta i criteri da eseguire in modalità di prova. Nessun artefatto è eliminati in modalità dry run. *false
: applica i criteri di pulizia. Gli artefatti vengono eliminati a seconda dei criteri. Per maggiori informazioni sui criteri di pulizia, consulta Configura i criteri di pulizia.POLICY_NAME
è il nome del criterio di pulizia.TAG_STATE
è lo stato del tag a cui applicare il criterio. I valori sonotagged
,untagged
eany
.any
si applica sia a tag che a artefatti senza tag. Se in un repository sono abilitati tag immutabili, gli artefatti non possono essere eliminati.TAG_PREFIX
,TAG_PREFIX_N
sono prefissi dei tag di per applicare il criterio.PKG_PREFIX
,PKG_PREFIX_N
sono prefissi del pacchetto a cui applicare il criterio.TIME_SINCE_UPLOAD
è il tempo trascorso dalla versione di un artefatto è stato caricato nel repository, specificato come durata. Puoi specificare durate di secondi, minuti, ore o giorni aggiungendos
,m
,h
, od
rispettivamente.KEEP_COUNT
è il numero di versioni per pacchetto di un artefatto in e mantenere nel repository.
Appartamento (anteprima)
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"
}
}
}
}
Dove
- PROJECT-ID è l'ID del progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository sono non è criptato.
- CONFIG_DESCRIPTION è la descrizione facoltativa del telecomando sorgente.
- REPOSITORY_BASE è la base preimpostata del repository pubblico per Apt.
I valori possibili sono
DEBIAN
eUBUNTU
. - REPOSITORY_PATH è il repository specifico della base. Per
esempio
debian/dists/buster
.
Yum (anteprima)
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"
}
}
}
}
Dove
- PROJECT-ID è l'ID del progetto Google Cloud.
- LOCATION è la località del repository.
- REPOSITORY_ID è l'ID repository.
- DESCRIPTION è la descrizione facoltativa del repository. Non includere dati sensibili perché le descrizioni dei repository sono non è criptato.
- CONFIG_DESCRIPTION è la descrizione facoltativa del telecomando sorgente.
- REPOSITORY_BASE è la base di repository pubblico preimpostata per Yum.
I valori possibili sono
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
eEPEL
. - REPOSITORY_PATH è il repository specifico della base. Per
esempio
"centos/8-stream/BaseOS/x86_64/os
.
Artifact Registry crea il repository. Esegui questo comando per visualizzare una descrizione del repository:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Dopo aver creato il repository:
- Concedi l'accesso al repository.
- Configurare Docker, gestori di pacchetti e altri client di terze parti per eseguire l'autenticazione nei repository.
- Configura i repository remoti di Artifact Registry per eseguire l'autenticazione nelle loro origini a monte.
- Immagini container: Configura l'autenticazione del repository remoto in Docker Hub
- Pacchetti di lingue:
- Upstream personalizzati definiti dall'utente: configura l'autenticazione negli upstream del repository remoto
Modifica descrizioni repository
Puoi modificare la descrizione del repository dalla console Google Cloud oppure dal con gcloud CLI.
Console
Apri la pagina Repository nella console Google Cloud.
Nell'elenco dei repository, seleziona il repository e fai clic su Modifica repository.
Modifica la descrizione del repository e fai clic su Salva.
gcloud
Per aggiornare la descrizione del repository, esegui il comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
Sostituisci quanto segue:
REPOSITORY
: il nome del repository. Se hai configurato predefinito, puoi omettere questo flag per usare il valore predefinito.PROJECT
: l'ID del progetto Google Cloud. Se questo flag viene omesso, viene utilizzato il progetto corrente o predefinito.LOCATION
: un una o più regioni località. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una posizione predefinita, puoi omettere questo flag per utilizzare quella predefinita.DESCRIPTION
: una descrizione del repository.
Accesso alle origini upstream in un perimetro di servizio
I servizi in un perimetro di servizio Controlli di servizio VPC sono soggetti a restrizioni alle risorse al di fuori del perimetro.
Puoi consentire o negare l'accesso alle origini upstream all'interno di un dal progetto Google Cloud e dalla località.
Per impostazione predefinita, Artifact Registry nega l'accesso alle origini upstream se non hanno concesso esplicitamente l'accesso.
Per Artifact Registry, il ruolo richiesto è Amministratore Artifact Registry
(roles/artifactregistry.admin
).
Visualizzare le impostazioni per le origini a monte
Per visualizzare la configurazione per una combinazione specifica di progetto e località, esegui il seguente comando:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, usa il comando seguente per visualizzare le impostazioni per i repository remoti
in us-east1
nel progetto my-project
:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Consenti l'accesso a origini upstream
Per consentire l'accesso alle origini a monte in una posizione specificata, esegui il comando:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, usa il comando seguente per consentire tutti i repository remoti
us-east1
nel progetto my-project
per accedere alle origini upstream all'esterno
del perimetro:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Nega l'accesso alle origini upstream
Quando neghi l'accesso alle origini upstream, gli artefatti esistenti memorizzati nella cache sono ancora disponibili.
Per negare l'accesso alle origini a monte in una posizione specificata, esegui il comando:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Ad esempio, usa il comando seguente per bloccare l'accesso alle origini upstream
fuori dal perimetro per tutti i repository remoti in us-west1
nel
progetto my-project
:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Passaggi successivi
- Crea un repository remoto di Docker Hub.
- Scopri di più sui repository remoti di Artifact Registry.
- Configura l'autenticazione del repository remoto in Docker Hub.