Riferimento a segreti e mappe di configurazione con variabili di ambiente (CLI)

In Code Engine, dopo aver creato i segreti e le mappe di configurazione, le informazioni archiviate come coppie chiave - valore possono essere utilizzate dalla tua applicazione, lavoro o carico di lavoro come una variabile di ambiente facendo riferimento al segreto completo o alla mappa di configurazione o facendo riferimento a singole chiavi.

La gestione dei segreti come variabili di ambiente è simile alla gestione delle mappe di configurazione come variabili di ambiente. Quando si utilizzano i segreti, i dati vengono codificati.

Considera le seguenti informazioni quando aggiorni un'applicazione, un lavoro o una funzione che ha una variabile di ambiente che fa riferimento a mappe di configurazione o segreti.

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

Quando si aggiorna un'applicazione, un lavoro o una funzione che ha una variabile d'ambiente che fa riferimento a una chiave in una configmap (o un segreto) per fare riferimento alla stessa chiave in una configmap (o un segreto) diversa, viene usata l'ultima chiave a cui si fa riferimento.

Quando aggiorni un'applicazione, un lavoro o una funzione che ha una variabile di ambiente che fa riferimento completamente a una configmap (o segreto) per aggiungere un riferimento a una chiave specifica, il riferimento della chiave specifica sovrascrive il riferimento completo della configmap (o segreto).

Per informazioni di base sul riferimento alle configmap o ai segreti con la CLI, vedi Riferimento alle configmap con la CLI e Riferimento ai segreti con la CLI.

I seguenti scenari possono essere completati per i segreti o le mappe di configurazione.

Riferimento a un segreto completo con la CLI

I segreti e le mappe di configurazione sono costituiti da coppie chiave - valore. Le variabili di ambiente sono il risultato della fornitura di una voce per chiave quando si fa riferimento al segreto completo o alla configmap. Se più segreti (o mappe di configurazione) contengono la stessa chiave denominata, si ottiene solo una delle chiavi nel segreto di riferimento o nella mappa di configurazione.

