That, or YAML, then a tool to template and generate the YAML, and then a stack of tools wrapped around that, ad infinitum.
A little learning is the cost of not having to write the thing yourself. On the other hand, hell is the non-composable tower of babel that is computing. Total employment by exponentially compounding incidental complexity.
The amount of arbitrary glue, configuration and "cool things" I need to learn-and-forget for every new project is an order of magnitude less than any other language I've used in anger.
Pick up docker or kubernetes and you'll have to learn plenty of stuff. Pick up ory/hydra to do auth in go, same thing.
Check out the age (from FiloSottile) or the rage (Rust port) codebase and they require similar level of understanding.
But all I can think of when I see custom operators professionally is how much of a nightmare it would be the second one has to onboard a junior developer onto the project.
Generally, any language with a type system advanced enough.