Eclipse JKube

There are times when you want to apply some CustomResources along with your application’s workload resources like Deployment, Serviceetc. For this use case, you might want to use Kubernetes Maven Plugin’s resource fragments feature to provide custom YAML fragments to JKube in order to deploy during the apply phase. In this blog post, we’ll be taking a look at how we can provide our CustomResource fragments to Kubernetes Maven Plugin in order to deploy them during the apply phase.

Adding Kubernetes Maven Plugin to project:

In order to use deploy CustomResource fragments using Eclipse JKube, you need to have Kubernetes Maven Plugin added in your pom.xml…

Writing Kubernetes Sample Controller in Java

I recently saw this Sample Controller repository on kubernetes Github repository. This just implements a simple controller for watching CustomResource named Foo as defined within a CustomResourceDefinition.

I thought it would be a good idea to port this example which is written in GoLang to Java using Fabric8 Kubernetes Client to get an idea of doing these operations but in Java:

  • How to register a new custom resource (custom resource type) of type Foo using a CustomResourceDefinition.
  • How to create/get/list instances of your new resource type Foo.
  • How to setup a controller on resource handling create/update/delete events.

What are we going to build?

If you’re not…

Fabric8 Kubernetes Java Client

Fabric8 Kubernetes Client recently released 5.0.0 version with a focus towards improved support regarding CustomResource and Kubernetes Operator related usage. It’s already integrated into Java Operator SDK.

In this blog, we will be looking at all new improvements in detail. We’ll be looking at the difference in usage in Fabric8 KubernetesClient 5.x versus 4.x versions too. For this blog, let’s consider a simple CustomResource named Book :

kind: Book
name: effective-java
title: "Effective Java"
author: "Joshua Bloch"
isbn: "0134685997"

It’s based on this CustomResourceDefinition :

apiVersion: kind: CustomResourceDefinition metadata: name: spec: group:…

Note: This blog is a part of blog Series: Deploying Java applications onto Kubernetes using Eclipse JKube

Deploying Eclipse Jetty Web Applications to Kubernetes using Eclipse JKube
Deploying Eclipse Jetty Web Applications to Kubernetes using Eclipse JKube
Deploying Jetty Web Apps to Kubernetes using Eclipse JKube

In previous blogs we have seen how to deploy Spring Boot, Quarkus, Vert.x or any web application based on Tomcat to Kubernetes with ease with the help of Eclipse JKube. Eclipse JKube has support for Eclipse Jetty based web applications too. We’ll do the same thing but for a Jetty based project this time using Eclipse JKube. One thing to note here is that, the workflow remains unchanged for Eclipse JKube regardless of the framework it’s trying to deploy on top of Kubernetes.

I recently submitted a post about new updates in Fabric8 Kubernetes Client on Red Hat Developer. In this post, I’ll cover new features introduced in Fabric8 Kubernetes Client like:

You can find link to the complete article here:

Note: This blog is a part of blog Series: Deploying Java applications onto Kubernetes using Eclipse JKube

These days almost everyone around me seems to be talking about how awesome Quarkus is in terms of startup time and memory consumption and how is it redefining Cloud Native Java Development on top of Kubernetes.

Today in this blog, we would be taking a look at how well Eclipse JKube integrates with Quarkus when it comes to bringing developer joy on top of Kubernetes.

Note: Quarkus has its own suggested way of deployment to Kubernetes.

Fabric8 Tekton Client

Fabric8 Kubernetes Client also offers very useful extensions for Istio, Knative, Tekton and Service Catalog. Since then, it has evolved a lot. Today I would be giving a quick overview of Fabric8 Tekton extension.

Getting Fabric8 Tekton Client:

You can find Tekton Client on Maven Central as usual. You can start using Tekton client by adding it as a dependency in your pom.xml :


Most of the usage of Tekton Client is easily understandable and similar to it’s parent Fabric8 Kubernetes Client. …

Fabric8 Kubernetes Client

There are times when we want to copy some files to our application pod running inside Kubernetes or download some file from within an application pod to our local system. You can see various articles on internet about kubectl cp, but this article is focused on doing all that programmatically in Java using Fabric8 Kubernetes Client

Getting the Client:

You can find the client on maven central as usual. You can add it as a dependency in your maven project:

Fabric8 Kubernetes Client dependency in pom.xml

If you’re using gradle, you might want to use this:

Fabric8 Kubernetes Client dependency via gradle groovy…

With Eclipse JKube’s1.0.0 release Fabric8 Maven Plugin is now considered deprecated and would be archived soon in future. I won’t say Fabric8 Maven Plugin is dead, it’s just renamed to Eclipse JKube(which offeres complete suite for development on top of Kubernetes and Red Hat OpenShift). Users who are using Fabric8 Maven Plugin to are advised to migrate to Eclipse JKube.

You can checkout how to migrate to Kubernetes Maven Plugin in this blogpost submitted by me on Red Hat developers:

Orignally posted at Wordpress.

Rohan Kumar

Software Engineer, Red Hat (

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store