Eclipse JKube 1.16 Goes GA
Written by Nikos Vaggalis   
Monday, 08 April 2024

Eclipse JKube makes deploying your Java application to a Kubernetes cluster a breeze. Let's find out what's new.



Eclipse JKube is a library and a collection of plugins used for building container images using Docker, JIB or S2I build strategies. It can also generate Kubernetes and OpenShift resource manifests which can deploy them into a Kubernetes cluster.

JKube enters the Java ecosystem to bridge the gap between monolithic Java applications and the requirements of the Cloud Native ones, as moving from monolithic to a Cloud native architecture requires a new way of thinking. That is breaking down your application into microservices, add interoperation and transactions between them, provide service discovery, build the containers, deploy them to Kubernetes clusters and so on.

JKube aids in building those containers as easy as it gets, generates the configuration files necessary for the containers' deployment on Kubernetes clusters and finally deploys them.

As such JKube is comprised of five different components:

  • JKube Kit: Contains the core logic of the library and is used by the rest of the components (plugins).

  • Kubernetes Maven Plugin: Specifically designed to target vanilla Kubernetes clusters. Builds container images using Docker or JIB. Generates standard Kubernetes configuration descriptors.

  • OpenShift Maven Plugin: Built on top of the Kubernetes Maven Plugin, provides OpenShift specific features. Builds container images using S2I. Generates OpenShift specific configuration descriptors.

  • Kubernetes Gradle Plugin: Provides the same features as the Kubernetes Maven Plugin but for Gradle projects.

  • OpenShift Gradle Plugin: Provides the same features as the OpenShift Maven Plugin but for Gradle projects.

The fastest way for you to get started with JKube is by using one of the provided Maven Plugins, incorporating them into your manifest: 


Once you’ve compiled and packaged your application by running the mvn clean package command, it’s time to build the container image with :

mvn k8s:build

To pushing the image to a predefined Docker registry :

mvn k8s:push

To generate the configuration resources to infer your project's requirements and generate cluster configuration manifests (YAML files) for your application:

mvn k8s:resource

Finally, you can deploy the generated configuration files to your cluster with :

mvn k8s:apply

Or conveniently as a one liner, build and deploy your application to Kubernetes in one go with:

$ mvn package k8s:build \
k8s:push \
k8s:resource \

JKube internally uses the Fabric8 Kubernetes Client to access your cluster by reading your .kube/config. Unless you want to target a different cluster, you won’t need to provide any specific configuration either.

That's it! Some say that this process should be part of a proper CI/CD pipeline and not rely on a plugin for it. While this might be true, JKube's job lies in helping to smooth out the steep Kubernetes learning curve has got.

As of this February version 1.16 has been released which comes with:

  • New Buildpacks based build strategy
    Users can now leverage Cloud Native Buildpacks to build their container images. In addition to the existing docker, jib, and s2i build strategies, JKube now supports the buildpacks strategy to transform your source code into a runnable app image.

  • New Helm Lint feature
    JKube now provides a new feature to lint the Helm charts it generates just by running a simple Maven or Gradle command, so that you can examine the generated Helm charts for possible issues.

  • Support for Kubernetes Recommended Labels

  • Updated base images

Of course the usual bug-fixes and minor improvements

So if you are a Java developer planning to go Kubernetes and don't know how, let JKube show you the way!



More Information

jkube on Github


Related Articles

Kubernetes for Full-Stack Developers



To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


Amazon Bedrock Adds Support For Anthropic's Claude3 Opus

Bedrock, Amazon's fully managed service for building generative AI applications, has been enhanced with support for Anthropic's Claude 3 Opus Foundation Model.

Dev Tunnels - An Alternative to Ngrok For .NET Users

Dev Tunnels is a new Visual Studio option that exposes your localhost to the internet the easiest way possible. But first of all, why would you allow access from the public net to your local mach [ ... ]

More News

raspberry pi books



or email your comment to:

Last Updated ( Monday, 08 April 2024 )