• Stars
    star
    794
  • Rank 57,349 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Java SDK for building Kubernetes Operators

java-operator-sdk

Java CI with Maven Slack Discord

Build Kubernetes Operators in Java Without Hassle

Java Operator SDK is a production-ready framework that makes implementing Kubernetes Operators in Java easy.

It provides a controller runtime, support for testing operators, and related tooling. In addition to that implementing conversion hooks and dynamic admission controllers are supported as a separate project (and much more, see related projects section).

Under the hood it uses the excellent Fabric8 Kubernetes Client, which provides additional facilities, like generating CRD from source code (and vice versa).

Documentation

Documentation can be found on the JOSDK WebSite.

Contact us

Join us on Discord or feel free to ask any question on Kubernetes Slack Operator Channel

Meet us every Thursday (17:00 CET) at our community meeting on Zoom (Password in the Discord channel, or just ask for it there!)

How to Contribute

See the contribution guide on the website.

What is Java Operator SDK

Java Operator SDK is a higher level framework and related tooling to support writing Kubernetes Operators in Java. It makes it easy to implement best practices and patterns for an Operator. Features include:

  • Optimal handling Kubernetes API events
  • Handling dependent resources, related events, and caching.
  • Automatic Retries
  • Smart event scheduling
  • Handling Observed Generations automatically
  • Easy to use Error Handling
  • ... and everything that a batteries included framework needs

For all features and their usage see the related section on the website.

Related Projects

Projects using JOSDK

While we know of multiple projects using JOSDK in production, we don't want to presume these projects want to advertise that fact here. For this reason, we ask that if you'd like your project to be featured in this section, please open a PR, adding a link to and short description of your project, as shown below:

  • ExposedApp operator: a sample operator written to illustrate JOSDK concepts and its Quarkus extension in the "Write Kubernetes Operators in Java with the Java Operator SDK" blog series.
  • Keycloak operator: the official Keycloak operator, built with Quarkus and JOSDK.
  • Apache Flink Kubernetes operator is the market leader among Flink operators.
  • Strimzi Access operator. While the core Strimzi operator development predates
    JOSDK, but new components like the Access operator is using the framework.
  • EureKubeOperator: integrates service discovery of Eureka and Kubernetes using the framework - developed by 11street. It is not released as an open source yet but is very interesting to read about this problem and how it is solved by an operator written with JOSDK.
  • Locust k8s operator: Cloud native solution to run performance tests on any Kubernetes cluster.
  • Strimzi Schema Registry Operator: A Schema Registry Operator based on JOSDK for running the Confluent Schema Registry with a Strimzi-based Kafka cluster.
  • Airflow Dag Operator: Use JOSDK(Quarkus Extension) to replace Airflow Git Sync strategy. The main idea of the project is to start a synchronization container on each airflow pod to synchronize the DAG/files into the DAG folder.
  • Glasskube Operator: simplifies the deployment, maintenance and upgrade of popular open source business tools. It is written in Kotlin and uses the JOSDK and fabric8 Kubernetes client with Kotlin-based DSL.

More Repositories

1

operator-sdk

SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.
Go
6,553
star
2

awesome-operators

A resource tracking a number of Operators out in the wild.
3,471
star
3

operator-lifecycle-manager

A management framework for extending Kubernetes with Operators
Go
1,710
star
4

getting-started

An end-to-end scenario showing how to use the Operator Framework.
535
star
5

community-operators

The canonical source for Kubernetes Operators that appear on OperatorHub.io, OpenShift Container Platform and OKD.
Dockerfile
419
star
6

operator-sdk-samples

Contains samples of operators built using the operator-sdk
Shell
237
star
7

operator-registry

Operator Registry runs in a Kubernetes or OpenShift cluster to provide operator catalog data to Operator Lifecycle Manager.
Go
188
star
8

helm-app-operator-kit

Tool for creating a Kubernetes Operator from a Helm Chart
Shell
132
star
9

operator-marketplace

Marketplace Operator
Go
109
star
10

kubectl-operator

Manage Kubernetes Operators from the command line
Go
68
star
11

helm-operator-plugins

Experimental refactoring of the operator-framework's helm operator
Go
47
star
12

rukpak

RukPak runs in a Kubernetes cluster and defines APIs for installing cloud native content
Go
41
star
13

operator-lib

This is a library to help Operator developers
Go
40
star
14

operatorhub.io

TypeScript
39
star
15

josdk-spring-boot-starter

Java
36
star
16

api

Contains the API definitions used by OLM and Marketplace
Go
29
star
17

java-operator-plugins

Operator SDK Java Plugin
Go
26
star
18

community

Community organizational documentations and process for Operator Framework
25
star
19

olm-book

Documentation for OLM
25
star
20

operator-sdk-ansible-util

A collection of Ansible assets for use with Ansible-based operators built with the operator-sdk.
Python
18
star
21

catalogd

On-cluster FBC catalog content server
Go
14
star
22

operator-manifests

Artisanally packaged Kubernetes Operators
Go
14
star
23

kubernetes-webooks-framework

Framework and tooling to support writing admission controllers and conversion hooks for Kubernetes in Java
Java
12
star
24

enhancements

10
star
25

audit

audit operator bundles and catalogs, producing a report.
Go
10
star
26

deppy

Deppy: The dependency resolver for Kubernetes
Go
10
star
27

olm-docs

Hugo doc site for https://github.com/operator-framework/operator-lifecycle-manager
SCSS
10
star
28

java-controller-runtime

Repo for the Java controller-runtime.
Java
8
star
29

combo

Go
8
star
30

olm-broker

Service Catalog integration for OLM
Go
8
star
31

ansible-operator-plugins

Experimental extraction/refactoring of the Operator SDK's ansible operator plugin
Go
7
star
32

operator-manifest-tools

Tooling that enables software release pipelines for operator manifests
Go
7
star
33

operator-controller

Go
7
star
34

cool-catalog

Repository that showcases example workflows for building OLM Catalogs via Declarative Configurations
Dockerfile
6
star
35

oria-operator

Go
5
star
36

index-mermaid-graph

a tool that produces SVG diagrams using OLM graphs as the input
Go
5
star
37

go-appr

Go client bindings for App Registry
5
star
38

operator-framework.io

Website for the framework at https://operatorframework.io
HTML
4
star
39

mock-extension-apiserver

Go
3
star
40

bundle-example

Dockerfile
3
star
41

community-operator-catalog

Community Operator Catalog
Shell
3
star
42

logos

2
star
43

tekton-scorecard-image

a SDK Scorecard custom image for the tekton operator
Java
1
star
44

tilt-support

Library of shared Tilt helpers
Starlark
1
star
45

test-infra

1
star
46

flake-analyzer

Go
1
star