Utilizzo dei segreti

Scopri come utilizzare i segreti in Code Engine. In Code Engine, puoi archiviare le tue informazioni come coppie chiave - valore nei segreti che possono essere utilizzati dalla tua funzione, lavoro o applicazione utilizzando variabili di ambiente.

Quali sono i segreti e perché dovrei usarli?

In Code Engine, i segreti (e configmap) sono una raccolta di coppie chiave - valore. Quando associate alle variabili di ambiente, le relazioni NAME=VALUE sono impostate in modo che il nome della variabile di ambiente corrisponda alla "chiave" di ogni voce in tali mappe e il valore della variabile di ambiente sia il "valore" di tale chiave.

Un segreto fornisce un metodo per includere informazioni di configurazione sensibili, come password o chiavi SSH, nell'installazione. Facendo riferimento ai valori dal tuo segreto, puoi disaccoppiare le informazioni sensibili dalla tua distribuzione per mantenere la tua applicazione, funzione o lavoro portatile. Chiunque sia autorizzato al progetto può anche visualizzarne i segreti; assicurarsi di sapere che le informazioni segrete possono essere condivise con tali utenti. I segreti contengono informazioni in coppie chiave - valore.

Poiché i segreti e le mappe di configurazione sono entità simili (tranne che i segreti sono archiviati in modo più sicuro), anche il modo in cui si interagisce e si lavora con i segreti e le mappe di configurazione è simile. Per ulteriori informazioni sulle mappe di configurazione, consultare Utilizzo delle mappe di configurazione.

Che tipo di segreti posso creare in Code Engine?

Code Engine supporta vari segreti e fornisce opzioni per la creazione e l'utilizzo dei segreti.

La seguente tabella riepiloga i segreti supportati in Code Engine.

Segreti in Code Engine
Nome Descrizione
Autenticazione di base Un segreto che contiene una chiave username e password.
Usare i segreti di autenticazione di base quando si accede a un servizio che richiede l'autenticazione di base HTTP.
Generico Un segreto che memorizza coppie chiave - valore semplici e Code Engine non fa supposizioni sulle coppie chiave - valore definite né sull'utilizzo previsto del segreto.
Utilizzare segreti generici quando si desidera definire le proprie coppie chiave - valore per accedere a un servizio.
HMAC Un segreto che contiene una chiave access_key_id e una secret_access_key.
Usare le credenziali HMAC per utilizzare gli strumenti e le librerie di S3-compatible che richiedono l'autenticazione ma non supportano le chiavi API di IBM Cloud® Identity and Access Management.
Registro Un segreto che memorizza le credenziali per accedere a un registro contenitore.
Utilizza i segreti di registro quando lavori con Code Engine applicazioni o lavori per accedere a un'immagine del contenitore. Oppure, utilizza Code Engine per creare un'immagine del contenitore e il segreto del registro viene utilizzato da Code Engine per accedere al registro per archiviare l'immagine del contenitore creata.
Questo segreto viene indicato anche come Registry access secret nella CLI.
Accesso al servizio Un segreto che memorizza le credenziali per l'accesso a un'istanza del servizio IBM Cloud.
Usate i segreti di accesso ai servizi quando lavorate con i binding dei servizi in Code Engine. Code Engine può generare automaticamente questo segreto o potete creare un segreto di accesso ai servizi personalizzato.
SSH Un segreto che archivia le credenziali per l'autenticazione a un servizio con una chiave SSH, come l'autenticazione a un repository Git, come GitHub o GitLab.
Utilizza i segreti SSH quando vuoi che Code Engine crei un'immagine del contenitore per te. Code Engine usa questo segreto per accedere al codice sorgente in un repository di codici. Ad esempio, utilizza questo segreto con le esecuzioni di build per accedere al codice sorgente in un repository, come GitHub o GitLab.
Questo segreto viene utilizzato anche come Git repository access secret nella CLI e Code repo access nella console.
TLS (Transport Layer Security) Un segreto che contiene un certificato TLS firmato, inclusi tutti i relativi certificati intermedi e la chiave privata corrispondente da un'autorità di certificazione (CA).
Utilizza i segreti TLS quando gestisci le associazioni di domini personalizzati in Code Engine.

Creazione dei segreti

Utilizza i segreti per fornire informazioni sensibili alle tue applicazioni, lavori o funzioni. I segreti sono definiti in coppie chiave - valore e i dati memorizzati nei segreti sono codificati.

Creazione di un segreto dalla console

Impara come creare i segreti dalla console di Code Engine.

Informazioni su come creare i seguenti tipi di segreti dalla console.

Creazione di un segreto generico dalla console

Impara come creare segreti generici dalla console Code Engine che possono essere utilizzati da funzioni, lavori o applicazioni come variabili di ambiente.

Prima di iniziare, creare un progetto.

  1. Una volta che il tuo progetto si trova nello stato Attivo, fai clic sul nome del tuo progetto nella pagina ProgettiCode Engine.
  2. Dalla pagina Componenti, fare clic su Segreti e mappe di configurazione.
  3. Dalla pagina Secrets and configmaps, fai clic su Crea per creare il tuo segreto.
  4. Dalla pagina Crea segreto o configmap, completare la seguente procedura:
    1. Selezionare Segreto generico e fare clic su Avanti.
    2. Fornire un nome, ad esempio mysecret-generic.
    3. Fare clic su Aggiungi coppia chiave-valore. Specificare una o più coppie chiave - valore per questo segreto. Ad esempio, specificare una chiave come secret1 con il valore mysecret1 e specificare un'altra chiave come secret2 con il valore target-secret. Il nome che scegli per la tua chiave non deve necessariamente essere lo stesso della tua variabile di ambiente. Si noti che il valore per la chiave è nascosto, ma può essere visualizzato se necessario.
    4. Fare clic su Crea per creare il segreto.

Ora che il tuo segreto è stato creato dalla console, vai alla pagina Secrets and configmaps per visualizzare un elenco di segreti e configmap definiti. È possibile applicare filtri per personalizzare l'elenco in base alle proprie esigenze.

