Java-based operators is the  JVM Operator Toolkit , which provides a foundation for creating operators in Java and JVM-based languages like Groovy or Kotlin and also comes with a set of examples. While we have seen how to extend the Kubernetes platform,  Operators  are still not a silver bullet. Before using an operator, you should carefully look at your use case to determine whether it fits the Kubernetes paradigm. In many cases, a plain  Controller  working with standard resources is good enough. This approach has the advantage that it doesn’t need any cluster-admin permission to register a CRD but has its limitations when it comes to security or validation. An  Operator  is a good fit for modeling a custom domain logic that fits nicely with the declarative Kubernetes way of handling resources with reactive controllers. More specifically, consider using an  Operator  with CRDs for your application domain for any of the following situations: If your custom use case fits these criteria, but you need more flexibility in how cus‐ tom resources can be implemented and persisted, consider using a custom API Server. However, you should also not consider Kubernetes extension points as the golden hammer for everything. If your use case is not declarative, if the data to manage does not fit into the Kuber‐ netes resource model, or you don’t need a tight integration into the platform, you are probably better off writing your standalone API and exposing it with a classical Ser‐ vice or Ingress object. The Kubernetes documentation itself also has a chapter for suggestions on when to use a  Controller ,  Operator , API aggregation, or custom API implementation. Discussion  |  201 • You want tight integration into the already existing Kubernetes tooling like kubectl . • You are at a greenfield project where you can design the application from the ground up. • You benefit from Kubernetes concepts like resource paths, API groups, API ver‐ sioning, and especially namespaces. • You want to have already good client support for accessing the API with watches, authentication, role-based authorization, and selectors for metadata. Discussion