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.
-
Creare un segreto denominato
mysecrete 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 -
Crea l'applicazione
myappche utilizza l'immagineicr.io/codeengine/ce-secret-vol. Utilizza l'opzione--mount-secretper montare o aggiungere il contenuto del segretomysecretall'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 1Output 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 -
Copiare l'URL dall'output precedente e richiamare l'applicazione con
curl; ad esempio,curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Visualizza i log dalla tua applicazione. In questo esempio, l'applicazione
myapputilizza l'immagine di esempio,icr.io/codeengine/ce-secret-vol. Questa app legge ogni file nella directory di/mysecretse 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 myappOutput 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 -
Aggiornare il segreto
mysecretper modificare il valore per le coppie chiave - valoreapikey; ad esempio,ibmcloud ce secret update -n mysecret --from-literal apikey=qrst -
Richiamare di nuovo l'applicazione.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Visualizza i log dalla tua applicazione.
ibmcloud ce app logs --app myappOutput 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.