diff --git a/cmd/recorder/main.go b/cmd/recorder/main.go index 185daf82709..aca6b1b58d5 100644 --- a/cmd/recorder/main.go +++ b/cmd/recorder/main.go @@ -73,6 +73,11 @@ func run(ctx context.Context) error { // Support default klog verbosity (so that we can see client-go traffic) klogFlagSet := goflag.NewFlagSet("klog", goflag.ExitOnError) klog.InitFlags(klogFlagSet) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + _ = klogFlagSet.Set("legacy_stderr_threshold_behavior", "false") + _ = klogFlagSet.Set("stderrthreshold", "INFO") flag.CommandLine.AddGoFlag(klogFlagSet.Lookup("v")) flag.CommandLine.AddGoFlagSet(goflag.CommandLine) diff --git a/dev/tasks/main.go b/dev/tasks/main.go index ec175b805cf..0246b1a651a 100644 --- a/dev/tasks/main.go +++ b/dev/tasks/main.go @@ -58,6 +58,11 @@ func run(ctx context.Context) error { addVPrefix := false flag.BoolVar(&addVPrefix, "add-v-prefix", addVPrefix, "prefix tag with 'v'") klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck flag.Parse() if branch == "" { diff --git a/dev/tools/controllerbuilder/cmd/benchmark/type/main.go b/dev/tools/controllerbuilder/cmd/benchmark/type/main.go index ed8f935ad85..e12718e95a5 100644 --- a/dev/tools/controllerbuilder/cmd/benchmark/type/main.go +++ b/dev/tools/controllerbuilder/cmd/benchmark/type/main.go @@ -46,6 +46,11 @@ func run(ctx context.Context) error { var o Options klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck flag.StringVar(&o.predictPath, "predict-path", o.predictPath, "the path to the bash script where the prediction job is run.") flag.StringVar(&o.BaseDir, "base-dir", o.BaseDir, "base directory for the project code") diff --git a/dev/tools/controllerbuilder/cmd/codebot/main.go b/dev/tools/controllerbuilder/cmd/codebot/main.go index df9c3f32bdd..4176407d7ae 100644 --- a/dev/tools/controllerbuilder/cmd/codebot/main.go +++ b/dev/tools/controllerbuilder/cmd/codebot/main.go @@ -68,6 +68,11 @@ func (cb *CodeBot) run(ctx context.Context) error { o.InitDefaults() klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck flag.StringVar(&o.ProtoDir, "proto-dir", o.ProtoDir, "base directory for checkout of proto API definitions") flag.StringVar(&o.BaseDir, "base-dir", o.BaseDir, "base directory for the project code") diff --git a/dev/tools/controllerbuilder/cmd/ctf/main.go b/dev/tools/controllerbuilder/cmd/ctf/main.go index 1bae1380ce1..fe91c1d8d5e 100644 --- a/dev/tools/controllerbuilder/cmd/ctf/main.go +++ b/dev/tools/controllerbuilder/cmd/ctf/main.go @@ -49,6 +49,11 @@ func run(ctx context.Context) error { options.AddFlags(flag.CommandLine) klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck flag.Parse() if scenario == "" { diff --git a/dev/tools/controllerbuilder/go.mod b/dev/tools/controllerbuilder/go.mod index 8e98957e07c..284872d29ff 100644 --- a/dev/tools/controllerbuilder/go.mod +++ b/dev/tools/controllerbuilder/go.mod @@ -20,7 +20,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 k8s.io/apimachinery v0.34.2 k8s.io/klog v1.0.0 - k8s.io/klog/v2 v2.130.1 + k8s.io/klog/v2 v2.140.0 sigs.k8s.io/yaml v1.6.0 ) diff --git a/dev/tools/controllerbuilder/go.sum b/dev/tools/controllerbuilder/go.sum index 4c8aac4f2ef..73c5998fec2 100644 --- a/dev/tools/controllerbuilder/go.sum +++ b/dev/tools/controllerbuilder/go.sum @@ -335,7 +335,7 @@ k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/experiments/tools/licensescan/go.mod b/experiments/tools/licensescan/go.mod index ea303e8708c..61fb4d01119 100644 --- a/experiments/tools/licensescan/go.mod +++ b/experiments/tools/licensescan/go.mod @@ -7,7 +7,7 @@ toolchain go1.26.1 require ( github.com/spf13/cobra v1.8.1 golang.org/x/mod v0.33.0 - k8s.io/klog/v2 v2.130.1 + k8s.io/klog/v2 v2.140.0 sigs.k8s.io/yaml v1.4.0 ) diff --git a/experiments/tools/licensescan/go.sum b/experiments/tools/licensescan/go.sum index c95399a1a7b..894e7700846 100644 --- a/experiments/tools/licensescan/go.sum +++ b/experiments/tools/licensescan/go.sum @@ -15,7 +15,7 @@ golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/experiments/tools/licensescan/main.go b/experiments/tools/licensescan/main.go index f25d5bf9e14..17c61f9545b 100644 --- a/experiments/tools/licensescan/main.go +++ b/experiments/tools/licensescan/main.go @@ -21,6 +21,7 @@ import ( "debug/buildinfo" "embed" "encoding/json" + "flag" "fmt" "io" "io/fs" @@ -59,6 +60,11 @@ func buildRootCommand() *cobra.Command { cmd.AddCommand(buildLicenseGenerateCommand()) klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck return cmd } diff --git a/go.mod b/go.mod index 2a09007ea28..050fe4ff2c0 100644 --- a/go.mod +++ b/go.mod @@ -130,7 +130,7 @@ require ( k8s.io/apiextensions-apiserver v0.33.10 k8s.io/apimachinery v0.33.10 k8s.io/client-go v0.33.10 - k8s.io/klog/v2 v2.130.1 + k8s.io/klog/v2 v2.140.0 sigs.k8s.io/controller-runtime v0.20.4 sigs.k8s.io/controller-tools v0.16.5 sigs.k8s.io/kubebuilder-declarative-pattern v0.20.0-beta.1.0.20250514194322-871029137730 @@ -333,7 +333,7 @@ replace ( k8s.io/client-go => k8s.io/client-go v0.33.10 k8s.io/code-generator => k8s.io/code-generator v0.33.10 k8s.io/component-base => k8s.io/component-base v0.33.10 - k8s.io/klog/v2 => k8s.io/klog/v2 v2.130.1 + k8s.io/klog/v2 => k8s.io/klog/v2 v2.140.0 k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff k8s.io/kubectl => k8s.io/kubectl v0.32.1 sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.4.0 diff --git a/go.sum b/go.sum index a0ae7c582fd..90bbaed1baf 100644 --- a/go.sum +++ b/go.sum @@ -3782,8 +3782,8 @@ k8s.io/component-base v0.33.10/go.mod h1:SXzog0UR4MeP6ZwZFdt7g64X83BS+brXdDHQ6m4 k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kms v0.33.10/go.mod h1:C1I8mjFFBNzfUZXYt9FZVJ8MJl7ynFbGgZFbBzkBJ3E= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= diff --git a/mockgcp/go.mod b/mockgcp/go.mod index 7da0042b8a7..1533ee18c0c 100644 --- a/mockgcp/go.mod +++ b/mockgcp/go.mod @@ -52,7 +52,7 @@ require ( google.golang.org/protobuf v1.36.11 k8s.io/api v0.33.10 k8s.io/apimachinery v0.33.10 - k8s.io/klog/v2 v2.130.1 + k8s.io/klog/v2 v2.140.0 sigs.k8s.io/controller-runtime v0.20.4 sigs.k8s.io/yaml v1.6.0 ) diff --git a/mockgcp/go.sum b/mockgcp/go.sum index 3a8276d6954..bb4bde30684 100644 --- a/mockgcp/go.sum +++ b/mockgcp/go.sum @@ -279,8 +279,8 @@ github.com/go-git/go-billy/v5 v5.8.0 h1:I8hjc3LbBlXTtVuFNJuwYuMiHvQJDq1AT6u4DwDz github.com/go-git/go-billy/v5 v5.8.0/go.mod h1:RpvI/rw4Vr5QA+Z60c6d6LXH0rYJo0uD5SqfmrrheCY= github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= -github.com/go-git/go-git/v5 v5.17.1 h1:WnljyxIzSj9BRRUlnmAU35ohDsjRK0EKmL0evDqi5Jk= -github.com/go-git/go-git/v5 v5.17.1/go.mod h1:pW/VmeqkanRFqR6AljLcs7EA7FbZaN5MQqO7oZADXpo= +github.com/go-git/go-git/v5 v5.18.0 h1:O831KI+0PR51hM2kep6T8k+w0/LIAD490gvqMCvL5hM= +github.com/go-git/go-git/v5 v5.18.0/go.mod h1:pW/VmeqkanRFqR6AljLcs7EA7FbZaN5MQqO7oZADXpo= github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -494,8 +494,8 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= -github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/spdystream v0.5.1 h1:9sNYeYZUcci9R6/w7KDaFWEWeV4LStVG78Mpyq/Zm/Y= +github.com/moby/spdystream v0.5.1/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -861,8 +861,8 @@ k8s.io/client-go v0.33.10 h1:Q3KkTB0zPnGlrs6mS2p6LaJ2zM5ehBVz0JO9ZKQied0= k8s.io/client-go v0.33.10/go.mod h1:pEg4JnHgHR+m6tZ23SUWj+md2iPdszmVG8KD9/pHtec= k8s.io/component-base v0.33.10 h1:lqF51ldyCT3723fwmFZ3B/GLEY4s33VBjrw2GOGyfIA= k8s.io/component-base v0.33.10/go.mod h1:SXzog0UR4MeP6ZwZFdt7g64X83BS+brXdDHQ6m4Tnd0= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4= k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8= k8s.io/kubectl v0.32.1 h1:/btLtXLQUU1rWx8AEvX9jrb9LaI6yeezt3sFALhB8M8= diff --git a/mockgcp/tools/gapic/main.go b/mockgcp/tools/gapic/main.go index 0adbb02db46..0d27c79e60b 100644 --- a/mockgcp/tools/gapic/main.go +++ b/mockgcp/tools/gapic/main.go @@ -41,6 +41,11 @@ func main() { func run(ctx context.Context) error { klog.InitFlags(nil) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + flag.Set("legacy_stderr_threshold_behavior", "false") //nolint:errcheck + flag.Set("stderrthreshold", "INFO") //nolint:errcheck var opt protogen.ConvertOptions opt.NormalizeLRO = true diff --git a/pkg/cli/cmd/preview/execute.go b/pkg/cli/cmd/preview/execute.go index 5f17c522f9b..cd0793969ba 100644 --- a/pkg/cli/cmd/preview/execute.go +++ b/pkg/cli/cmd/preview/execute.go @@ -41,6 +41,11 @@ func Execute(ctx context.Context, opts *Options) error { // Use a custom FlagSet for klog to avoid conflicts with global flag.CommandLine klogFlags := flag.NewFlagSet("klog", flag.ExitOnError) klog.InitFlags(klogFlags) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + _ = klogFlags.Set("legacy_stderr_threshold_behavior", "false") + _ = klogFlags.Set("stderrthreshold", "INFO") if err := klogFlags.Set("v", fmt.Sprintf("%d", opts.Verbose)); err != nil { fmt.Printf("Failed to set -v flag: %v\n", err) } diff --git a/pkg/test/main/testmain.go b/pkg/test/main/testmain.go index 66047e1c0c3..00d153b38ce 100644 --- a/pkg/test/main/testmain.go +++ b/pkg/test/main/testmain.go @@ -51,6 +51,11 @@ func ForIntegrationTests(m *testing.M, mgr *manager.Manager) { klogFlags := flag.NewFlagSet("klog", flag.ExitOnError) klog.InitFlags(klogFlags) + // Opt into the new klog behavior so that -stderrthreshold is honored even + // when -logtostderr=true (the default). + // Ref: kubernetes/klog#212, kubernetes/klog#432 + _ = klogFlags.Set("legacy_stderr_threshold_behavior", "false") + _ = klogFlags.Set("stderrthreshold", "INFO") // Sync the log and klog flags. flag.CommandLine.VisitAll(func(f1 *flag.Flag) {