-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Move KEP-2845 to implementable #2912
Conversation
Looking at the proposal again from top to bottom again, I have one concern: Also, can you clarify what "follow standard component configuration mechanism" is? Make it a link perhaps? |
/assign @johnbelamaric @liggitt (for approval) |
/sig architecture |
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.
@serathius you have added me as PRR approver but the PRR questionnaire is not complete. Please fill it out, including the version skew sections (explain why they are not applicable).
I like @pohly comment, but otherwise I am happy to see this proceed. |
@ehashman Sorry for that, verify complained that I need PRR file, so I added it forgetting the questionnaire. |
@pohly For vmodule I'm still not sure what's the best solution. I see options:
My preferred option would be first as it makes it clearly delegates verbosity to logr. I don't think that any backend would ever have any verbosity specific logic. Only case I would backend would want to play with verbosity is when someone would want to write to two backends on different verbosity conditions. But I don't think loger composition is something we planned for. I'm not very involved with logr community, so I would depend on @thockin @pohly opinion for best action here. |
@pohly as for example of standard K8s flag configuration you can take a look here https://github.com/kubernetes/kubernetes/blob/4556873abf8aa88ce2ab40476267b0e9d4253366/staging/src/k8s.io/component-base/logs/options.go#L43
Current file differs a little as idea was expanded a little since. Instead of Options object having fileds directly we use Configuration object. The difference is that Configuration is an API object, meaning it can be passed via an API request. |
That's not how logr is currently designed. All
I don't think we should change the logr design. We can provide support code for implementing My preferred solution is to keep only "-v" as a mandatory option and implement "-vmodule" for output via klog and zapr. That means in practice it will remain available in Kubernetes. |
Updated KEP to not introduce breaking change or --logtostdout flag. I still think that would be a better long term decision, but we don't have quorum of reviewers to make it (OOO). |
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 better to me now. One nit about vmodule and a question around what we want to include now for split routing, but not a blocker IMHO.
temporary flags that will be removed at the same time as other klog flags. | ||
(kube-apiserver, kube-scheduler, kube-controller-manager, kubelet) and leave | ||
them with defaults. From klog flags we would remove all flags besides "-v" | ||
and "-vmodule". |
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.
Can we add:
Support for "-vmodule" will depend on the selected log format and be supported at least for the traditional "text" format.
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.
Added in section below
@@ -172,41 +170,12 @@ directly impacting log volume and component performance. | |||
|
|||
With removal of configuration alternatives we need to make sure that defaults | |||
make sense. List of logging features implemented by klog and proposed actions: | |||
* Routing logs based on type/verbosity - Should be reconsidered. | |||
* Routing logs based on type/verbosity - Feature removed. |
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.
We could promise to implement that for JSON output. But I prefer to keep that out of the KEP for now if that helps to get it merged.
If we want to include it, then here we could replace "Feature removed" with "Move into JSON backend" and below under "beta graduation" add "configuration of JSON backend implemented, providing at least message routing based on type and verbosity".
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.
Added to Alpha stage as I want to implement it in next release to unblock JSON graduation to Beta.
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.
/lgtm
I need to do a final review, but having skimmed the discussion, so long as log stream splitting is opt-in rather than the default, I think this is okay from a PRR perspective. As this was originally written, that became the new default, with single-stream logging being entirely deprecated, which was a blocker. Will complete my review today. |
/unassign |
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.
A few small comments on PRR. Just waiting on a review/:+1: from SIG Arch.
Looks good from Instrumentation perspective.
|
||
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)? | ||
|
||
Yes, there is no impact on cluster state. Logs should also be unaffected as logs |
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.
Question says "Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?" and this doesn't answer it. It should specify how to enable/disable.
In this case, there is no way to enable/disable as the feature is deprecating flags.
keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md
Outdated
Show resolved
Hide resolved
keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md
Outdated
Show resolved
Hide resolved
i support this effort and approve on behalf of sig-arch. @thockin if you get a chance please take a pass at the latest updates as well. /approve |
/label tide/merge-method-squash |
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.
/approve
/lgtm
for both SIG Instrumentation and PRR
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dims, ehashman, pohly, serathius The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
* Move KEP-2845 to implementable * Add PRR for kubernetes#2845 * Remove mention of --logtostdout flag in kubernetes#2845 * KEP kubernetes#2485: Require splitting stdout/stderr to Json format * Add pohly as reviewer for KEP 2845 * kubernetes#2845 Update PRR * kubernetes#2845 Add dims as SIG arch approver
* Move KEP-2845 to implementable * Add PRR for kubernetes#2845 * Remove mention of --logtostdout flag in kubernetes#2845 * KEP kubernetes#2485: Require splitting stdout/stderr to Json format * Add pohly as reviewer for KEP 2845 * kubernetes#2845 Update PRR * kubernetes#2845 Add dims as SIG arch approver
Sending PR to move KEP-2845 to implementable to start discussion as there is not a lot of time before code freeze.
Proposal: https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md
Assigning people that already volunteered to review the KEP. Thanks for offering help!
/assign @ehashman @pohly
Still looking for approver from SIG-Arch side:
@dims, @thockin, @liggitt, @johnbelamaric
Could one of you become KEP approver?