In questo scenario, creare un segreto, che contiene coppie chiave - valore per un nome utente e una parola d'ordine, quindi fare riferimento al segreto completo quando si esegue un lavoro. Puoi aggiornare il segreto per aggiungere una chiave e quindi dimostrare l'utilizzo della nuova chiave in un lavoro. Mentre questo scenario utilizza un segreto, è possibile utilizzare gli stessi passi per fare riferimento completamente a una configmap sostituendo configmap per secret nei comandi.

  1. Creare il segreto mydatabasesec e specificare le coppie chiave - valore per nome utente e password utilizzando l'opzione --from-literal.

    ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd
    
  2. Visualizza i dettagli sul segreto mydatabasesec utilizzando il comando secret get. I valori per le chiavi password e username del segreto sono codificati.

    ibmcloud ce secret get -n mydatabasesec
    

    Output di esempio

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2020-10-14 14:07:59 -0400 EDT
    
    Data:
    ---
    password: YWJjZA==
    username: cmVhZGVy
    
  3. Imposta una variabile di ambiente su un lavoro per fare riferimento al segreto mydatabasesec completo. In questo esempio, utilizzare l'opzione --env-from-secret PREFIX=NAME dove PREFIX=NAME specifica di fare riferimento alla mappa di configurazione completa in cui ogni chiave ha come prefisso PREFIX. Utilizzando il prefisso read_, ogni chiave ha come prefisso read_. Poiché l'immagine busybox non stampa alcun output per impostazione predefinita, l'opzione -c env specifica di stampare tutte le variabili di ambiente nel contenitore.

    ibmcloud ce job create -n demo -i busybox -c env --env-from-secret read_=mydatabasesec
    

    Prendi in considerazione l'utilizzo di un prefisso per assicurarti che tutte le tue variabili di ambiente nel tuo lavoro o nella tua applicazione siano univoche. Ad esempio, se si dispone di un segreto con chiavi, a, b e c, queste variabili di ambiente vengono visualizzate come a, b e c. Tuttavia, se si aggiunge un prefisso come read_, i tasti vengono visualizzati con il prefisso, come read_a, read_b e read_c. L'utilizzo di un prefisso raggruppa anche le tue variabili di ambiente nell'applicazione di riferimento, nel lavoro o nell'esecuzione del lavoro e ti aiuta a evitare duplicati di chiavi nelle mappe di configurazione o nei segreti.

  4. (Facoltativo) Visualizza i dettagli del lavoro demo. L'output mostra il riferimento completo al segreto mydatabasesec.

    ibmcloud ce job get -n demo
    

    Output di esempio

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6s
    Created:      2022-05-04T15:04:16-04:00
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                   Value
        Secret full reference  read_=mydatabasesec
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  5. Eseguire un lavoro che utilizza una configurazione del lavoro demo.

    ibmcloud ce jobrun submit --name demo1 --job demo
    
  6. Visualizzare i log dell'esecuzione del lavoro. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. In questo esempio, visualizzare i log dell'esecuzione del lavoro demo1. Nota nell'output del log che le chiavi del segreto completo mydatabasesec vengono visualizzate con il prefisso read_. I valori segreti vengono aggiunti all'ambiente decodificato.

    ibmcloud ce jobrun logs --jobrun demo1
    

    Output di esempio

    Getting logs for all instances of job run 'demo1'...
    Getting jobrun 'demo1'...
    Getting instances of jobrun 'demo1'...
    [...]
    
    HOSTNAME=demo1-0-0
    read_username=reader
    read_password=abcd
    JOB_INDEX=0
    CE_SUBDOMAIN=8aaon2dfwa0
    CE_JOBRUN=demo1
    [...]
    
  7. Aggiorna il segreto mydatabasesec per aggiungere una chiave utilizzando l'opzione --from-file. Questa opzione utilizza il formato --from-file FILE o --from-file KEY=FILE. Nel seguente comando, certificate è la chiave e cert.pem è il nome del file.

    ibmcloud ce secret update -n mydatabasesec --from-file certificate=cert.pem
    
  8. Visualizza i dettagli sul segreto mydatabasesec aggiornato utilizzando il comando secret get. Il segreto ora contiene tre chiavi, certificate, password e username. I valori segreti sono codificati.

    ibmcloud ce secret get -n mydatabasesec
    

    Output di esempio

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m13s
    Created:       2020-10-14 13:35:43 -0400 EDT
    
    Data:
    ---
    certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tLS0tDQphc2RmO2Frc2pkZmxrYWpzZGZsa2phc2xka2ZqYWxza2RqZmxha3NqZGZsaw0KLS0tLS1FTkQgQ0VSVEZJQ0lBVEUtLS0tLS0tLS0t
    password: YWJjZA==
    username: cmVhZGVy
    
  9. Eseguire un lavoro che utilizza il lavoro demo. In precedenza, era stato fatto riferimento al segreto completo mydatabasesec dal lavoro demo. Per un lavoro per utilizzare il segreto aggiornato con la coppia chiave - valore certificate aggiunta, inoltrare una nuova esecuzione lavoro. Per aggiornare un'applicazione per utilizzare il segreto aggiornato, riavviare l'applicazione.

    ibmcloud ce jobrun submit --name demo2 --job demo
    
  10. Visualizzare i log del lavoro eseguito utilizzando il comando ibmcloud ce jobrun logs. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Per visualizzare i log di una specifica istanza del lavoro eseguito, utilizzare l'opzione --instance con il comando jobrun logs. Se necessario, utilizzare il comando jobrun get --name demo2 per visualizzare i dettagli dell'esecuzione di questo lavoro, incluse le istanze dell'esecuzione del lavoro. In questo esempio, visualizzare i log dell'istanza in esecuzione di demo2-0-0 dove demo2 è il nome dell'esecuzione del lavoro, 0 è arrayindex e 0 è retryindex. Nota nell'output che vengono visualizzate i tasti certificate, username e password del segreto completo mydatabasesec. I valori segreti vengono aggiunti all'ambiente decodificato.

ibmcloud ce jobrun logs --instance demo2-0-0

Output di esempio

Getting logs for job run instance 'demo2-0-0'...
[...]

read_certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
read_password=abcd
read_username=reader

Riferimento a singole chiavi di una configmap con CLI

In questo scenario, creiamo una configmap che contiene più coppie chiave - valore e quindi fa riferimento a chiavi specifiche in un lavoro. Mentre questo scenario utilizza una configmap, è possibile utilizzare gli stessi passi generali per fare riferimento a singole chiavi con un segreto sostituendo secret per configmap nei comandi.

  1. Creare la configmap mydatabase e specificare le coppie chiave-valore per un nome e un URL usando l'opzione --from-literal KEY=VALUE.

    ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl
    
  2. Visualizzare i dettagli sulla configmap mydatabasecm utilizzando il comando configmap get.

    ibmcloud ce configmap get -n mydatabasecm
    

    Output di esempio

    Getting configmap 'mydatabasecm'...
    OK
    
    Name:          mydatabasecm
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           16s
    Created:       2020-10-14 13:31:19 -0400 EDT
    
    Data:
    ---
    name: myname
    url: myurl
    
  3. Imposta una variabile di ambiente su un lavoro per fare riferimento alla chiave di url nella configmap mydatabasecm. Utilizzare l'opzione --env-from-configmap NAME:KEY_A,KEY_B dove NAME:KEY_A specifica di fare riferimento al KEY_A della configmap.

    ibmcloud ce job create --name keydemo --image busybox --command env --env-from-configmap mydatabasecm:url
    
  4. Eseguire un lavoro che utilizza il lavoro keydemo.

    ibmcloud ce jobrun submit --name keydemo1 --job keydemo
    
  5. Visualizzare i log del lavoro eseguito utilizzando il comando ibmcloud ce jobrun logs. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Per visualizzare i log di una specifica istanza del lavoro eseguito, utilizzare l'opzione --instance con il comando jobrun logs. Se necessario, utilizzare il comando jobrun get --name keydemo1 per visualizzare i dettagli dell'esecuzione di questo lavoro, incluse le istanze dell'esecuzione del lavoro. Nell'output, si noti che url è l'unica chiave di riferimento e che il lavoro non fa riferimento alla chiave name.

    ibmcloud ce jobrun logs --instance keydemo1-0-0
    

    Output di esempio

    Getting logs for job run instance 'keydemo1-0-0'...
    [...]
    
    url=myurl
    [...]
    

Sovrascrittura dei riferimenti con la CLI

È possibile sovrascrivere i segreti di riferimento e le mappe di configurazione. I seguenti scenari possono essere completati per i segreti o le mappe di configurazione.

Scenario A. Sovrascrivi un segreto con riferimento completo con un altro segreto con riferimento completo

In questo scenario, creiamo un nuovo segreto mydatabasesec-writer con le chiavi username e password e quindi sovrascrivi le chiavi username e password nel segreto mydatabasesec precedentemente creato. Il segreto mydatabasesec contiene le chiavi username=reader e password=abcd.