Creare un segreto HMAC dalla console

Imparate a creare segreti HMAC dalla console Code Engine che possono essere utilizzati da funzioni, lavori o applicazioni come variabili d'ambiente. Sono utilizzati con gli strumenti e le librerie di S3-compatible che richiedono l'autenticazione ma non supportano le chiavi API di IBM Cloud® Identity and Access Management.

Prima di iniziare, creare un progetto.

  1. Una volta che il tuo progetto si trova nello stato Attivo, fai clic sul nome del tuo progetto nella pagina ProgettiCode Engine.
  2. Dalla pagina Componenti, fare clic su Segreti e mappe di configurazione.
  3. Dalla pagina Secrets and configmaps, fai clic su Crea per creare il tuo segreto.
  4. Dalla pagina Crea segreto o configmap, completare la seguente procedura:
    1. Selezionare HMAC secret e fare clic su Avanti.
    2. Fornire un nome, ad esempio mysecret-hmac.
    3. Specificare l'ID della chiave di accesso.
    4. Specificare la chiave di accesso segreta. Si noti che il valore per la chiave è nascosto, ma può essere visualizzato se necessario.
    5. Fare clic su Crea per creare il segreto.

Ora che il tuo segreto è stato creato dalla console, vai alla pagina Secrets and configmaps per visualizzare un elenco di segreti e configmap definiti. È possibile applicare filtri per personalizzare l'elenco in base alle proprie esigenze.

Per ulteriori informazioni sui segreti HMAC, vedere IBM Cloud Object Storage- Chiave API vs HMAC.

Creazione di un segreto di registro dalla console

Impara come creare i segreti di registro dalla console Code Engine che possono essere utilizzati da funzioni, lavori, app o build per l'accesso per eseguire il pull o il push di un'immagine del contenitore.

Prima di iniziare, creare un progetto.

  1. Una volta che il tuo progetto si trova nello stato Attivo, fai clic sul nome del tuo progetto nella pagina ProgettiCode Engine.
  2. Dalla pagina Componenti, fare clic su Segreti e mappe di configurazione.
  3. Dalla pagina Secrets and configmaps, fai clic su Crea per creare il tuo segreto.
  4. Dalla pagina Crea segreto o configmap, completare la seguente procedura:
    1. Selezionare Segreto registro e fare clic su Avanti.
    2. Fornire un nome, ad esempio mysecret-registry.
    3. Specifica il registro di destinazione per questo segreto, come IBM Cloud Container Registry o Docker Hub.
    4. Specificare la posizione del registro.
    5. Specificare un nome utente. Se questo segreto è per IBM Cloud Container Registry, il nome utente è iamapikey. Se questo segreto è per Docker Hub, è il tuo ID Docker.
    6. Immettere le credenziali per il nome utente. Per IBM Cloud Container Registry, utilizza la chiave API IAM. Per Docker Hub, puoi utilizzare la tua password Docker Hub o un token di accesso. Per altri registri di destinazione, specificare la parola d'ordine o la chiave API per il nome utente.
    7. Fare clic su Crea per creare il segreto.

Ora che il tuo segreto è stato creato dalla console, vai alla pagina Secrets and configmaps per visualizzare un elenco di segreti e configmap definiti. È possibile applicare filtri per personalizzare l'elenco in base alle proprie esigenze.

Per ulteriori informazioni sull'utilizzo dei registri delle immagini, consulta Accesso ai registri dei contenitori.

Creazione di un segreto SSH dalla console

Scopri come creare un segreto SSH dalla console che può essere utilizzato dalle build per accedere a repository di codice sorgente privati. Un segreto SSH memorizza le credenziali per l'autenticazione a un servizio con una chiave SSH, come l'autenticazione a un repository Git, come GitHub o GitLab.

Prima di iniziare, creare un progetto.

  1. Una volta che il tuo progetto si trova nello stato Attivo, fai clic sul nome del tuo progetto nella pagina ProgettiCode Engine.
  2. Dalla pagina Componenti, fare clic su Segreti e mappe di configurazione.
  3. Dalla pagina Secrets and configmaps, fai clic su Crea per creare il tuo segreto.
  4. Dalla pagina Crea segreto o configmap, completare la seguente procedura:
    1. Selezionare Segreto SSH e fare clic su Avanti.
    2. Fornire un nome, ad esempio mysecret-ssh.
    3. Aggiungere la chiave privata SSH per questo segreto.
    4. Fare clic su Crea per creare il segreto.

Ora che il tuo segreto è stato creato dalla console, vai alla pagina Secrets and configmaps per visualizzare un elenco di segreti e configmap definiti. È possibile applicare filtri per personalizzare l'elenco in base alle proprie esigenze.

Utilizza il tuo segreto SSH quando utilizzi i repository di codice privati, come i repository Git. Consultare Accesso ai repository di codice privato.

Creazione di un segreto TLS dalla console

Impara come creare un segreto TLS dalla console che può essere utilizzato dalle applicazioni quando gestisci le associazioni di dominio personalizzate in Code Engine. Un segreto TLS (Transport Layer Security) contiene un certificato TLS firmato, inclusi tutti i relativi certificati intermedi e la chiave privata corrispondente da una CA (Certificate Authority).

Prima di iniziare, creare un progetto.

  1. Una volta che il tuo progetto si trova nello stato Attivo, fai clic sul nome del tuo progetto nella pagina ProgettiCode Engine.
  2. Dalla pagina Componenti, fare clic su Segreti e mappe di configurazione.
  3. Dalla pagina Secrets and configmaps, fai clic su Crea per creare il tuo segreto.
  4. Dalla pagina Crea segreto o configmap, completare la seguente procedura:
    1. Selezionare Segreto TLS e fare clic su Avanti.
    2. Fornire un nome, ad esempio mysecret-tls.
    3. Aggiungere la catena di certificati e la sua chiave privata. È possibile concatenare i certificati iniziando ciascuno su una nuova riga. È possibile fornire queste informazioni in un file.
    4. Fare clic su Crea per creare il segreto.

