Fabric8 Kubernetes Client 6.0.0-RC1 está disponible!
Nota
En nombre de todo el equipo de Fabric8 y de todos sus contribuidores, estoy muy contento de anunciar que hemos liberado la versión 6.0.0-RC1
de Fabric8 Kubernetes Client 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í!
Esta versión release candidate es el último hito para la sexta versión mayor del Cliente que llega después de varios meses de duro trabajo y que trae mejoras de rendimiento y varias funcionalidades importantes. Quiero aprovechar esta oportunidad para dar un gran reconocimiento a Steven Hawkins quien se encargó de refactorizar y mejorar masivamente el cliente. Y a Andrea Peruffo quien comenzó la implementación del nuevo generador de CRD a Java.
Por favor, aseguráos de compartir vuestro feedback y reportar cualquier problema para que cuando liberemos la versión GA en unas pocas semanas todo funcione perfectamente para vosotros.
Novedades
Sin más dilación, veamos cuáles son las novedades más importantes de esta versión:
- Multiples implementaciones para el cliente HTTP
- Generador CRD a Java (YAML-2-Java)
- Extensión JUnit 5 para automatizar la generación de Namespaces
- 🐛 Muchas otras mejoras y bug-fixes
Multiples implementaciones para el cliente HTTP
En esta versión, hemos abstraído la implementación subyacente del cliente OkHTTP y proporcionado una capa adicional para poder consumir otros clientes HTTP. Además, hemos proporcionado implementaciones para el Java HTTP Client estándar (Java 11+), y el Eclipse Jetty HTTP Client.
Generador CRD a Java (YAML-2-Java)
Uno de los principales puntos problemáticos para los usuarios que implementan operadores, o para los usuarios que tienen que interactuar con ellos, era la generación de tipos Java para mapear recursos definidos en un Custom Resource Definition (CRD). En esta versión, hemos introducido un nuevo generador de CRD a Java que permite generar automáticamente tipos Java para una CRD proporcionado o una lista de archivos YAML de CRD.
Puedes usar este generador a través del plugin de Maven o mediante su herramienta CLI independiente.
Extensión JUnit 5 para automatizar la generación de Namespaces
Esta extensión te permite configurar tus tests end-to-end (E2E) que se ejecutan en clústeres reales de Kubernetes. Las siguientes son algunas de las funcionalidades que proporciona esta extensión:
- Crear y configurar un Namespace efímero para ejecutar tus tests
- Inyectar un KubernetesClient (o cualquiera de sus interfaces adaptadas) a tus tests
- Cargar algunos recursos iniciales o manifiestos YAML en tu clúster antes de ejecutar tus tests (y eliminarlos después)
- Omitir automáticamente la ejecución de tests basándose en condiciones específicas del clúster
Puedes consultar el siguiente video de YouTube para conocer estas nuevas funcionalidades en detalle y ver lo que potencialmente podrías lograr con ellas.
Cómo utilizar esta versión
Si tu proyecto está basado en Maven, lo único que hay que hacer es añadir Fabric8 Kubernetes Client a las dependencias del proyecto:
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-client</artifactId>
<version>6.0.0-RC1</version>
</dependency>
Si tu proyecto está basado en Gradle, lo único que tienes que hacer es añadir Fabric8 Kubernetes Client a las dependencias de Gradle:
dependencies {
api "io.fabric8:kubernetes-client:6.0.0-RC1"
}
Una vez hayas configurado tu proyecto, puedes crear una instancia del cliente para realizar distintas operaciones. En el siguiente fragmento de código muestro como instanciar el cliente y obtener una lista de Pods:
try (KubernetesClient client = new KubernetesClientBuilder().build()) {
client.pods().list().getItems().forEach(p -> System.out.println(p.getMetadata().getName()));
}
Recuerda que esta es una versión mayor con grandes mejoras y nuevas funcionalidades, a expensas de algunos cambios menores que rompen la compatibilidad. Asegúrate de consultar la guía de migración para obtener la mejor experiencia de actualización si vienes de una versión anterior.
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.
También nos encanta leer artículos y publicaciones mencionando nuestro proyecto y compartiendo la experiencia. Dar una estrella al proyecto, y en general, ayudar a promocionar el proyecto, nos ayuda a llegar a más usuarios e incrementar el feedback. El feedback es la única forma de mejorar y siempre es bienvenido.
Project Page | Issues | Discussions | Gitter | Stack Overflow