Eclipse JKube Logo
Introducción En este post os presentaré Eclipse JKube y cómo arrancar con el proyecto para desplegar vuestras aplicaciones Java en la Nube. Eclipse JKube es una colección de plugins y librerías que te ayudarán a desarrollar aplicaciones Java cloud-native. Incluye herramientas para construir imágenes de contenedores empleando estrategias de construcción como Docker, JIB o S2I. Además, JKube proporciona los medios necesarios para generar ficheros de configuración para el cluster (YAML) y desplegarlos en OpenShift o Kubernetes. El origen de JKube Eclipse JKube no es un proyecto original sino el cambio de imagen y puesta al día del gran Fabric8 Maven […]

Introducción a Eclipse JKube: Herramientas y plugins de Java para ...


YAKC - Yet Another Kubernetes Client
Introducción En este ejemplo os mostraré cómo podéis acceder a la API REST de vuestro Kubernetes cluster desde un Pod utilizando YAKC (Yet Another Kubernetes Client), Eclipse JKube y Spring Boot. En la primera parte os enseñaré  cómo crear una aplicación muy sencilla basada en Spring Boot con la dependencia a YAKC Kubernetes Client (ver introducción a YAKC). En la segunda parte describo cómo desplegar la aplicación en un cluster de Kubernetes y cómo hacer peticiones a los endpoints REST expuestos en el Servicio del Pod para obtener información del Cluster. Aplicación de ejemplo Lo primero que haremos será crear […]

Accede al API de Kubernetes desde un Pod con Java


YAKC - Yet Another Kubernetes Client
Introducción Kubernetes v1.19.0 acaba de ser lanzado. Entre las nuevas funcionalidades y mejoras destaca la graduación del Ingress API a V1 (#1453). Pese a que los recursos de tipo Ingress se usan por la mayoría de usuarios de Kubernetes, y que esta funcionalidad se introdujo en 2015, no ha sido hasta la reciente version 1.19 en la que se ha hecho globalmente disponible. Un Ingress es “Un objeto API que gestiona acceso externo a los servicios de un cluster, normalmente HTTP”. En otras palabras, los Ingress permiten exponer públicamente los servicis gestionados por Kubernetes. En este artículo os mostraré como […]

Kubernetes 1.19 Ingress API desde Java con YAKC



Camel
Introducción Eclipse JKube 1.0.0 se lanzará el nueve de septiembre de 2020. Tal como he comentado en publicaciones anteriores, JKube es el sucesor del ahora obsoleto Fabric8 Maven Plugin (FMP). En estos momentos, nuestro principal objetivo es migrar a los actuales usuarios de Fabric8 al nuevo proyecto. Alineados con esta estrategia, hemos comenzado a crear Pull Requests en aquellos repositorios que están empleando FMP en la actualidad para reemplazar dicha dependencia. En esta publicación os enseñaré como ejecutar el ejemplo (actualizado a JKube) de Apache Camel, Cassandra running on Kubernetes, y como éste debería de comportarse. Este artículo está basado […]

Apache Camel y Casandra en un cluster Kubernetes


Quarkus
Introducción Durante los pasados meses, mi equipo y yo hemos estado trabajando muy duro para lanzar Eclipse JKube.  JKube es el sucesor del ya obsoleto Fabric8 Maven Plugin, y como tal, nuestro principal objetivo ahora mismo es migrar aquellos proyectos que dependent de éste a JKube. GitHub proporciona muchas estadísticas y métricas, entre ellas la información acerca del grafo de dependencias del proyecto. Esta información es muy valiosa, ya que podemos averiguar qué proyectos (dentro de GitHub) dependen del nuestro. Para nuestro caso de uso de migración de usuarios, esta información es exactamente lo que necesitamos. Desafortunadamente, la API para […]

Quarkus + Picocli: Web scaper para extraer proyectos dependientes en ...


YAKC - Yet Another Kubernetes Client
Introducción Desde hace algún tiempo, soy uno de los miembros del equipo que se encarga del mantenimiento de Fabric8 Kubernetes Client, uno de los clientes Java más populares para Kubernetes y OpenShift. Fabric8 Kubernetes Client es una de las mejores opciones disponibles ya que nos permite hacer la mayoría de operaciones soportadas por kubectl desde Java con una API muy elegante y fluida. No obstante, acceder a las operaciones de bajo nivel de la API REST o a una versión específica de la API es complicado, ya que el cliente de Fabric8 no lo permite (de momento). Este es el principal […]

Kubernetes Client for Java: Presentando YAKC



GitHub Actions
Introducción En este post veremos cómo desde un workflow de GitHub Actions en un repositorio podemos invocar otro workflow de un repositorio distinto. La primera parte muestra los distintos tipos de eventos que pueden desencadenar un workflow, centrándose en el evento repository_dispatch. La segunda parte es un ejemplo práctico mostrando cómo dos repositorios diferentes pueden desencadenar/iniciar sus workflows mutuamente. Eventos que desencadenan workflows Como probablemente sepas, hay diferentes tipos de eventos que pueden iniciar la ejecución de un workflow de GitHub Actions. Los eventos más conocidos para desencadenar esta ejecución son push, pull_request y schedule.  Estos eventos cubren la mayoría de […]

Lanzando GitHub Actions entre distintos repositorios


Quarkus + GraalVM + Fabric8 Maven Plugin
Introducción En este tutorial veremos como desarrollar una aplicación muy sencilla con Quarkus e integrarla con Fabric8 Maven Plugin para publicar una imagen nativa con  GraalVM en Docker Hub. La primera parte de la publicación describe como desrrollar una simple aplicación con Quarkus. La siguiente parte describe como construir un ejecutable nativo con GraalVM. La última sección muestra como integrar el proyecto con Fabric8 Maven Plugin y cómo desplegar las diferentes imágenes de la aplicación en Docker Hub. Quarkus, aplicación de muestra En esta sección se muestra cómo desarrollar una aplicación muy sencilla que devolverá una cita al azar cada […]

Quarkus + Fabric8 Maven Plugin + GraalVM


Isotope + Kuberentes
Introducción Isotope mail client es una aplicación webmail de código libre y uno de los proyectos personales en los que he invertido más tiempo durante el pasado año. Puedes leer más información acerca de las funcionalidades de Isotope en una publicación anterior. A pesar de que todavía no hay una versión oficial, la aplicación está bastante estable. En este post describiré la forma en la que se puede desplegar Isotope un un clúster de Kubernetes. En el tutorial se ha empleado minikube + kubectl, pero los mismos pasos podrían reproducirse en un clúster de K8s en producción. Traefik v1 Pese […]

Isotope Mail: Cómo desplegar Isotope+Traefik en Kubernetes



Fedora 1
Qué es Cinnamon? Cinnamon es un entorno de escritorio libre derivado de GNOME 3 y el principal entorno de escritorio para la distribución Linux Mint (Y también mi favorito). Fedora 30 viene por defecto con GNOME como el entorno de escritorio para el sistema X Window, sin embargo, hay un spin que es una variación de la distribución oficial de Fedora con Cinnamon con el entorno por defecto para el escritorio. Aunque se puede descargar el spin de Cinnamon, en esta publicación veremos cómo instalar los paquetes necesarios para desplegar de forma sencilla Cinnamon como el entorno de escritorio en […]

Fedora: Cómo instalar el entorno de escritorio Cinnamon


Webpack ReactJS Gatsby
Introducción Gatsby es una plataforma para la generación de webs estáticas basada en ReactJS y alimentada por GraphQL. Llevo bastante tiempo utilizando Gatsby y más recientemente lo he empleado para reconstruir mi página personal por completo. Una de las características que más me ha llamado la atención es que los source maps correspondientes al código Javsascript transpilado se publican en los builds de producción por defecto en la V2. Es bueno ser transparentes y publicar el código fuente para compartir con la comunidad software, pero tal vez este sea un efecto indeseado (especialmente cuando desarrollemos websites comerciales). En esta publicación […]

Gatsby: Deshabilitar source maps en producción


Isotope Mail Client
Introducción Isotope mail client es una aplicación webmail de código libre y gratuita construida siguiendo una arquitectura basada en microservicios. En el estado actual, la aplicación es sólo un MVP que ofrece las funcionalidades básicas de cualquier cliente de correo electrónico. A modo personal, el propósito principal de la aplicación es para exponer, explorar y aprender nuevas tecnologías y patrones de diseño y desarrollo de aplicaciones. No obstante, la aplicación debería de ser completamente funcional y resolver muchos de los problemas a los que se enfrentan otros clientes de correo electrónico. Funcionalidades No requiere base de datos Despliegue sencillo y rápido […]

Isotope Mail Client: Introducción y funcionalidades