Autorización básica para el command Curl en el secreto de openshift

Tengo un server web Apache que tiene una URL protegida de authentication básica

www.example.com/protected/

En mi file Docker en el Openshift cuando construyo una image, tengo commands Curl que descargan los files. Ahora ese command curl con authentication básica se vería así cuando se utiliza authentication básica

curl -u nombre de usuario: contraseña http://www.example.com/protected/

El problema es que no quiero tener un nombre de usuario: contraseña en el file Docker expuesto. En cambio, quiero ocultar las cnetworkingenciales en el secreto de Openshift / Kubernetes

Normalmente, el file yaml openshift para la definición secreta se vería así en el principio

kind: Secret apiVersion: v1 metadata: name: secret-name data: 

Pregunta: ¿Cómo puedo agregar crear un file secreto apropiado para las cnetworkingenciales de authentication básica y cómo puedo hacer reference a él desde el file Dockerfile?

Echa un vistazo a los secretos de construcción y también lee cómo funcionan con la estrategia de Docker .

Para usar este secreto con el command curl , sugeriría aprovechar la opción -K con una ruta a un secreto.

Terminé creando este secreto (formatting yaml). Los datos en el file .curl-secret deben estar codificados en base64, que se están decodificando en el command curl en Dockerfile (más abajo).

 apiVersion: v1 data: .curl-secret: <YOUR_SECRET_HERE> kind: Secret metadata: creationTimestamp: null name: curl-secret type: Opaque 

y luego en la configuration de compilation agregando reference al secreto.

  source: type: Git git: uri: 'https://GITHUB.URL' ref: master secrets: - secret: name: curl-secret 

Luego, en el Dockerfile, copio este file, úselo y luego elimínelo.

 COPY .curl-secret /tmp curl -u $(cat /tmp/.curl-secret) -s -o /output.file rm /tmp/.curl-secret