I riferimenti completi sovrascrivono altri riferimenti completi nell'ordine in cui sono impostati (l'ultima serie di riferimento sovrascrive la prima serie).

  1. Imposta una variabile di ambiente nel lavoro writerjob per fare riferimento al segreto mydatabasesec completo, che è stato creato precedentemente. Il segreto mydatabasesec contiene le chiavi username=reader e password=abcd.

    ibmcloud ce job create -n writerjob -i busybox -c env --env-from-secret mydatabasesec
    
  2. (Facoltativo) Visualizza i dettagli del lavoro writerjob. L'output mostra il riferimento completo al segreto mydatabasesec.

    ibmcloud ce job get -n writerjob
    

    Output di esempio

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Eseguire un lavoro che utilizza il lavoro writerjob.

    ibmcloud ce jobrun submit --name writerjob1 --job writerjob
    
  4. Visualizzare i log dell'esecuzione del lavoro. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. In questo esempio, visualizzare i log dell'esecuzione del lavoro writerjob1. Nota nell'output che vengono visualizzate le chiavi username e password del segreto completo mydatabasesec. I valori segreti vengono aggiunti all'ambiente decodificato.

    ibmcloud ce jobrun logs --jobrun writerjob1
    

    Output di esempio

    Getting jobrun 'writerjob1'...
    Getting instances of jobrun 'writerjob1'...
    Getting logs for all instances of job run 'writerjob1'...
    OK
    [...]
    
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=abcd
    username=reader
    [...]
    
  5. Creare il segreto mydatabasesec-writer e specificare le coppie chiave - valore per nome utente e password utilizzando l'opzione --from-literal.

    ibmcloud ce secret create --name mydatabasesec-writer --from-literal username=writer --from-literal password=wxyz
    
  6. Visualizza i dettagli sul segreto mydatabasesec-writer utilizzando il comando secret get. I valori per le chiavi password e username del segreto sono codificati.

    ibmcloud ce secret get -n mydatabasesec-writer
    

    Output di esempio

    Getting generic secret 'mydatabasesec-writer'...
    OK
    
    Name:          mydatabasesec-writer
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           14s
    Created:       2020-10-14 13:44:16 -0400 EDT
    
    Data:
    ---
    password: d3h5eg==
    username: d3JpdGVy
    
  7. Aggiornare il lavoro di writerjob per fare riferimento al segreto mydatabasesec-writer completo e utilizzare il prefisso write_.

    ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer
    
  8. (Facoltativo) Visualizza i dettagli del lavoro writerjob aggiornato. Il lavoro fa riferimento completamente ai segreti mydatabasesec e mydatabase-writer.

    ibmcloud ce job get -n writerjob
    

    Output di esempio

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m2s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                          Value  
        Secret full reference  mydatabasesec           
        Secret full reference  write_=mydatabasesec-writer   
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  9. Eseguire un lavoro che utilizza il lavoro writerjob. Poiché il lavoro writerjob è stato aggiornato per fare riferimento sia al segreto mydatabasesec che al segreto mydatabasesec-writer ed entrambi questi segreti includono le chiavi per username e password, l'ultimo segreto completo di riferimento mydatabasesec-writer sovrascrive il segreto mydatabasesec.

    Per eseguire un lavoro per utilizzare la configurazione aggiornata di un lavoro con gli aggiornamenti ai relativi segreti di riferimento, eseguire un nuovo lavoro. Per aggiornare un'applicazione per utilizzare il segreto aggiornato, riavviare l'applicazione.

    ibmcloud ce jobrun submit --name writerjob2 --job writerjob
    
  10. Visualizzare i log del lavoro eseguito utilizzando il comando ibmcloud ce jobrun logs. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Per visualizzare i log di tutte le istanze di un lavoro, utilizzare l'opzione --jobrun con il comando jobrun logs. Per visualizzare i log di una specifica istanza del lavoro eseguito, utilizzare l'opzione --instance con il comando jobrun logs. Se necessario, utilizzare il comando jobrun get --name writerjob2 per visualizzare i dettagli dell'esecuzione di questo lavoro, incluse le istanze dell'esecuzione del lavoro. Nota nell'output che le chiavi username e password del segreto mydatabasesec-writer sovrahanno le chiavi del segreto mydatabasesec. Inoltre, nell'output del log, le chiavi del segreto completo mydatabasesec-writer vengono visualizzate con il prefisso write_.I valori segreti vengono aggiunti all'ambiente decodificato.

