Eclipse JKube 1.20 is now available!
On behalf of the Eclipse JKube
team and everyone who has contributed, I'm happy to announce that Eclipse JKube 1.20.0 has been
released and is now available from
Maven Central 🎉.
Thanks to all of you who have contributed with issue reports, pull requests, feedback, and spreading the word with blogs, videos, comments, and so on. We really appreciate your help, keep it up!
What's new?
Without further ado, let's have a look at the most significant updates:
- Jetty 12 is now the default web application server
- Explicit JDK selection for Java generators
- Fine-grained image pull policy control
- Compatibility with Maven 3.9.13 and newer
- StatefulSet and DaemonSet redeployment fixes
- Spring Boot DevTools now wires up in the Gradle
k8sWatch/ocWatchtasks - 🐛 Many other bug-fixes and minor improvements
Jetty 12 is now the default web application server
Web application (WAR) projects now build on top of the jkube-jetty12 base image by default, replacing the
older jkube-jetty9 image. Jetty 12 brings support for the Jakarta EE namespaces (jakarta.*) and keeps your
containers running on an actively maintained server.
The legacy jkube-jetty9 image is now deprecated. If your project is a legacy Java EE web application that still
relies on the javax.* namespaces, you can opt back in to Jetty 9 by setting the
jkube.generator.webapp.server=jetty9 property. Bear in mind this switch is potentially breaking for those
legacy applications, so make sure to test your deployment after upgrading.
On top of the new default, hot deployment now works with Jetty 12 when using k8s:watch/oc:watch in copy mode,
so you can keep iterating on your web application without rebuilding the whole image.
Explicit JDK selection for Java generators
You can now explicitly select the JDK version used by the base image for Java generators through the new
jkube.java.version property. Previously the JDK was inferred automatically, which sometimes led to a base image
that didn't match the version you were targeting. With this property you can pin the exact JDK your workload needs.
Fine-grained image pull policy control
Image pull policy handling is now more consistent and flexible:
- A per-image
imagePullPolicyset in the build configuration now correctly overrides the global pull policy, so you can fine-tune the behavior on an image-by-image basis. - The Buildpacks build service now honors the global
imagePullPolicywhen no per-image policy is set, aligning its behavior with the other build strategies.
Compatibility with Maven 3.9.13 and newer
The Kubernetes Maven Plugin is now compatible with the SecDispatcher changes introduced in Maven 3.9.13. Registry
and Helm passwords are decrypted using Maven's SettingsDecrypter, which is the standard, supported mechanism for
handling encrypted credentials.
As a result, the <helm><security> configuration and the jkube.helm.security property are now deprecated in favor
of the standard -Dsettings.security setting.
StatefulSet and DaemonSet redeployment fixes
Generated StatefulSet and DaemonSet resources no longer include the version label in their
selector.matchLabels. Because the selector is an immutable field, keeping a version label there prevented these
workloads from being redeployed after a version bump. With this fix, you can bump your application version and
redeploy StatefulSet and DaemonSet workloads without running into update errors.
Using this release
If your project is based on Maven, you just need to add the Kubernetes Maven plugin or the OpenShift Maven plugin to your plugin dependencies:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>1.20.0</version>
</plugin>If your project is based on Gradle, you just need to add the Kubernetes Gradle plugin or the OpenShift Gradle plugin to your plugin dependencies:
plugins {
id 'org.eclipse.jkube.kubernetes' version '1.20.0'
}How can you help?
If you're interested in helping out and are a first-time contributor, check out the "first-timers-only" tag in the issue repository. We've tagged extremely easy issues so that you can get started contributing to Open Source and the Eclipse organization.
If you are a more experienced developer or have already contributed to JKube, check the "help wanted" tag.
We're also excited to read articles and posts mentioning our project and sharing the user experience. Feedback is the only way to improve.
Project Page | GitHub | Issues | Gitter | Mailing list | Stack Overflow

