1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-05 15:37:19 +00:00
kyverno/cmd/cli/kubectl-kyverno/main.go
Charles-Edouard Brétéché 9e5f19b899
fix: do not create UR for dryrun admission requests (#6649)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2023-03-22 15:29:42 +00:00

71 lines
1.8 KiB
Go

package main
import (
"flag"
"os"
"strconv"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/apply"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/jp"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/oci"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/test"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/version"
"github.com/spf13/cobra"
"k8s.io/klog/v2"
"k8s.io/klog/v2/klogr"
"sigs.k8s.io/controller-runtime/pkg/log"
)
const EnableExperimentalEnv = "KYVERNO_EXPERIMENTAL"
func main() {
cli := &cobra.Command{
Use: "kyverno",
Long: `To enable experimental commands, KYVERNO_EXPERIMENTAL should be configured with true or 1.`,
Short: "Kubernetes Native Policy Management",
}
configurelog(cli)
commands := []*cobra.Command{
version.Command(),
apply.Command(),
test.Command(),
jp.Command(),
}
if enableExperimental() {
commands = append(commands, oci.Command())
}
cli.AddCommand(commands...)
if err := cli.Execute(); err != nil {
os.Exit(1)
}
}
func enableExperimental() bool {
if b, err := strconv.ParseBool(os.Getenv(EnableExperimentalEnv)); err == nil {
return b
}
return false
}
func configurelog(cli *cobra.Command) {
// clear flags initialized in static dependencies
if flag.CommandLine.Lookup("log_dir") != nil {
flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
}
klog.InitFlags(nil)
cli.PersistentFlags().AddGoFlagSet(flag.CommandLine)
log.SetLogger(klogr.New())
_ = cli.PersistentFlags().MarkHidden("alsologtostderr")
_ = cli.PersistentFlags().MarkHidden("logtostderr")
_ = cli.PersistentFlags().MarkHidden("log_dir")
_ = cli.PersistentFlags().MarkHidden("log_backtrace_at")
_ = cli.PersistentFlags().MarkHidden("stderrthreshold")
_ = cli.PersistentFlags().MarkHidden("vmodule")
}