ibmcloud ce jobrun logs --instance writerjob2-0-0

Output di esempio

Getting logs for job run instance 'writerjob2-0-0'...
[...]

certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
password=abcd
username=reader
write_password=wxyz
write_username=writer
[...]

Scenario B. Sovrascrivi un segreto con riferimento completo con un riferimento chiave

I riferimenti a una chiave in un segreto o in una configmap sovrascrivono sempre un riferimento completo a un segreto o a una configmap quando la chiave utilizzata si trova in un segreto o in una configmap a cui si fa riferimento, indipendentemente dall'ordine.

In questo scenario, utilizziamo i segreti mydatabasesec e mydatabasesec-writer precedentemente creati e le chiavi di riferimento all'interno dei segreti da un lavoro.

  1. Impostare una variabile di ambiente su un lavoro writerpic per fare riferimento a chiavi specifiche nei segreti mydatabasesec e mydatabasesec-writer. Il segreto mydatabasesec contiene le chiavi username=reader, password=abcd e certificate=cert.pem. Il segreto mydatabasesec-writer contiene le chiavi username=writer e password=wxyz.

    ibmcloud ce job create -n writerpick -i busybox -c env --env-from-secret mydatabasesec-writer:username --env-from-secret mydatabasesec-writer:password --env-from-secret mydatabasesec
    
  2. (Facoltativo) Visualizza i dettagli del lavoro writerpick. L'output visualizza il riferimento completo al segreto mydatabasesec e il riferimento chiave alle chiavi password e username del segreto mydatabasesec-writer.

    ibmcloud ce job get -n writerpick
    

    Output di esempio

    Getting job 'writerpick'...
    OK
    
    Name:          writerpick
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           107s
    Created:       2021-02-12T07:16:46-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
        Secret key reference   password       mydatabasesec-writer.password  
        Secret key reference   username       mydatabasesec-writer.username  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Eseguire un lavoro che utilizza il lavoro writerpick.

    ibmcloud ce jobrun submit --name writerpick1 --job writerpick
    
  4. Visualizzare i log del lavoro writerpick1 eseguito utilizzando il comando ibmcloud ce jobrun logs. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Per visualizzare i log di una specifica istanza del lavoro eseguito, utilizzare l'opzione --instance con il comando jobrun logs. Se necessario, utilizzare il comando jobrun get --name writerpick1 per visualizzare i dettagli dell'esecuzione di questo lavoro, incluse le istanze dell'esecuzione del lavoro. Poiché il lavoro di writerpick è stato aggiornato per fare riferimento a chiavi specifiche nel segreto mydatabasesec-writer e per fare riferimento al segreto mydatabasesec completo, il riferimento alle chiavi username e password nel segreto mydatabasesec-writer sovrascrive il riferimento al segreto completo. I valori segreti vengono aggiunti all'ambiente decodificato.

    ibmcloud ce jobrun logs --instance writerpick1-0-0
    

    Output di esempio

    Getting logs for job run instance 'writerpick1-0-0'...
    [...]
    
    username=writer
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=wxyz
    [...]
    

Scenario C. Sovrascrivi riferimenti chiave con nuove chiavi

È possibile aggiornare il riferimento a una chiave specifica in un segreto o in una configmap e sovrascrivere il valore con un nuovo valore.

