Skip to content

fix: honor -stderrthreshold by opting out of legacy klog behavior#454

Draft
pierluigilenoci wants to merge 1 commit intoFairwindsOps:masterfrom
pierluigilenoci:fix/honor-stderrthreshold
Draft

fix: honor -stderrthreshold by opting out of legacy klog behavior#454
pierluigilenoci wants to merge 1 commit intoFairwindsOps:masterfrom
pierluigilenoci:fix/honor-stderrthreshold

Conversation

@pierluigilenoci
Copy link
Copy Markdown

Summary

klog v2 defaults -logtostderr=true, which causes the -stderrthreshold flag
to be silently ignored (kubernetes/klog#212).
This means users cannot control which severity levels are routed to stderr.

klog v2.140.0 introduced the legacy_stderr_threshold_behavior flag to fix
this (kubernetes/klog#432).
Nova already depends on klog v2.140.0, so the fix only requires opting in.

What changed

In cmd/root.go, right after klog.InitFlags(nil) and before the existing
flag.Set calls, two new flags are set:

_ = flag.Set("legacy_stderr_threshold_behavior", "false")
_ = flag.Set("stderrthreshold", "INFO")
  • legacy_stderr_threshold_behavior=false — tells klog to respect
    -stderrthreshold even when -logtostderr=true.
  • stderrthreshold=INFO — routes INFO and above to stderr (matching the
    current effective behavior, now explicitly declared).

Why

Without this change, passing -stderrthreshold=WARNING (or any other value) to
Nova has no effect — all log levels still go to stderr because -logtostderr
overrides everything. After this change, users can filter stderr output by
severity as intended.

References

klog v2 defaults -logtostderr=true, which causes -stderrthreshold to be
silently ignored (kubernetes/klog#212). klog v2.140.0 introduced the
legacy_stderr_threshold_behavior flag to restore correct behavior
(kubernetes/klog#432).

Set legacy_stderr_threshold_behavior=false and stderrthreshold=INFO
right after klog.InitFlags(nil) so that users can control log severity
routing to stderr as intended.

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant