-
Task
-
Resolution: Unresolved
-
Normal
-
None
-
None
-
None
-
None
-
Future Sustainability
-
False
-
-
False
-
-
When working on ROX-27789 I stumbled upon a few interesting ideas and comments about operators which deserve at least a closer look.
- It’s easy to get the CRD generation wrong: required/optionall, nil/null, see [ahmetb-blog-crd-generation-pitfalls]
- Top-level Ready condition, suggested by Kubernetes API conventions suggest. Other controllers and humans consume this top-level condition to understand how the objects are doing (plus you get to use kubectl cond on your objects).
- Provide observedGeneration to let clients know which version was acted on.
And when working on ROX-29101 I noticed a few more best practices that we currently violate (like special tags on lists). One can see them by running crd-schema-checker.
[ahmetb-blog-controller-pitfalls] Blog: controller-pitfalls https://ahmet.im/blog/controller-pitfalls/index.html
[ahmetb-blog-crd-generation-pitfalls] Blog: CRD Generation Pitfalls https://ahmet.im/blog/crd-generation-pitfalls