Eclipse JKube 1.10 está disponible!
En nombre de todo el equipo de Eclipse JKube y de todos sus contribuidores, estoy muy contento de anunciar que hemos liberado la versión 1.10.1
de Eclipse JKube y que está disponible para su descarga desde Maven Central 🎉.
Muchas gracias a todos los que habéis contribuido reportando issues, creando pull requests, dando feedback y promocionando el proyecto mediante blogs, videos, comentarios, etc. Valoramos muchísimo vuestra ayuda ¡seguid así!
Novedades
Sin más dilación, veamos cuáles son las novedades más importantes de esta versión:
- Presentando Eclipse JKube Remote Development (Preview)
- Configuración automática de Health Checks para proyectos que dependen de SmallRye Health
- Mejora del soporte para Podman
- Imágenes base actualizadas
- 🐛 Muchas otras mejoras y bug-fixes
Eclipse JKube Remote Development (Preview)
La nueva funcionalidad de Eclipse JKube para desarrollo en remoto sobre Kubernetes te permite ejecutar y depurar tus aplicaciones Java desde tu entorno local pero conectado a tu cluster de Kubernetes. En esencia, es como si colocases tu entorno local dentro de tu cluster. Esto significa que serás capaz de:
- Consumir servicios que sólo están disponibles en tu cluster
- Exponer aplicaciones en ejecución dentro de tu entorno local al resto de servicios y Pods en tu cluster
El siguiente diagrama muestra la topología de una aplicación distribuida desplegada en un cluster de Kubernetes:
Considerando que el Pod A es una aplicación Java en la que estás trabajando, iniciando una sesión de desarrollo en remoto con Eclipse JKube, la topología se actualizará como se muestra en el siguiente diagrama:
Los usuarios que accedan al Service A a través del Ingress A ahora recibirán el tráfico desde tu máquina local en lugar de desde el Pod A. Además, tu máquina local podrá acceder al Service B y Service C ya que estos servicios estarán disponibles en puertos locales de tu sistema.
Para poder utilizar la nueva funcionalidad sólamente es necesario proporcionad una configuración muy sencilla:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<configuration>
<remoteDevelopment>
<localServices>
<localService>
<serviceName>my-local-service</serviceName>
<port>8080</port>
</localService>
</localServices>
<remoteServices>
<remoteService>
<hostname>postgresql</hostname>
<port>5432</port>
</remoteService>
</remoteServices>
</remoteDevelopment>
</configuration>
</plugin>
Para cada puerto local que quieras exponer en el cluster debes definir un <localService>
con el nombre del servicio de Kubernetes y el puerto. Eclipse JKube creará un nuevo servicio de Kubernetes, o reemplazará de forma temporal un servicio existente con ese nombre, y reenviará el tráfico dirigido al puerto configurado en ese servicio a tu entorno local.
Para cada puerto remoto del cluster que quieras consumir de localmente debes definir un <remoteService>
con el nombre del servicio de Kubernetes y su puerto. Eclipse JKube escuchará tráfico dirigido hacia ese puerto en tu entorno local y lo reenviará al servicio remoto que se está ejecutando en el cluster.
Una vez hayas definido la configuración para tu aplicación puedes iniciar una nueva sesión de desarrollo en remoto ejecutando el siguiente comando:
mvn k8s:remote-dev
En este repositorio de GitHub puedes encontrar un ejemplo de una aplicación distribuida construida con Quarkus, Micronaut y Spring Boot con la configuración necesaria de JKube para cada proyecto.
También puedes reproducir el siguiente video de YouTube para ver Eclipse JKube remote dev en acción:
Cómo utilizar esta versión
Si tu proyecto está basado en Maven, lo único que hay que hacer es añadir el Kubernetes Maven Plugin o el OpenShift Maven plugin a las dependencias de plugins del proyecto:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>1.10.1</version>
</plugin>
Si tu proyecto está basado en Gradle, lo único que tienes que hacer es añadir el Kubernetes Gradle plugin o el OpenShift Gradle plugin a las dependencias de plugins:
plugins {
id 'org.eclipse.jkube.kubernetes' version '1.10.1'
}
Cómo ayudar y colaborar
Si estás interesado o interesada en ayudar con el proyecto y es la primera vez que contribuyes, puedes echar un vistazo al tag "first-timers-only" en el repositorio. Hemos etiquetado issues muy sencillas para que puedas iniciarte en el mundo Open Source y a colaborar con la fundación Eclipse.
Si eres una persona más experimentada en el desarrollo o ya has contribuido alguna vez a JKube, busca entre las issues etiquetadas como "help wanted".
También nos encanta leer artículos y publicaciones mencionando nuestro proyecto y compartiendo la experiencia. El feedback es la única forma de mejorar y siempre es bienvenido.
Project Page | GitHub | Issues | Gitter | Mailing list | Stack Overflow