Ora che il tuo segreto è stato creato dalla console, vai alla pagina Secrets and configmaps per visualizzare un elenco di segreti e configmap definiti. È possibile applicare filtri per personalizzare l'elenco in base alle proprie esigenze.

Utilizza il tuo segreto TLS quando gestisci le associazioni del dominio personalizzato in Code Engine.

Creazione di segreti con la CLI

Impara come creare i segreti con la CLI Code Engine che può essere utilizzata da applicazioni, lavori o funzioni come variabili di ambiente.

Prima di iniziare

A partire dalla versione della CLI 1.42.0, la definizione e l'utilizzo dei segreti nella CLI sono unificati nel gruppo di comandi secret del gruppo di comandi. Consultare i comandi ibmcloud ce secret. Utilizzare l'opzione --format per specificare la categoria del segreto, ad esempio basic_auth, generic, hmac, ssh, tls, o registry. Il valore predefinito dell'opzione --format è generic.

Utilizzando il comando secret create, è possibile creare e gestire vari formati segreti. Per le descrizioni dei vari formati segreti, vedi Che tipo di segreto posso creare in Code Engine?

Impara a creare i seguenti tipi di segreti con la CLI,

Creazione di un segreto di autenticazione di base con la CLI

Un segreto di autenticazione di base contiene un nome utente e una password e viene usato per accedere a un servizio che richiede l'autenticazione di base HTTP. L'esempio seguente crea un segreto di autenticazione di base con credenziali per myusername e la parola d'ordine associata viene fornita in un file sulla workstation locale

ibmcloud ce secret create --name mysecret-basicauth --format basic_auth --username myusername --password-from-file ./password.txt

Per visualizzare i dettagli di questo segreto,

ibmcloud ce secret get --name mysecret-basicauth

Output di esempio

Getting secret 'mysecret-basicauth'...
OK

Name:          mysecret-basicauth
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        basic_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2021-03-10T18:44:18-05:00

Data:    
---
password: REDACTED
username: bXl1c2VybmFtZQ==

Nota che il valore della chiave username per questo segreto di autenticazione di base è codificato e il valore di password viene redatto. Per visualizzare i dati segreti come decodificati, utilizzare l'opzione --decode con il comando secret get.

Creazione di un segreto generico con la CLI

Un segreto generico memorizza coppie chiave - valore semplici e Code Engine non fa ipotesi sulle coppie chiave - valore definite né sull'utilizzo previsto del segreto.

È possibile creare un segreto generico con il comando secret create in uno dei modi riportati di seguito. Per impostazione predefinita, viene creato un segreto generico quando l'opzione --format non è specificata.

  • Crea un segreto direttamente dalla riga di comando utilizzando l'opzione --from-literal in formato KEY=VALUE. Ad esempio,

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My literal secret"
    
  • Creare un segreto utilizzando l'opzione --from-file per puntare a un file. Utilizzando questa opzione, tutto il contenuto del file diventa il valore per la coppia chiave - valore. Per questo esempio, utilizzare un file denominato secrets.txt, che contiene my little secret1.

    • Il seguente esempio utilizza il formato --from-file KEY=FILE con il comando secret create:

      ibmcloud ce secret create --name mysecretmsg1 --from-file TARGET=secrets.txt
      
    • Il seguente comando di esempio utilizza il formato di --from-file FILE con il comando secret create. In questo esempio TARGET (nessuna estensione) è il nome del file, che è uguale al nome della variabile di ambiente nota al lavoro.

      ibmcloud ce secret create --name mysecretmsg2  --from-file TARGET
      
  • Creare un segreto utilizzando l'opzione --from-env-file per puntare a un file che contiene una o più righe che corrispondono al formato KEY=VALUE. Ogni riga del file specificato viene aggiunta come una coppia chiave - valore. Le righe nel file specificato che sono vuote o che iniziano con # vengono ignorate. Per questo esempio, utilizzare un file denominato secrets_multi.txt, che contenga le coppie chiave - valore sec1=mysec1, sec2=mysec2 e sec3=mysec3.

    ibmcloud ce secret create --name mysecretmulti --from-env-file secrets_multi.txt
    

Se si desidera creare (o aggiornare) un segreto generico da un file, utilizzare l'opzione --from-file con uno dei seguenti formati: --from-file FILE o --from-file KEY=FILE In Code Engine, quando si utilizza l'opzione --from-file per specificare i valori segreti, tutto il contenuto nel file è il valore per la coppia chiave - valore. Quando utilizzi il formato dell'opzione --from-file KEY=FILE, il KEY è il nome della variabile di ambiente nota al tuo lavoro, alla tua funzione o alla tua applicazione. Quando utilizzi il formato dell'opzione --from-file FILE, FILE è il nome della variabile di ambiente nota al tuo lavoro, alla tua funzione o alla tua applicazione. Se il file contiene una o più coppie chiave - valore, utilizzare l'opzione --from-env-file per aggiungere una variabile di ambiente per ogni coppia chiave - valore nel file specificato. Le righe nel file specificato che sono vuote o che iniziano con # vengono ignorate.

Per visualizzare i dettagli del segreto generico, myliteralsecret,

ibmcloud ce secret get --name myliteralsecret

Output di esempio

Getting secret 'myliteralsecret'...
OK

Name:          myliteralsecret
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        generic
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 21:06:34 +0000 UTC  

Data:    
---
TARGET: TXkgbGl0ZXJhbCBzZWNyZXQ=

Notare che il valore della chiave TARGET per questo segreto generico è codificato. Per visualizzare i dati segreti come decodificati, utilizzare l'opzione --decode con il comando secret get.

Creazione di un segreto HMAC con la CLI

Un segreto HMAC contiene una access_key_id e una secret_access_key chiave e viene utilizzato con S3-compatible strumenti e librerie che richiedono l'autenticazione ma non supportano IBM Cloud® Identity and Access Management chiavi API. Vedere IBM Cloud Object Storage- Chiave API vs HMAC quando utilizzare le chiavi API IBM Cloud® Identity and Access Management o le credenziali HMAC. L'esempio seguente crea un segreto HMAC con credenziali di esempio, da fornire quando richiesto.

