Perché il mio errore di build è dovuto all'autenticazione di pull dell'immagine?
Cloud privato virtuale Infrastruttura classica
Quando una build come ad esempio da Operator Hub oppure un catalogo di contenuto dello sviluppatore integrato prova ad eseguire il pull di un'immagine da un registro Red Hat, la build potrebbe non riuscire con un errore di autenticazione simile al seguente:
error: build error: After retrying 2 times, Pull image still failed due to error: unauthorized: authentication required
Per impostazione predefinita, il tuo cluster è configurato con i segreti di pull di immagine ai registri Red Hat come registry.redhat.io, registry.connect.redhat.com e cloud.openshift.com. Inoltre, nel default progetto, il cluster dispone di segreti di pull delle immagini per accedere ai <region>.icr.io registri per IBM Cloud Container Registry.
Tuttavia, se un operatore o un template integrato hanno un componente di build che deve eseguire il pull di un'immagine da un registro privato, la build potrebbe non riuscire con un errore di autenticazione perché la build non dispone dell'accesso ai segreti di pull dell'immagine predefiniti nel suo account del servizio. Per impostazione predefinita, le build possono eseguire il pull di immagini archiviate solo nel registro interno.
Configura la build con l'accesso all'immagine, eseguendo il pull dell'immagine dal registro privato o importando l'immagine dal registro privato nel registro interno.
Per ulteriori informazioni, vedi la documentazione diRed Hat OpenShift.
-
Controlla il file di configurazione della build per appurare qual è il registro per cui la build ha bisogno dell'accesso di pull. Ad esempio, se la build fa parte di un Red Hat OpenShift modello, il valore della
spec.strategy.sourceStrategy.from.nameconfigurazione della build si riferisce al registroregistry.redhat.ioprivato.oc -n openshift get template react-web-app-example -o yamlOutput di esempio
strategy: sourceStrategy: from: kind: DockerImage name: registry.redhat.io/rhoar-nodejs-tech-preview/rhoar-nodejs-10-webapp -
Configura la build con l'accesso di pull dell'immagine. Puoi scegliere dall'esecuzione del pull dell'immagine dal registro privato o l'utilizzo di un flusso di immagini dal registro interno.
- Esegui il pull dell'immagine da un registro privato:
-
In ciascun progetto, aggiungi un segreto di pull dell'immagine con l'accesso di pull al registro privato utilizzato dalla build.
- Per i registri Red Hat: copia il segreto
pull-secretdal progettoopenshift-config. Questo segreto include l'accesso di pull ai seguenti registri privati:cloud.openshift.com,quay.io,registry.connect.redhat.comeregistry.redhat.io. - Per IBM Cloud Container Registry: Copia i segreti
<region>.icr.iodal progettodefault. - Per altri registri privati: crea un segreto di pull dell'immagine con l'accesso di pull dell'immagine al registro privato.
- Per i registri Red Hat: copia il segreto
-
Aggiungi il segreto all'account del servizio builder oppure specifica il segreto di pull dell'immagine nel file di configurazione della build.
Esempio per collegare il segreto all'account del servizio builder in un progetto.
oc secrets link builder <pull-secret>Esempio per fare riferimento al segreto nel file di configurazione della build.
spec: output: to: kind: "DockerImage" name: "<private.registry.com>/<namespace>/<image>:<tag>" pushSecret: name: "<pull-secret>"
-
- Utilizza un flusso di immagini dal registro interno: crea un flusso di immagini nel registro interno da un'immagine importata dal registro privato. Aggiorna quindi il file di configurazione della build per fare riferimento al flusso di immagini invece di eseguire il pull dell'immagine direttamente dal registro privato.
- Esegui il pull dell'immagine da un registro privato: