Este ejercicio esta basado y es una adaptación del ejemplo que se muestra en la guía OpenShift Starter Guides.

Arquitectura de la aplicación

parksmap

Despliegue de Parksmap

Parksmap es la aplicación frontend que visualizará en un mapa las coordenados de los Parques Nacionales. Esta aplicación está escrita con el framework de Java Spring-boot y vamos a desplegarla usando la imagen quay.io/openshiftroadshow/parksmap:latest desde la consola web. Hemos escogido en la vista Developer, la opción +Add -> Conatiner Images, e indicamos la imagen y el icono de spring-boot:

parksmap

A continuación, indicamos el nombre de la aplicación workshop, el nombre del despliegue parksmap y creamos un recurso Route:

parksmap

Por último indicamos que vamos a desplegar la aplicación como un objeto Deployment e indicamos las siguientes etiquetas:

  • app=workshop
  • component=parksmap
  • role=frontend

parksmap

Creamos el despliegue, y al cabo de unos segundos comprobamos los recursos creados en la topología:

parksmap

Accedemos a la URL del objeto Route y comprobamos que la aplicación está funcionando, aunque todavía no puede mostrar la localización de los puertos naturales:

parksmap

Permisos

Todas las interacciones que hacemos sobre la API de OpenShift son autenticadas (¿Quién eres?) y autorizadas (¿Estás autorizado a hacer esta operación?).

Muchas de las interacciones que se hacen sobre la API de OpenShift se realizan por el usuario final, pero muchas otras se hacen internamente. Para hacer estas últimas peticiones a la API se utilizan unas cuentas especiales de usuario, que se llaman Service Account.

OpenShift crea automáticamente algunas Service Account en cada proyecto. Por ejemplo, hay una Service Account que se llama default y será la responsable de ejecutar los Pods.

Puede ver los permisos actuales en la consola web: en la vista Administrator, escogiendo la opción User Management -> RoleBindings:

parksmap

Más adelante, veremos que la aplicación Parksmap necesita hacer una petición a la API OpenShift para preguntar sobre la configuración de otros recursos.

Por lo tanto, tenemos que otorgar el permiso view al Service Account default, para que el Pod pueda consultar sobre los recursos que se encuentran dentro del proyecto. Para ello, pulsamos sobre le botón Create binding de la pantalla anterior y configuramos el permiso indicando el nombre del permiso, el proyecto y el Role view que se va a asignar a un Service Account llamado default en nuestro proyecto.

parksmap parksmap

Si queremos hacerlo desde la terminal, ejecutamos:

oc policy add-role-to-user view -z default

Finalmente actualizamos el despliegue:

oc rollout restart deployment/parksmap

Actualizado: