-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hiding CRD boilerplate / implementation detail from the locutus configuration #37
Comments
I think it's bit weird to reshape locutus. I think those two goals: A) Generating renderables Are two distinct features that's why It does not mean everything could be part of same project 馃 |
If you think it would make it clearer, I'm also happy with separating these into subcommands. Part of the reason why the |
Generally make sense, thanks for the quick response. This to me sounds like a nice separation of concerns 馃憤馃徑 +1 on render-only being a separate command. I understand the vision for making sure library-first works best, but do you think we should invest time to make However, I still think, especially with the library capabilities of Locutus that there is a space for tools that will replace the need of creating hacky scripts that are necessary for reliable locutus usage. What do I mean? Let's look at the existing project that uses Locutus: https://github.com/observatorium/operator In order to make all works, few things has to be created:
Those are things non trivial to create and maintain. For single project with smart people (like you @brancz), it will be just a few days of work, but in spectrum of adoption and sustainability: This will be a bit of blocker. And I would love to use similar for Thanos, and literally, every projects that runs in cloud (: And yes all of the above could done via some tool that generates those Makefile scripts and e.g basic layout, but this could be hard to maintain over time. It would be amazing to embed this into single tool long term like: https://github.com/observatorium/rndr which allows hiding a lot of this boilerplate from the project that can finally focus JUST on solid jsonnet deployments for various use cases. And someday... also not worrying of someone asking for helm, X, and Y and simply have a single source for generating all of this. I think that's all we want, no? 馃 So we could hide:
This is why cc @paulfantom @s-urbaniak @kakkoyun for awareness. |
This is part of https://github.com/observatorium/rndr goals, but @brancz asked me why some of that feature cannot be part of Locutus. Why not, let's discuss 馃
Triggered by valid offline @s-urbaniak question:
That's very good question. I skipped trigger and kind of replaced it by
api
inrndr
, because:Trigger (one off, interval, watch) is runtime specific option. We want to make sure we are not tied to runtime reactiveness on the tool side. Tigger is literally only a configuration to the generated operator. But there are other options like just generating raw YAML in right ordering for your own GitOps tools or even generating helm chart.
I believe tools like locutus/rndr should take non-CRD definition directly (proto / Go) and automatically generate CRD if needed. This allows non-Kubernetes and non Operator use cases (as mentioned above). We should hide boilerplate of CRD as the crd type changes very often, it's not human readable and leaks Kubernetes details. Why not asking for definition directly and generate CRD on tool/locutus side?
NOTE: By
non operator
model I mean generating resources, but this does not mean that specific operator is part of those resources (prometheus-operator, receiver-operator etc.I think this is main difference and reason why different tool focused on generation deployable resources vs operating might clearer (: WDYT?
The text was updated successfully, but these errors were encountered: