mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-21 17:15:35 +00:00
kubectl command construction is slowly getting more functionality which sometimes requires to log certain actions. Currently we parse the verbosity only when actually running the command, so all of construction code is not able to use -v=5. This commit adds the manual parsing and loglevel setting berore we even start creating the kubectl command. Signed-off-by: Maciej Szulik <soltysh@gmail.com>
45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
/*
|
|
Copyright 2014 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"k8s.io/component-base/cli"
|
|
"k8s.io/component-base/logs"
|
|
"k8s.io/kubectl/pkg/cmd"
|
|
"k8s.io/kubectl/pkg/cmd/util"
|
|
|
|
// Import to initialize client auth plugins.
|
|
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
|
)
|
|
|
|
func main() {
|
|
// We need to manually parse the arguments looking for verbosity flag and
|
|
// set appropriate level here, because in the normal flow the flag parsing,
|
|
// including the logging verbosity, happens inside cli.RunNoErrOutput.
|
|
// Doing it here ensures we can continue using klog during kubectl command
|
|
// construction, which includes handling plugins and parsing .kuberc file,
|
|
// for example.
|
|
logs.GlogSetter(cmd.GetLogVerbosity(os.Args)) // nolint:errcheck
|
|
command := cmd.NewDefaultKubectlCommand()
|
|
if err := cli.RunNoErrOutput(command); err != nil {
|
|
// Pretty-print the error and exit with an error.
|
|
util.CheckErr(err)
|
|
}
|
|
}
|