ibmcloud ce secret create --name mysecret-hmac --format hmac --access-key-id-prompt --secret-access-key-prompt

Per visualizzare i dettagli di questo segreto,

ibmcloud ce secret get --name mysecret-hmac

Output di esempio

Getting secret 'mysecret-hmac'...
OK

Name:          mysecret-hmac
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        hmac_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           86s
Created:       2025-05-15T12:41:15-05:00

Data:
---
access_key_id: MWEyYjNjNGQ1ZTZmMWEyYjNjNGQ1ZTZmMWEyYjNjNGQK
secret_access_key: REDACTED

Si noti che il valore della chiave access_key_id per questo segreto HMAC è codificato, mentre il valore di secret_access_key è stato eliminato. Per visualizzare i dati segreti come decodificati, utilizzare l'opzione --decode con il comando secret get.

Creazione di un segreto di registro con la CLI

Un segreto del registro memorizza le credenziali per accedere a un registro del contenitore.

Il seguente esempio crea una parola segreta del registro denominata mysecret-registry per accedere a un'istanza IBM Cloud Container Registry che si trova sul server del registro us.icr.io e specifica credenziali per username e password.

ibmcloud ce secret create --name mysecret-registry --format registry --server us.icr.io --username iamapikey --password API_KEY

Per visualizzare i dettagli di questo segreto,

ibmcloud ce secret get --name mysecret-registry

Output di esempio

Getting secret 'mysecret-registry'...
OK

Name:          mysecret-registry
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        registry
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 20:00:45 +0000 UTC  

Data:    
---
email: ""
password: REDACTED
server: dXMuaWNyLmlv
username: aWFtYXBpa2V5

Nota che il valore delle chiavi username e server per questo segreto di registro è codificato e il valore di password è redatto. Per visualizzare i dati segreti come decodificati, utilizzare l'opzione --decode con il comando secret get.

Creazione di un segreto SSH con la CLI

Un segreto SSH memorizza le credenziali per l'autenticazione a un servizio con una chiave SSH; ad esempio, l'autenticazione a un repository Git, come GitHub o GitLab.

Il seguente esempio crea un segreto SSH denominato mysecret-ssh per accedere a un host incluso nel file known_hosts mediante l'autenticazione con un file di chiave privata SSH non crittografato che si trova in /<filepath>/.ssh/<key_name>, dove <filepath> è il percorso sulla tua workstation locale. Questo comando richiede un nome e un percorso chiave e consente anche altri argomenti facoltativi come il percorso del file host noto.

ibmcloud ce secret create --name mysecret-ssh --format ssh --key-path ~/.ssh/<key_name> --known-hosts-path  ~/.ssh/known_hosts

Per visualizzare i dettagli di questo segreto,

ibmcloud ce secret get --name mysecret-ssh

Output di esempio

Getting secret 'mysecret-ssh'...
OK

Name:          mysecret-ssh'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        ssh
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 19:19:59 +0000 UTC  

Data:    
---
known_hosts: fDF8bGh0ekpiSFVXdXRxZWg1NUlrWTk4RjdOdjJZPXxsUmhZd0txVmIwd3dSV2xzcjEySFdoWURUTG89IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQXEyQTdoUkdtZG5tOXRVRGJPOUlEU3dCSzZUYlFhK1BYWVBDUHk2cmJUclR0dzdQSGtjY0tycHAweVZocDVIZEVJY0tyNnBMbFZEQmZPTFg5UVVzeUNPVjB3emZqSUpObEdFWXNkbExKaXpIaGJuMm1VanZTQUhRcVpFVFlQODFlRnpMUU5uUEh0NEVWVlVoN1ZmREVTVTg0S2V6bUQ1UWxXcFhMbXZVMzEveU1mK1NlOHhoSFR2S1NDWklGSW1Xd29HNm1iVW9XZjluenBJb2FTakIrd2VxcVVVbXBhYWFzWFZhbDcySitVWDJCKzJSUFczUmNUMGVPelFncWxKTDNSS3JUSnZkc2pFM0pFQXZHcTNsR0hTWlh5MjhHM3NrdWEyU21WaS93NHlDRTZnYk9EcW5UV2xnNyt3QzYwNHlkR1hBOFZKaVM1YXA0M0pYaVVGRkFhUT09CnwxfEpUSjI4MCt0RkFSMGcxZ3VrZW56U3ZBYm5sQT18RDlSUWppenZlR3UxS0FnNjhNeisrUHM3RmZrPSBlY2RzYS1zaGEyLW5pc3RwMjU2IEFBQUFFMlZqWkhOaExYTm9ZVEl0Ym1semRIQXlOVFlBQUFBSWJtbHpkSEF5TlRZQUFBQkJCRW1LU0VOalFFZXpPbXhrWk15N29wS2d3RkI5bmt0NVlScllNak51RzVOODd1UmdnNkNMcmJvNXdBZFQveTZ2MG1LVjBVMncwV1oyWUIvKytUcG9ja2c9CnwxfDhIOXpNb0VORklZVDNPeVZYWlQrY25wb0srND18dVdhVThFV1FPc0ttSDMzREVVd0xnNUtiUk44PSBzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJT01xcW5rVnpybTBTZEc2VU9vcUtMc2FiZ0g1Qzlva1dpMGRoMmw5R0tKbAo=
ssh-privatekey: REDACTED

Nota che il valore della chiave known_hosts per questo segreto SSH è codificato e il valore di ssh-privatekey è redatto. Per visualizzare i dati segreti come decodificati, utilizzare l'opzione --decode con il comando secret get.

Creazione di un segreto TLS con la CLI

Un segreto TLS (Transport Layer Security) contiene un certificato TLS firmato, inclusi tutti i relativi certificati intermedi e la chiave privata corrispondente da una CA (Certificate Authority). Utilizzare i segreti TLS quando si utilizzano le associazioni di dominio personalizzate.

