-
Notifications
You must be signed in to change notification settings - Fork 11
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Observability API #97
base: main
Are you sure you want to change the base?
Conversation
34cb471
to
3b91376
Compare
afbb0c4
to
2864c28
Compare
4b9fc27
to
19b1fdb
Compare
So discussed with @R-Lawton in person, but there seems to be some redundancy in the configuration and needs a user to understand the names and configuration options for underlying components. Also a separate CRD doesn't seem needed IMO if we condense the config I think we can simplify this down somewhat into a two phase approach
Where by default it is set to We can then expand beyond this in a second phase add comming configmap for expressing observability values that can be loaded as env vars (logging for example) so that it changes all components including the operators . Add in new options around alerts and dashboards as needed. The status of the kuadrant resource can reflect what has been configured:
WDYT @Boomatang @R-Lawton |
By default the log level is info, what are your thoughts about changing it to error? |
To me this makes sense, I do think we need the focus more on the action being preformed over the component being configured. How I see this now is we should remove the current ability to configure Limitador from the kuadrant CR in favor of the more action based configuration. If you have not seen the discussion, #102 that suggest removing the work done for RFC0006 I will take your comment as the answer for that discussion. After talking with @R-Lawton, we can not see any iteration of this RFC that would not require the removal of the past configuration implantation. So I have opened a PR to remove that work, Kuadrant/kuadrant-operator#795 |
c5dbdbc
to
d0ff168
Compare
Signed-off-by: R-Lawton <[email protected]> Signed-off-by: R-Lawton <[email protected]>
478cd8e
to
81b6211
Compare
ee05ec6
to
f4e97e3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks generally good, I've left some minor suggestions 👍
…e location to the Kuadrant CR Signed-off-by: R-Lawton <[email protected]> Signed-off-by: R-Lawton <[email protected]>
2dd0563
to
ed868d7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 👍
As this would be configured inside the kuadrant CR, it would be worth looking at #112 as it is trying to define a standardized API design for new features added to the kuadrant CR |
Wanted to call out that there is a dicussion and investigation outlined here about some of these areas |
Since the Kuadrant CRD is v1, I don't see any avenue to trying things out with new APIs exposed through the Kuadrant CR. @maleck13 @Boomatang @KevFan @R-Lawton @guicassolato What are your thoughts on exploring new APIs through a separate CRD. In this case, that would be an Observability CRD at v1alpha1. I worry that the outcome of discussions and linked topics in Kuadrant/kuadrant-operator#1130 could end up stifling or delaying potential improvements and new features while we agonise over getting the perfect API. |
The Kuadrant CRD is not v1 at the moment (correctly or incorrectly) https://github.com/Kuadrant/kuadrant-operator/blob/main/config/install/configure/standard/kuadrant.yaml |
Apologies, you're right. I'd still be interested in peoples thoughts on the above argument about using a separate v1alpha1 CRD to introduce this new feature. |
Why yet another CRD? As this would be a very experimental feature, would it not be better to use a configmap with labels for the first pass at least. Once the structure has being refined a bit more, then we can look at creating a dedicated CRD or moving it into Kuadrant CRD. One advantage of using a configmap would be allowing the feature to be behind a feature flag that doesn't require the installation of a CRD. There is currently similar things happening in kuadrant operator turning on and off workflows based on the CRDs installed for the different supported gateways. The same concept can work for a feature flag. If you are wanting to get this in front of user fast, I think the configmap is the fastest approach. |
I like CRDs. To me, they make configuration feel more controlled and kube native. That being said, if there's push back on a CRD approach, the configmap solution can certainly work as you've outlined, and in a safe way.
There's no users screaming out for this. |
@david-martin Personally, I'm leaning towards just prototyping with the Kuadrant CR regardless of its current API version since the RFC "consenus" (at the moment) is to use the Kuadrant CR to configure Observability. I don't think we should care too much on complicating the versioning of the I like the general conventions set by the k8s api for introducing any changes to their api and the understanding of "the internal representation of an API object is decoupled from any one API version": We can prototype this as a non-breaking change to either I'm guessing what may add to this complexity and what would affect deciding on whether we want to or not use the Kuadrant CR to prototype with this approach is possibly the upgrades and release differences with upstream and downstream 🤔 (e.g. upstream with many releases now at If the goal is to just experiment quick on observability, then a separate CRD makes sense that I'm not totally against anyhow. |
What are people's thoughts on the original suggestion of the observability CR? After a discussion i had with Jim, I think the observability policy is good but I would like others' opinions too.