For operators, the first results are kubernetes-sigs/controller-runtime (This repository provides the official controller-runtime framework used to build and manage Kubernetes operators and custom controllers, supporting all the core reconciliation and webhook capabilities you are looking for), operator-framework/operator-sdk (The Operator SDK is a comprehensive framework for building, packaging, and managing custom Kubernetes operators, supporting CRDs, code generation, and lifecycle management out of the box) and kubernetes-sigs/kubebuilder (Kububuilder is a foundational framework and scaffolding tool built specifically for developing Kubernetes APIs and custom controllers, offering robust support for custom resource definitions, webhook integration, and code generation). quarkiverse/quarkus-operator-sdk and kubernetes/sample-controller round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Hand-picked Kubernetes operators compared by stars, features, and activity to help you find the best fit for your cluster management needs.
This project provides a framework for building Kubernetes operators and custom controllers. It offers a set of libraries designed to manage the lifecycle of cluster resources, enabling developers to synchronize the actual state of a cluster with a desired configuration through event-driven reconciliation loops. The framework distinguishes itself by providing a manager-orchestrated environment that coordinates multiple controllers and webhooks within a single process. It includes built-in support for optimistic concurrency control to prevent update conflicts and utilizes in-memory informer cac
This repository provides the official controller-runtime framework used to build and manage Kubernetes operators and custom controllers, supporting all the core reconciliation and webhook capabilities you are looking for.
The Operator SDK is a framework for building, packaging, and managing custom controllers that extend the Kubernetes API. It serves as a toolset for defining new API types and implementing reconcile loops to automate the lifecycles of complex applications. The project provides specialized support for creating operators based on Helm charts or Ansible playbooks, allowing users to maintain a desired cluster state using existing automation tools. It includes a dedicated system for packaging controllers into standardized container image bundles for distribution via the Operator Lifecycle Manager.
The Operator SDK is a comprehensive framework for building, packaging, and managing custom Kubernetes operators, supporting CRDs, code generation, and lifecycle management out of the box.
Kubebuilder is a framework and set of scaffolding tools used to build Kubernetes APIs and controllers. It functions as an operator framework that provides generators for custom resource definitions, admission webhooks, and RBAC manifests to extend cluster functionality. The project distinguishes itself through marker-based code generation, which parses source code comments to automatically produce Kubernetes manifests and boilerplate logic. It employs a hub-and-spoke versioning model to translate data between multiple API versions and uses a three-way merge strategy to automate project migrat
Kububuilder is a foundational framework and scaffolding tool built specifically for developing Kubernetes APIs and custom controllers, offering robust support for custom resource definitions, webhook integration, and code generation.
The quarkus-operator-sdk is a Java extension and framework for building custom Kubernetes operators and controllers. It provides an operator framework that generates boilerplate classes, registers reconcilers, and automatically produces custom resource definitions, role-based access control rules, deployment manifests, and Helm charts directly from application code metadata. The framework supports compile-time configuration validation to catch errors before deployment, standard dependency injection wiring for clients and controllers, and static native image compilation for generating self-con
This Quarkus extension provides a Java-based framework for building and managing Kubernetes operators and controllers, matching the requested category even though it is tailored specifically for the Java ecosystem.
Sample Controller is a reference implementation and developer toolkit for building custom controllers and operators to extend cluster capabilities with domain-specific resource types and reconciliation loops. It provides a foundational framework for defining, registering, and validating custom resource definitions and their instances to store domain-specific data within a cluster. The framework observes remote API servers for resource mutations, queueing discovered instances for asynchronous processing while listening for creation, update, and deletion events to trigger reconciliation logic.
This repository provides an official, minimal reference implementation of a Kubernetes controller to help developers understand how to build custom operators against the client-go library, though it lacks the advanced abstraction features of full-fledged frameworks.
Shell-operator is a tool for running event-driven scripts in a Kubernetes cluster
Shell-operator is a lightweight tool for running scripts as Kubernetes operators based on cluster events, providing a simplified alternative to traditional controller frameworks though lacking full code generation and CRD scaffolding.
Kube-rs is a Rust client library and runtime for interacting with the Kubernetes API server. It provides a type-safe interface for managing cluster resources and state, including a toolkit for defining custom resource definitions and a framework for building admission webhooks to validate or mutate API requests. The project distinguishes itself through a dedicated controller runtime that implements event-driven reconciliation loops to align actual cluster state with desired configurations. It utilizes a streaming system to monitor resource changes and synchronize remote states into a local qu
Kube-rs is a low-level Rust client library and runtime for interacting with the Kubernetes API, which serves as a building block for writing controllers rather than an out-of-the-box higher-level operator development framework.
The Prometheus Operator is a Kubernetes monitoring orchestrator and controller that manages Prometheus clusters and observability components through declarative custom resources. It functions as a custom resource controller that translates high-level Kubernetes resource definitions into the configuration files required by the underlying monitoring software. The project automates the deployment, scaling, and lifecycle of an observability stack, including the integration of components like Thanos and Alertmanager. It distinguishes itself by syncing monitoring targets, alerting rules, and scrape
The Prometheus Operator is a specific pre-built monitoring controller rather than a general-purpose framework for building your own custom operators and controllers.
Sealed Secrets is a Kubernetes secret encryption tool and controller designed for GitOps security. It provides a mechanism to encrypt sensitive data into specialized resources that can be safely stored in public version control systems and decrypted only within a cluster. The system uses an asymmetric encryption manager to seal secrets with a public key, ensuring that only the corresponding private key held within the cluster can unseal them. It includes utilities for security key rotation, secret re-encryption, and offline private key recovery to maintain data access during disaster recovery
Sealed Secrets provides a Kubernetes controller for managing encrypted secrets in GitOps workflows, but it is a standalone security tool rather than a framework for building custom operators.
Strimzi is a Kubernetes operator that automates the deployment, management, and lifecycle of Apache Kafka clusters on Kubernetes or OpenShift. It uses custom resource definitions and declarative YAML configuration to define Kafka cluster topology, broker placement, and security settings, with operator-based controllers that reconcile the desired state with the actual cluster state. The operator handles rolling updates during cluster upgrades or configuration changes to maintain availability and data integrity, and supports rack-aware broker scheduling across Kubernetes nodes and availability
This repository provides a specific Kafka management operator rather than a general-purpose framework or tooling for building custom Kubernetes operators.
The etcd-operator is a custom resource controller designed to automate the deployment, scaling, backup, and recovery of distributed key-value storage clusters on container orchestration platforms. By extending container orchestration APIs with custom resource definitions, the system manages multi-node database instances through declarative configuration files and a continuous controller reconciliation loop that drives cluster provisioning, scaling, and maintenance. The operator provides automated cluster member recovery, detecting unresponsive nodes and executing membership replacements to pr
This repository is a specific etcd database operator rather than a general-purpose framework for building custom Kubernetes operators.
The logging operator is a Kubernetes-native controller designed to automate the deployment, configuration, and lifecycle management of log collection and routing infrastructure. By utilizing custom resource definitions, it provides a declarative framework for standardizing how container logs are captured, processed, and forwarded across distributed cluster environments. The project distinguishes itself through its support for multi-tenant logging architectures, allowing administrators to enforce namespace-scoped isolation for log collection and routing configurations. It employs a sidecar inj
The logging operator is a pre-built application specific to log management rather than a generalized framework for building custom operators and controllers.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| kubernetes-sigs/controller-runtime | 2.9K | Go | Apache-2.0 | |
| operator-framework/operator-sdk | 7.7K | Go | Apache-2.0 | |
| 9K |
| Go |
| apache-2.0 |
| quarkiverse/quarkus-operator-sdk | 143 | Java | Apache-2.0 |
| kubernetes/sample-controller | 3.5K | Go | Apache-2.0 |
| flant/shell-operator | 2.6K | Go | Apache-2.0 |
| kube-rs/kube | 3.7K | Rust | Apache-2.0 |
| prometheus-operator/prometheus-operator | 9.9K | Go | Apache-2.0 |
| bitnami-labs/sealed-secrets | 8.9K | Go | apache-2.0 |
| strimzi/strimzi-kafka-operator | 5.7K | Java | apache-2.0 |