Openshift.Modificar configuración de despliegue a través de plantilla.

Si hemos hecho uso de templates o plantillas para hacer un despliegue en Openshift (+info), puede que queramos modificar cualquier parámetro o configuración también a través de la plantilla.

No existe un comando OC claro para hacer esto, por lo que es necesario que nos busquemos la vida mezclando comandos de linux con sentencias OC.

En resumen, lo que tenemos que hacer es procesar la plantilla de nuevo, y para esto primero de todo debemos obtener el deployment config en formato JSON (para después poder utilizar el JQ para tratarlo):

oc process mi-template -p APPLICATION_NAME=mi-aplicacion-desde-plantilla -p NUM_REPLICAS=3 -p NAMESPACE=mi-namespace  -n mi-namespace -o json > mi-deployment-config.json

Una vez exportado, debemos eliminar el atributo que identifica la imagen para que no se sobrescriba en el parcheado, lo que nos devolvería un error, pues se trata de un atributo «protegido» y no se puede modificar. Aquí entra en juego el comando jq:

cat mi-deployment-config.json | ./jq -c '.items[] | select(.kind=="DeploymentConfig") > mi-deployment-config-procesado.json

Por último, parcheamos el deployment config con el fichero que hemos obtenido tras los dos pasos anteriores:

oc patch dc/mi-deployment-config --patch "$(cat ./salidaplantilla.json)"

Todo esto se puede hacer de una sola vez, utilizando pipe’s de linux:

oc patch dc/mi-deployment-config --patch "$(oc process mi-template -p APPLICATION_NAME=mi-aplicacion-desde-plantilla -p NUM_REPLICAS=3 -p NAMESPACE=mi-namespace  -n mi-namespace -o json | ./jq -c '.items[] | select(.kind=="DeploymentConfig") | del(.spec.template.spec.containers[].image)')

¡¡Esto es todo por hoy!!

Read More

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *