Fabric8 Kubernetes Client 6.3.1 está disponible!
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.3.1
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í!
Novedades
Sin más dilación, veamos cuáles son las novedades más importantes de esta versión:
- Server-side apply más sencillo
- Operaciones de borrado bloqueantes
- 🐛 Muchas otras mejoras y bug-fixes
Puedes encontrar la lista completa de cambios para esta versión en la release page en GitHub.
Server-side apply más sencillo
Hemos introducido un nuevo método en nuestro DSL para poder realizar operaciones server-side apply directamente. Server-side apply ya se soportaba en versiones anteriores del cliente. No obstante, para realizar dichas operaciones había que hacer una llamada compleja al método patch
. Con las mejoras en nuestro DSL es mucho más sencillo enviar estas peticiones.
// Before
kubernetesClient.resource(resource).patch(PatchContext.of(PatchType.SERVER_SIDE_APPLY), resource);
// With new server-side apply DSL
kubernetesClient.resource(resource).serverSideApply();
// Or with additional options
kubernetesClient.resource(resource).fieldManager("field-manager").forceConflicts().serverSideApply();
Operaciones de borrado bloqueantes
Con la entrega de la version 6.0, las operaciones de borrado se convirtieron en no bloqueantes, lo que conllevaba realizar una llamada al método waitUntilCondition
si queríamos bloquear el hilo hasta que el recurso se hubiese borrado del cluster. El siguiente fragmento de código muestra lo que proponíamos en nuestra guía de migración:
var resource = kubernetesClient.resource(pod);
resource.delete();
resource.waitUntilCondition(Objects::isNull, 30, TimeUnit.SECONDS);
En esta entrega incluimos un nuevo método withTimeout
en nuestro DSL que permite hacer nuevamente operaciones de borrado bloqueantes.
kubernetesClient.resource(pod).withTimeout(30, TimeUnit.SECONDS).delete();
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.3.1</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.3.1"
}
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()));
}
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