You can easily rely on Fabric8 Kubernetes Client to implement your Kubernetes Operators. Here are few examples of already existing Kubernetes Operators which can give you some idea on how to get started with writing Kubernetes Operators in Java using Fabric8 Kubernetes Client:
- Strimzi Kafka Operator: Apache Kafka Running on Kubernetes
- Spark Operator: Operator for managing Spark Clusters on Kubernetes
- Kerberos Operator for Kubernetes
- Windup Operator: Operator to deploy Windup/MTA on OpenShift
- Instana Agent Operator: A Kubernetes Operator to install and manage Instana agent
- Strimzi Schema Registry Operator: A Kubernetes Operator (based on Java) for running the Confluent Schema Registry and KSQL with a Strimzi-based Kafka cluster
- Tomcat Operator: An operator managing Tomcat and deploying war file to it.
- Flink Native Kubernetes Operator: Apache Flink on Kubernetes
- Activiti Cloud Apps Operator
- JVM Controller(Demo)
- RabbitMQ Operator
- Locust k8s operator: Cloud native solution to run Locust on any Kubernetes cluster
While sometimes simply using the client is enough to create an operator, using a specialized framework to do so might make the task easier. The Java Operator SDK (JOSDK) builds on top of the Fabric8 Kubernetes Client to provide higher-level abstractions, common operator patterns and optimizations, letting developers focus on their operator's logic.