Cómo hacer referencia a secretos y mapas de configuración como archivos montados (CLI)
En Code Engine, después de crear secretos y mapas de configuración, la información que se almacena como pares de clave-valor puede ser consumida por la app o la carga de trabajo como un archivo montado. No puede utilizar este método con funciones.
Trabajar con secretos y mapas de configuración como archivos montados es similar a trabajar con secretos y mapas de configuración como variables de entorno.
Cuando se trabaja con secretos, los datos se guardan como una serie codificada. Los datos no están codificados cuando se añade al entorno como una variable de entorno o como un archivo montado.
Cómo hacer referencia a un secreto como un archivo montado con la CLI
En este caso de ejemplo, cree un secreto y, a continuación, haga referencia al secreto como un archivo montado cuando ejecute una aplicación, lo que utiliza la imagen icr.io/codeengine/ce-secret-vol.
La imagen de ejemplo, icr.io/codeengine/ce-secret-vol, lee cada archivo del directorio /mysecrets e imprime el nombre del archivo y su contenido en la salida estándar de cada solicitud de modo que la salida está contenida
en los registros de la aplicación. Para obtener más información sobre esta aplicación de ejemplo, consulte el ejemplo de secretos como volúmenes(secrets-vol)en el repositorio IBM Cloud Code Engine GitHub.
Aunque en este caso de ejemplo se utiliza un secreto, puede seguir los mismos pasos para hacer referencia a un mapa de configuración sustituyendo configmap por secret en los mandatos.
-
Cree un secreto llamado
mysecrety especifique los pares de clave-valor para el secreto mediante la opción--from-literal; por ejemplo,ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh -
Cree la aplicación
myappque utiliza la imagenicr.io/codeengine/ce-secret-vol. Utilice la opción--mount-secretpara montar o añadir el contenido del secretomysecreta la app en el directorio/mysecrets. Al especificar la opción--min-scale=1, la app siempre tiene una instancia que se está ejecutando y no se escala a cero. La configuración de la app para que siempre haya una instancia de ejecución es útil cuando se ven los registros. Por ejemplo:ibmcloud ce app create --name myapp --image icr.io/codeengine/ce-secret-vol --mount-secret /mysecrets=mysecret --min-scale 1Salida de ejemplo
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 -
Copie el URL de la salida anterior y llame a la aplicación con
curl; por ejemplo,curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Visualice los registros desde la aplicación. En este ejemplo, la aplicación
myapputiliza la imagen de ejemplo,icr.io/codeengine/ce-secret-vol. Esta app lee cada archivo en el directorio/mysecretse imprime el nombre del archivo y su contenido en la salida estándar para cada solicitud de modo que la salida esté contenida en los registros de la app. El nombre del archivo esapikey.ibmcloud ce app logs --app myappSalida de ejemplo
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh -
Actualice el secreto
mysecretpara cambiar el valor de los pares de clave-valor deapikey; por ejemplo,ibmcloud ce secret update -n mysecret --from-literal apikey=qrst -
Vuelva a llamar a la aplicación.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Visualice los registros desde la aplicación.
ibmcloud ce app logs --app myappSalida de ejemplo
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
Ha añadido datos que están almacenados en secretos (o mapas de configuración) a la app como un archivo montado y, a continuación, ha actualizado los datos almacenados en el secreto. No es necesario reiniciar la app para que utilice el secreto de referencia actualizado.