Riferimento a segreti e mappe di configurazione come file montati (CLI)

In Code Engine, dopo aver creato i segreti e le mappe di configurazione, le informazioni memorizzate come coppie chiave - valore possono essere utilizzate dalla tua applicazione o dal tuo carico di lavoro come un file montato. Non è possibile utilizzare questo metodo con funzioni.

L'utilizzo di segreti e configmap come file montati è simile all'utilizzo di segreti e configmap come variabili di ambiente.

Quando si utilizzano i segreti, i dati vengono salvati come una stringa codificata. I dati non vengono codificati quando vengono aggiunti all'ambiente come una variabile di ambiente o come un file montato.

Riferimento a un segreto come file montato con la CLI

In questo scenario, creare un segreto e quindi fare riferimento al segreto come file montato quando si esegue un'applicazione, che utilizza l'immagine icr.io/codeengine/ce-secret-vol.

L'immagine di esempio, icr.io/codeengine/ce-secret-vol, legge ogni file nella directory /mysecrets e stampa il nome del file e il relativo contenuto nell'output standard per ogni richiesta in modo che l'output sia contenuto nei log dell'app. Per ulteriori informazioni su questa applicazione di esempio, vedi l'esempio dei segreti come volumi(secrets-vol)nel GitHub GitHub IBM Cloud Code Engine.

Mentre questo scenario utilizza un segreto, è possibile utilizzare gli stessi passaggi per fare riferimento a una configmap come un file montato sostituendo configmap per secret nei comandi.

  1. Creare un segreto denominato mysecret e specificare le coppie chiave - valore per il segreto utilizzando l'opzione --from-literal ; ad esempio,

    ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh
    
  2. Crea l'applicazione myapp che utilizza l'immagine icr.io/codeengine/ce-secret-vol. Utilizza l'opzione --mount-secret per montare o aggiungere il contenuto del segreto mysecret all'app nella directory /mysecrets. Specificando l'opzione --min-scale=1, l'applicazione ha sempre un'istanza in esecuzione e non viene scalata a zero. La configurazione dell'applicazione per avere sempre un'istanza in esecuzione è utile quando visualizzi i log. Ad esempio,

    ibmcloud ce app create --name myapp --image icr.io/codeengine/ce-secret-vol --mount-secret /mysecrets=mysecret --min-scale 1
    

    Output di esempio

    Creating application 'myapp'...
    [...]
    Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce application get -n myapp' to check the application status.
    OK
    
    https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  3. Copiare l'URL dall'output precedente e richiamare l'applicazione con curl; ad esempio,

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  4. Visualizza i log dalla tua applicazione. In questo esempio, l'applicazione myapp utilizza l'immagine di esempio, icr.io/codeengine/ce-secret-vol. Questa app legge ogni file nella directory di /mysecrets e stampa il nome del file e il relativo contenuto nell'output standard per ogni richiesta in modo che l'output sia contenuto nei log dell'app. Il nome del file è apikey.

    ibmcloud ce app logs --app myapp
    

    Output di esempio

    Getting logs for all instances of application 'myapp'...
    OK
    
    myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container:
    Listening on port 8080
    apikey: abcdefgh
    
  5. Aggiornare il segreto mysecret per modificare il valore per le coppie chiave - valore apikey ; ad esempio,

    ibmcloud ce secret update -n mysecret --from-literal apikey=qrst
    
  6. Richiamare di nuovo l'applicazione.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  7. Visualizza i log dalla tua applicazione.

    ibmcloud ce app logs --app myapp
    

    Output di esempio

    Getting logs for all instances of application 'myapp'...
    OK
    
    myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container:
    Listening on port 8080
    apikey: abcdefgh
    apikey: qrst
    

Hai aggiunto i dati archiviati in segreti (o mappe di configurazione) alla tua applicazione come un file montato e hai quindi aggiornato i dati archiviati nel segreto. L'app non ha richiesto un riavvio per utilizzare il segreto di riferimento aggiornato.