A Java client library providing a fluent DSL to interact with Kubernetes and OpenShift REST APIs.
Fabric8 Kubernetes Client is a Java library that provides a fluent DSL for interacting with Kubernetes and OpenShift clusters. It allows developers to programmatically create, read, update, delete, and watch Kubernetes resources like pods, services, and deployments directly from Java code. The library solves the problem of integrating Kubernetes operations into JVM-based applications, CI/CD pipelines, and operators without relying on shell commands or external scripts.
Java developers building applications, operators, or tools that need to interact with Kubernetes or OpenShift clusters programmatically. It is particularly useful for teams developing Kubernetes operators, CI/CD plugins, integration frameworks, and cloud-native platforms on the JVM.
Developers choose this client for its comprehensive feature set, including a fluent DSL, OpenShift support, mock testing utilities, and extensive compatibility with all supported Kubernetes versions. Its active community, regular updates, and wide adoption in popular frameworks like Apache Camel and Spring Cloud Kubernetes make it a reliable and production-ready choice.
Java client for Kubernetes & OpenShift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides an intuitive, type-safe API for CRUD operations and watching events, as demonstrated in the README with examples like client.pods().list() and client.services().inNamespace().delete().
Includes dedicated adapters and extensions for OpenShift-specific APIs, allowing easy adaptation from KubernetesClient to OpenShiftClient.class for full OpenShift functionality.
Offers a Kubernetes Mock Server with both expectations and CRUD modes, enabling comprehensive unit and integration testing without a real cluster, as shown with @EnableKubernetesMockClient annotations.
Designed to be compatible with any supported Kubernetes and OpenShift cluster version from v5.5 onward, ensuring long-term stability and reducing upgrade headaches.
Features a modular architecture with official extensions for Knative, Tekton, Istio, and other ecosystem projects, enhancing integration capabilities as listed in the extensions table.
Restricted to JVM-based projects, making it unsuitable for teams using other programming languages where native Kubernetes clients might be preferred.
The extensive configuration via system properties and environment variables (over 50 options documented) can be overwhelming for simple use cases and requires careful management.
As a Java library, it introduces additional latency and resource overhead compared to lightweight CLI tools like kubectl or native clients in languages like Go.
The comprehensive DSL and numerous features, while powerful, require significant time to master, especially for developers new to Kubernetes or Java-based orchestration.