Il seguente esempio crea un segreto TLS denominato mysecret-tls. La catena di certificati che corrisponde al dominio personalizzato è contenuta nel file certificate.txt e il file della chiave privata corrispondente è contenuto nel file privatekey.txt. In questo esempio, entrambi questi file si trovano nella directory root della workstation locale.

ibmcloud ce secret create --name mysecret-tls  --format tls  --cert-chain-file certificate.txt --private-key-file privatekey.txt

Per visualizzare i dettagli di questo segreto,

ibmcloud ce secret get --name mysecret-tls

Output di esempio

Getting secret 'mysecret-tls'...
OK

Name:          mysecret-tls'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        tls
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 16:14:46 +0000 UTC  

Data:    
---
tls.crt: REDACTED
tls.key: REDACTED

Elencare i segreti con la CLI

Una volta creati i segreti, utilizzare il comando secret list per elencare tutti i segreti nel progetto. Ad esempio,

ibmcloud ce secret list

Output di esempio

Listing secrets...
OK

Name                          Format          Data  Age  
ce-auto-icr-private-us-south  registry        4     333d  
ce-auto-private-icr-us-south  registry        4     335d  
myregistry-seccmd             registry        4     3h31m  
mysecret-basicauth            basic_auth      2     7m37s  
mysecret-generic              generic         1     7m7s  
mysecret-genericfromfile      generic         2     2m29s  
mysecret-hmac                 hmac_auth       2     21m
mysecret-registry             registry        4     111s  
mysecret-ssh                  ssh_auth        2     42m  
mysecret-tls                  tls             2     3h47m

Aggiornamento segreti

È possibile modificare le coppie chiave - valore per i segreti esistenti.

Aggiornamento dei segreti dalla console

È possibile aggiornare le coppie chiave - valore per i segreti definiti dalla console.

  1. È possibile aggiornare le coppie chiave - valore per i segreti definiti dalla console in uno dei seguenti modi.

    • Andare alla pagina Segreti e mappe di configurazione per il progetto e individuare il segreto che si desidera aggiornare. Fare clic sul nome del segreto che si desidera aggiornare per aprirlo.
    • Se il tuo segreto è indicato da un'applicazione, un lavoro o una funzione, utilizza i link nella tabella delle variabili di ambiente nella scheda Variabili di ambiente della tua applicazione, lavoro o funzione. Questi link ti portano direttamente al segreto. In alternativa, è possibile anche andare alla pagina Segreti e mappe di configurazione per il progetto e individuare il segreto che si desidera aggiornare. Fare clic sul nome del segreto che si desidera aggiornare per aprirlo.
  2. Fare clic su Modifica e apportare gli aggiornamenti per il segreto.

  3. Fare clic su Salva per salvare le modifiche al segreto.

Se un lavoro, una funzione o un'app fa riferimento al tuo segreto aggiornato, il tuo lavoro, la tua funzione o la tua applicazione devono essere riavviati per rendere effettivi i nuovi dati.

  • App - Dalla pagina della tua app, fai clic su Nuova revisione e quindi su Salva e distribuisci. In alternativa, puoi attendere che la tua applicazione venga ridimensionata a zero e quando l'applicazione viene ridimensionata, l'app utilizza il segreto aggiornato.
  • Lavori - Dalla pagina per il lavoro, fare clic su Inoltra lavoro per eseguire il lavoro oppure è possibile rieseguire un lavoro. Questa nuova esecuzione lavoro utilizza il segreto aggiornato.
  • Funzioni - Dalla pagina della funzione, fare clic su Verifica funzione. Se il browser è aperto alla funzione URL, aggiornare il browser.

Aggiornamento dei segreti con la CLI

È possibile aggiornare un segreto esistente e le relative coppie chiave - valore con la CLI.

  1. Per modificare il valore di una coppia chiave - valore in un segreto definito, utilizzare il comando secret update. Aggiorniamo il segreto mysecret-registry per utilizzare un server differente.

    ibmcloud ce secret update --name mysecret-registry --format registry --server <new_server> --username <new_username> --password <password>
    
  2. Ora che il tuo segreto è aggiornato, utilizza il comando secret get per visualizzare i dettagli su un segreto specifico. Se necessario, utilizzare l'opzione --decode per visualizzare i dati segreti come decodificati. Ad esempio,

    ibmcloud ce secret get --name mysecret-registry --decode
    

    Output di esempio

    Getting generic secret 'mysecret-registry'...
    OK
    
    Name:          mysecret-registry
    ID:            abcdefgh-abcd-abcd-abcd-c88e2775388e
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           21m
    Created:       2023-03-07 20:00:45 +0000 UTC  
    
    Data:    
    ---
    email: ""
    password: REDACTED
    server: newserver
    username: newuser
    

Riferimento ai segreti

Il tuo lavoro, funzione o applicazione può utilizzare e utilizzare le informazioni archiviate in un segreto utilizzando le variabili di ambiente.

Riferimento ai segreti dalla console

Puoi utilizzare la console per creare variabili di ambiente per le tue applicazioni, i tuoi lavori e le tue funzioni che fanno riferimento completamente a un segreto o a singole chiavi in un segreto.