In questo scenario, utilizziamo la mappa di configurazione mydatabasecm precedentemente creata, che contiene la chiave url:myurl per aggiornare il valore della chiave.

  1. Impostare una variabile di ambiente su un job keyref per fare riferimento a una chiave specifica nella configmap mydatabasecm.

    ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url
    
  2. (Facoltativo) Visualizza i dettagli del lavoro keyref. L'output visualizza il riferimento chiave alla chiave url nella configmap mydatabasecm.

    ibmcloud ce job get -n keyref
    

    Output di esempio

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           65s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                     Name  Value  
        ConfigMap key reference  url   mydatabasecm.url  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Eseguire un lavoro che utilizza il lavoro keyref.

    ibmcloud ce jobrun submit --name keyref1 --job keyref
    
  4. Visualizzare i log di un'istanza in esecuzione del lavoro keyref1 eseguito utilizzando il comando ibmcloud ce jobrun logs. È possibile visualizzare i log di tutte le istanze di un'esecuzione lavoro o visualizzare i log di una specifica istanza di un'esecuzione lavoro. Per visualizzare i log di una specifica istanza del lavoro eseguito, utilizzare l'opzione --instance con il comando jobrun logs. Se necessario, utilizzare il comando jobrun get --name keyref1 per visualizzare i dettagli dell'esecuzione di questo lavoro, incluse le istanze dell'esecuzione del lavoro. L'esecuzione del lavoro ha utilizzato il riferimento chiave url=myurl.

    ibmcloud ce jobrun logs --instance keyref1-0-0
    

    Output di esempio

    Getting logs for job run instance 'keyref1-0-0'...
    [...]
    
    url=myurl
    [...]
    
  5. Aggiornare il lavoro keyref per sovrascrivere url=myurl con una nuova chiave. Utilizzare l'opzione --env per aggiornare la chiave url. L'opzione di --env nel comando job update imposta le variabili di ambiente per il job in formato NAME=VALUE.

    ibmcloud ce job update --name keyref --env url=newurl  
    
  6. (Facoltativo) Visualizza i dettagli del lavoro keyref. L'output visualizza il riferimento chiave alla chiave url nella configmap mydatabasecm.

    ibmcloud ce job get -n keyref
    

    Output di esempio

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           3m6s
    Created:       2021-02-12T07:18:44-06:00  
    
    Commands:                 
        env  
    Environment Variables:    
        Type     Name  Value  
        Literal  url   newurl  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

Rimozione dei segreti o delle mappe di configurazione con riferimento completo con la CLI

È possibile rimuovere un segreto o una configmap a cui si fa riferimento da un lavoro o da un'applicazione.

In questo scenario, rimuoverai il segreto mydatabasesec di riferimento completo dal lavoro demo.

  1. Aggiornare il lavoro demo per rimuovere il riferimento al segreto mydatabasesec.

    ibmcloud ce job update -n demo --env-from-secret-rm mydatabasesec
    
  2. Visualizzare i dettagli del lavoro demo. L'output illustra che il riferimento al segreto mydatabasesec viene rimosso.

    ibmcloud ce job get -n demo
    

    Output di esempio

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           19m
    Created:       2021-02-12T07:05:23-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox    
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

Rimozione dei riferimenti della chiave con la CLI

È possibile rimuovere una chiave di riferimento in un segreto o in una configmap da un lavoro o da un'applicazione.

In questo scenario, rimuovere la chiave url dal processo keyref.

Anche se l'opzione --env-from-configmap è stata utilizzata su un lavoro per fare riferimento alla chiave url nella configmap mydatabasecm, è possibile utilizzare l'opzione --env-rm per rimuovere singole chiavi. Puoi utilizzare l'opzione --env-rm con i comandi job update o app update per rimuovere i riferimenti chiave indipendentemente dal fatto che le chiavi siano singoli riferimenti chiave in un segreto o in una mappa di configurazione o se le chiavi siano state impostate direttamente su un lavoro o un'applicazione con l'opzione --env.

  1. Aggiornare il lavoro keydef per rimuovere il riferimento alla chiave url.

    ibmcloud ce job update --name keyref --env-rm url
    
  2. Visualizzare i dettagli del lavoro keyref. L'output illustra che il riferimento alla chiave url viene rimosso.

    ibmcloud ce job get -n keyref
    

    Output di esempio

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6m27s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox  
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3