Hacker News new | ask | show | jobs
by richardwhiuk 1198 days ago
No, you don't. You can have a CR, and implement an Operator which just watches the CR and acts upon it.
1 comments

a controller is an operator without crd. its in the name control and operate.

controlling refers to directing or regulating the behavior of something, while operating refers to the actual execution or manipulation.

Most operators don't implement the API server.

They watch for their CR changing and then act on it - usually by making requests to the API server to create/update/delete objects (e.g. a operator for a database might make Pod creation requests when it spots the FooDatabase CR being created)

or some operators are wrongly named =)

In essence, a controller is like a general-purpose manager for built-in K8s resources, while an operator is a specialized manager tailored for specific applications and tasks. Operators are built on top of the controller pattern, so you can think of them as the next level up in the K8s automation!

but i will agree on that i have seen people develop controllers with the operator sdk where mostly the Kubernetes client libraries would have been more than enough.