Prima di poter fare riferimento a un segreto, è necessario che esista. Vedere creazione di un segreto. Per questo esempio, crea un segreto denominato target-secret con la coppia chiave - valore TARGET=Sunshine.

  1. Per fare riferimento a un segreto definito dalle tue app, lavori e funzioni, crea una variabile di ambiente. La variabile di ambiente può fare riferimento completamente a un segreto esistente o a una singola chiave in un segreto esistente. Quando si fa riferimento completamente a un segreto (o configmap), è possibile specificare facoltativamente un prefix. Ad esempio, se si fa riferimento completamente al segreto mysecret dall'applicazione myapp e si utilizza il prefisso mysecret_, ogni chiave nel segreto ha come prefisso mysecret_.

  2. Dopo aver creato le variabili di ambiente, è necessario riavviare le applicazioni, i lavori e le funzioni per rendere effettive le modifiche. Per le applicazioni, salva e distribuisci la tua applicazione per aggiornarla con le variabili di ambiente che hai definito. Per i lavori, inoltrare il lavoro per aggiornarlo con le variabili di ambiente definite.

  3. Dopo che le applicazioni, i lavori e lo stato delle funzioni sono stati modificati in Pronto, puoi verificare l'applicazione o la funzione o eseguire il lavoro. Per un'applicazione, fare clic su Applicazione di test e quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina web, fare clic su Applicazione URL. Nell'esempio myapp, poiché è stato specificato un prefisso per il segreto mysecret con riferimento completo, a tutte le chiavi di questo segreto viene fatto riferimento come variabili di ambiente e viene aggiunto il prefisso mysecret_. Ad esempio, queste variabili di ambiente vengono visualizzate come mysecret_secret1=mysecret1 e mysecret_secret2=mysecret2.

Per aggiornare una variabile di ambiente che fa riferimento a un segreto, vedi Aggiornamento delle variabili di ambiente e considerazioni per l'aggiornamento delle variabili di ambiente.

Per rimuovere una variabile di ambiente che fa riferimento a un segreto, vedi eliminazione di variabili di ambiente.

Ad esempio, utilizziamo il segreto mysecret precedentemente definito che hai definito dalla console con un lavoro e fai riferimento completamente a questo segreto con una variabile di ambiente.

  1. Creare ed eseguire un lavoro. Per questo esempio, crea un lavoro Code Engine che utilizza l'immagine icr.io/codeengine/codeengine ed esegue quindi il lavoro. Quando viene inviata una richiesta a questo lavoro di esempio, il lavoro legge la variabile di ambiente TARGET e il lavoro stampa Hello ${TARGET} from Code Engine e stampa un elenco di variabili di ambiente. Se la variabile di ambiente TARGET è vuota, viene restituito Hello World from Code Engine.

    Dalla pagina Lavori,

    1. Creare un lavoro, ad esempio myjob.
    2. Specificare icr.io/codeengine/codeengine come riferimento dell'immagine.
    3. Fare clic su Crea per creare il lavoro.

    Se il carico di lavoro che vuoi utilizzare con il segreto è già definito in Code Engine, vai alla pagina Applicazioni, Lavori o Funzioni e fai quindi clic sul nome della tua applicazione, lavoro o funzione per aprire il componente.

  2. Quando il lavoro viene creato, dalla pagina Lavori, fare clic sul nome del lavoro per aprirlo.

  3. Aggiornare il lavoro per aggiungere un segreto come variabile di ambiente. Fare clic su Variabili di ambiente per aprire la scheda e fare clic su Aggiungi per aggiungere la variabile di ambiente.

  4. Dalla pagina Aggiungi variabile di ambiente,

    1. Per utilizzare il segreto definito in precedenza, selezionare Riferimento segreto completo.
    2. Dal menu, seleziona il nome del segreto che desideri; ad esempio, target-secret.
    3. Fare clic su Aggiungi per aggiungere la variabile di ambiente.
    4. Fare clic su Salva per salvare le modifiche al lavoro.
  5. Per eseguire il lavoro con una variabile di ambiente che fa riferimento a un segreto, fare clic su Inoltra lavoro. Per questo esempio, i log dell' myjob esecuzione del lavoro visualizzano Hello Sunshine from Code Engine e stampano le variabili di ambiente, inclusi i valori dei segreti a cui si fa riferimento con le variabili di ambiente.

Riferimento ai segreto con la CLI

Per utilizzare i segreti con le applicazioni, i lavori e le funzioni, puoi configurare le variabili di ambiente che fanno riferimento completamente a un segreto o fare riferimento a singole chiavi in un segreto con la CLI.

Riferimento ai segreti esistenti con la CLI

I seguenti esempi fanno riferimento a un segreto generico, che è il segreto predefinito quando l'opzione --format non viene specificata. Utilizzare l'opzione --format per specificare la categoria del segreto, ad esempio basic_auth, generic, ssh, tls o registry.

Per utilizzare un segreto con un carico di lavoro con la CLI, specifica l'opzione --env-from-secret nei seguenti comandi.

