Closed shanduur closed 4 months ago
Both Operator-SDK and Kubebuilder are state of the art tools. However my personal preference lays with Kubebuilder:
Discard my comment, the project generated by two tools is almost identical, so no need to worry about OSDK.
I generated scaffolding with both kubebuilder
and operator-sdk
to check what is the difference.
List of what operator-sdk
generates that is not generated by kubebuilder
:
Basic development flow is the same for both projects:
kubebuilder create api --group ship --version v1beta1 --kind Frigate
or
operator-sdk create api --group ship --version v1beta1 --kind Frigate
make docker-build
to build imagemake docker-push
to push imagemake deploy
to deploy on clusterIf we want to support OLM I don't see a reason to not scaffold with operator-sdk
. If we get automation in place to test the OLM installation and run Scorecard tests I don't think there is any added complexity (apart from thinking about OLM installation if something breaks).
Do we want to seriously consider Rust? I think this would change the scope of the project for initial contributors from writing an operator to learning Rust and writing an operator? I would be up for the challenge but I think we would need to be unanimous in this decision.
As I really would like to use Rust, I am nowhere near to be proficient in it, and writing the operator would probably require using Tokio, which is one extra level of complexity.
Also, if no one of us is proficient, then I feel like the quality of code and development speed would suffer.
I also tested the OSDK vs KB, and yeah, seems fine to me to use the former one 🔥
CC: @majabojarska @malgorzatadutka
I'd like to be proficient in Go rather than starting with new language. The second thought Kubebuilder and Operator-SDK are more mature.
Looks like we have a consensus - let's use Operator-SDK to bootstrap the repository!
Context and Problem Statement
The registry-operator should be a critical component in managing CNCF Distribution Registry instances efficiently. However, selecting the appropriate base operator/controller framework is pivotal for ensuring the scalability, maintainability, and extensibility of the registry-operator.
Considerations:
registry-operator
;Considered Options