Il seguente esempio descrive come fare riferimento a un segreto generico esistente con un lavoro utilizzando la CLI.

  1. Utilizzare il comando secret create per creare i seguenti due segreti generici per questo scenario. Per impostazione predefinita, viene creato un segreto generico quando l'opzione --format non è specificata.

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My big literal secret"
    
    ibmcloud ce secret create --name myliteralsecret2 --from-literal "TARGET=My little literal secret"
    
  2. Crea un lavoro e fai riferimento al segreto myliteralsecret. Per questo esempio, crea un lavoro Code Engine che utilizza l'immagine icr.io/codeengine/codeengine ed esegue quindi il lavoro. Quando viene inviata una richiesta a questo lavoro di esempio, il lavoro legge la variabile di ambiente TARGET e il lavoro stampa Hello ${TARGET} from Code Engine e stampa un elenco di variabili di ambiente. Se la variabile di ambiente TARGET è vuota, viene restituito Hello World from Code Engine.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --array-indices 2-3 --env-from-secret myliteralsecret
    
  3. Eseguire il lavoro myjob.

    ibmcloud ce jobrun submit --name myjobrun --job myjob
    
  4. Utilizzare il comando jobrun get per visualizzare i dettagli dell'esecuzione del lavoro, incluse le istanze dell'esecuzione del lavoro.

    ibmcloud ce jobrun get --name myjobrun
    

    Output di esempio

    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    Getting events of jobrun 'myjobrun'...
    Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances.
    Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances.
    OK
    
    Name:               myjobrun
    [...]
    Job Ref:                myjob
    Environment Variables:
        Type                   Name          Value
        Secret full reference  myliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          9s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    13s         13s
            Running   True    9s          9s
            Complete  True    9s          9s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    10s (x4 over 14s)  batch-job-controller  Updated JobRun "myjobrun"
        Normal  Completed  10s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name          Running  Status     Restarts  Age
        myjobrun-2-0  0/1      Succeeded  0         14s
        myjobrun-3-0  0/1      Succeeded  0         14s
    
  5. Visualizzare i log dell'esecuzione del lavoro myjobrun. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Questa volta, visualizzare i log di tutte le istanze dell'esecuzione del job. Il log visualizza Hello my big literal secret!, che è stato specificato utilizzando una variabile di ambiente con un segreto. Si noti che per questo lavoro definito con l'immagine icr.io/codeengine/codeengine, l'output dell'esecuzione del lavoro stampa le variabili di ambiente, inclusi i valori dei segreti a cui si fa riferimento con le variabili di ambiente.

    ibmcloud ce jobrun logs --jobrun myjobrun
    

    Output di esempio

    Getting logs for all instances of job run 'myjobrun'...
    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    OK
    
    myjobrun-2-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 2
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-2-0
    JOB_INDEX=2
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
    myjobrun-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
  6. Inoltrare nuovamente l'esecuzione del lavoro e specificare di utilizzare il segreto myliteralsecret2 per questa esecuzione del lavoro.

    ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit  --env-from-secret myliteralsecret2
    

    Quando aggiorni un lavoro, un'applicazione o una funzione con una variabile di ambiente che fa riferimento completamente a un segreto per fare riferimento completamente a un segreto differente, i riferimenti completi sovrascrivono altri riferimenti completi nell'ordine in cui sono impostati (l'ultimo insieme di riferimento sovrascrive il primo insieme).

  7. Utilizzare il comando jobrun get per visualizzare i dettagli dell'esecuzione del lavoro, incluse le istanze dell'esecuzione del lavoro. Notare che l'esecuzione del job fa riferimento sia ai segreti myliteralsecret che myliteralsecret2.

    ibmcloud ce jobrun get --name myjobrunresubmit
    

    Output di esempio

    Getting jobrun 'myjobrunresubmit'...
    Getting instances of jobrun 'myjobrunresubmit'...
    Getting events of jobrun 'myjobrunresubmit'...
    [...]
    
    Name:          myjobrunresubmit
    ID:            79f01367-932b-4a76-be18-b1e68790a85b
    Project Name:  myproject
    Project ID:    841f0f38-420d-4388-b5d8-f230657d7dc6
    Age:           14s
    Created:       2021-06-15T21:15:37-04:00
    
    Job Ref:                myjob
        Environment Variables:
        Type                   Name              Value
        Secret full reference  myliteralsecret
        Secret full reference  myliteralsecret2
    Image:                  icr.io/codeengine/codeengine
        Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          11s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    14s         14s
            Running   True    12s         12s
            Complete  True    11s         11s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    13s (x4 over 16s)  batch-job-controller  Updated JobRun "myjobrunresubmit"
        Normal  Completed  13s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name                  Running  Status     Restarts  Age
        myjobrunresubmit-2-0  0/1      Succeeded  0         16s
        myjobrunresubmit-3-0  0/1      Succeeded  0         16s
    
  8. Visualizzare i log di esecuzione del lavoro di un'istanza dell'esecuzione del lavoro myjobrunresubmit. Questa volta, visualizza i log dell'istanza myjobrunresubmit-3-0. Il log visualizza Hello My little literal secret!, che è il valore specificato nel segreto di myliteralsecret2. Utilizzare il comando jobrun get per visualizzare i dettagli dell'esecuzione del lavoro, incluse le istanze in esecuzione dell'esecuzione del lavoro.

    ibmcloud ce jobrun logs --instance myjobrunresubmit-3-0
    

    Output di esempio

    Getting logs for job run instance 'myjobrunresubmit-3-0'...
    OK
    
    myjobrunresubmit-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My little literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My little literal secret
    
  9. Per modificare il valore della coppia chiave - valore in un segreto, utilizzare il comando secret update. Aggiorniamo il segreto myliteralsecret per modificare il valore della chiave TARGET da My big literal secret a My new big literal secret.

    ibmcloud ce secret update --name myliteralsecret --from-literal "TARGET=My new big literal secret"
    
  10. Per rendere effettivi i nuovi dati, eseguire di nuovo il lavoro. Inoltrare di nuovo l'esecuzione del lavoro e specificare di utilizzare il segreto myliteralsecret per questa esecuzione del lavoro.

ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit2 --env-from-secret myliteralsecret
  1. Visualizzare i log dell'esecuzione del lavoro myjobrunresubmit2. Questa volta, il log del lavoro visualizza Hello My new big literal secret!, che è il valore nel segreto myliteralsecret aggiornato. È possibile utilizzare il comando jobrun get per visualizzare i dettagli dell'esecuzione del job, incluse le istanze in esecuzione dell'esecuzione del job. Visualizzare i log per qualsiasi istanza in esecuzione dell'esecuzione del lavoro.
ibmcloud ce jobrun logs --instance myjobrunresubmit2-2-0

Output di esempio

Getting logs for job run instance 'myjobrunresubmit2-2-0'...
OK

myjobrunresubmit2-2-0/myjob:
Hello from helloworld! I'm a batch job! Index: 2

Hello My new big literal secret from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
HOME=/root
HOSTNAME=myjobrunresubmit2-2-0
JOB_INDEX=2
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TARGET=My new big literal secret

Per riepilogare, sono stati completati scenari di base per dimostrare come utilizzare i segreti con un lavoro facendo riferimento a un segreto completo esistente e aggiornando le chiavi all'interno di un segreto.

Riferimento a segreti che non sono ancora definiti con la CLI

Se un segreto non esiste prima che vi si faccia riferimento, un'applicazione non verrà distribuita correttamente e un lavoro o una funzione non verrà eseguito correttamente finché non viene creato il segreto di riferimento.

Se stai utilizzando un'applicazione, un lavoro o una funzione e il segreto a cui si fa riferimento non è ancora definito, utilizza l'opzione --force per evitare la verifica dell'esistenza del segreto a cui si fa riferimento. L'opzione --force può essere utilizzata con i seguenti comandi.

Quando si utilizza l'opzione --force con questi comandi, l'azione per creare, aggiornare o eseguire l'applicazione, il lavoro o la funzione viene completata. Tuttavia, l'applicazione, il lavoro o la funzione non verranno eseguiti correttamente fino a quando non esiste il segreto di riferimento. Se aggiungi l'opzione --no-wait in aggiunta all'opzione --force al comando, il sistema completa l'azione e non attende che l'applicazione, il lavoro o la funzione vengano eseguiti correttamente.

Il seguente esempio descrive come fare riferimento a un segreto che non è ancora definito con un lavoro utilizzando la CLI.

  1. Creare un lavoro. Per questo esempio, crea un lavoro Code Engine che utilizza l'immagine icr.io/codeengine/codeengine ed esegue quindi il lavoro. Quando viene inviata una richiesta a questo lavoro di esempio, il lavoro legge la variabile di ambiente TARGET e il lavoro stampa Hello ${TARGET} from Code Engine e stampa un elenco di variabili di ambiente. Se la variabile di ambiente TARGET è vuota, viene restituito Hello World from Code Engine.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
    
  2. Utilizzare il comando jobrun submit per eseguire il lavoro myjob. Notare che il mynewliteralsecret non esiste. Utilizzando l'opzione --no-wait con il comando jobrun submit, l'esecuzione del lavoro viene inoltrata e non attende il completamento delle istanze di questo lavoro.

    ibmcloud ce jobrun submit --name myjobrun1 --job myjob --env-from-secret mynewliteralsecret --force --no-wait
    
  3. Utilizzare il comando jobrun get per visualizzare i dettagli dell'esecuzione del lavoro, incluse le informazioni della variabile di ambiente. Notare che l'esecuzione del lavoro è nello stato pending.

    ibmcloud ce jobrun get --name myjobrun1
    

    Output di esempio

    Getting jobrun 'myjobrun1'...
    Getting instances of jobrun 'myjobrun1'...
    Getting events of jobrun 'myjobrun1'...
    [...]
    
    Name:          myjobrun1
    [...]
    
    Job Ref:                myjob
    Environment Variables:
        Type                   Name                Value
        Secret full reference  mynewliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  400M
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        JOP_ARRAY_SIZE Value:  1
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Instance Statuses:
            Pending:  1
        Conditions:
            Type     Status  Last Probe  Last Transition
            Pending  True    100s        100s
    
    Events:
        Type    Reason   Age                   Source                Messages
        Normal  Updated  108s (x5 over 2m29s)  batch-job-controller  Updated JobRun "myjobrun1"
    
    Instances:
        Name           Running  Status   Restarts  Age
        myjobrun1-0-0  0/1      Pending  0         2m29s
    
  4. Crea il segreto.

    ibmcloud ce secret create --name mynewliteralsecret --from-literal "TARGET=Fun secret"
    
  5. Eseguire nuovamente il lavoro myjobrun1.

    ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name myjobrunresubmit1
    

    Eseguire il comando ibmcloud ce jobrun get -n myjobrunresubmit1 per controllare lo stato di questa esecuzione del lavoro.

  6. Visualizzare i log dell'esecuzione del lavoro myjobrunresubmit1. I log visualizzano Hello Fun secret from Code Engine, che conferma che l'esecuzione del lavoro fa riferimento al segreto myliteralsecret.

    ibmcloud ce jobrun logs --jobrun myjobrunresubmit1
    

    Output di esempio

    Getting logs for all instances of job run 'myjobrunresubmit1'...
    Getting jobrun 'myjobrunresubmit1'...
    Getting instances of jobrun 'myjobrunresubmit1'...
    OK
    
    myjobrunresubmit1-0-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 0
    
    Hello Fun secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit1-0-0
    JOB_INDEX=0
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=Fun secret
    

Per scenari più dettagliati su come fare riferimento ai segreti completi e alle mappe di configurazione come variabili di ambiente, sovrascrivendo i riferimenti e rimuovendo i riferimenti nella CLI, vedi Riferimento ai segreti e alle mappe di configurazione.

Eliminazione dei segreti

Quando non si ha più bisogno di un segreto, è possibile eliminarlo.

Eliminazione dei segreti dalla console

  1. Per eliminare un segreto dalla console,
    1. Vai alla pagina Secrets and configmaps dalla tua Code Engine pagina Progetti.
    2. Fare clic sul segreto che si desidera eliminare per aprire la relativa pagina.
    3. Dalla pagina per il segreto specifico, fai clic su Azioni> Elimina segreto.
  2. Per eliminare una coppia chiave - valore per un segreto specifico dalla console,
    1. Vai alla pagina Secrets and configmaps dalla tua Code Engine pagina Progetti.
    2. Fare clic sul segreto che si desidera modificare per aprire la relativa pagina.
    3. Dalla pagina per il segreto specifico, eliminare la coppia chiave - valore che si desidera eliminare.

È anche possibile eliminare variabili di ambiente definite che fanno riferimento a segreti e mappe di configurazione. Per eliminare una variabile di ambiente definita, dalla scheda Variabili di ambiente della tua applicazione, lavoro o funzione ed eliminare la variabile di ambiente che vuoi eliminare. Dopo aver eliminato una variabile di ambiente definita, assicurati di fare clic su Salva per salvare le modifiche alla tua applicazione, lavoro o funzione. Per ulteriori informazioni, consultare Eliminazione di una variabile di ambiente.

Eliminazione dei segreti con la CLI

Per eliminare un segreto con la CLI, utilizza il comando secret delete ; ad esempio,

ibmcloud ce secret delete --name myliteralsecret -f

Output di esempio

Deleting secret myliteralsecret...
OK

Puoi inoltre eliminare le variabili di ambiente che fanno riferimento a segreti e mappe di configurazione dalla CLI.