()
| 67 | } |
| 68 | |
| 69 | func main() { |
| 70 | // Zerolog uses json formatting by default, so change that to a human-readable format instead |
| 71 | log.Logger = log.Output(logging.RoutingLevelWriter{ |
| 72 | Writer: &zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: timeFormat, NoColor: true}, |
| 73 | ErrWriter: &zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: timeFormat, NoColor: true}, |
| 74 | }) |
| 75 | |
| 76 | signalChan := make(chan os.Signal, 1) |
| 77 | signal.Notify(signalChan, syscall.SIGTERM) |
| 78 | defer signal.Stop(signalChan) |
| 79 | |
| 80 | nthConfig, err := config.ParseCliArgs() |
| 81 | if err != nil { |
| 82 | log.Fatal().Err(err).Msg("Failed to parse cli args,") |
| 83 | } |
| 84 | |
| 85 | if nthConfig.JsonLogging { |
| 86 | log.Logger = zerolog.New(os.Stderr).With().Timestamp().Logger() |
| 87 | } |
| 88 | switch strings.ToLower(nthConfig.LogLevel) { |
| 89 | case "info": |
| 90 | zerolog.SetGlobalLevel(zerolog.InfoLevel) |
| 91 | case "debug": |
| 92 | zerolog.SetGlobalLevel(zerolog.DebugLevel) |
| 93 | case "error": |
| 94 | zerolog.SetGlobalLevel(zerolog.ErrorLevel) |
| 95 | } |
| 96 | |
| 97 | klog.SetLogger(zerologr.New(&log.Logger)) |
| 98 | |
| 99 | log.Info().Msgf("Using log format version %d", nthConfig.LogFormatVersion) |
| 100 | if err = logging.SetFormatVersion(nthConfig.LogFormatVersion); err != nil { |
| 101 | log.Warn().Err(err).Send() |
| 102 | } |
| 103 | if err = observability.SetReasonForKindVersion(nthConfig.LogFormatVersion); err != nil { |
| 104 | log.Warn().Err(err).Send() |
| 105 | } |
| 106 | |
| 107 | err = webhook.ValidateWebhookConfig(nthConfig) |
| 108 | if err != nil { |
| 109 | nthConfig.Print() |
| 110 | log.Fatal().Err(err).Msg("Webhook validation failed,") |
| 111 | } |
| 112 | |
| 113 | clusterConfig, err := rest.InClusterConfig() |
| 114 | if err != nil { |
| 115 | log.Fatal().Err(err).Msgf("retreiving cluster config") |
| 116 | } |
| 117 | clientset, err := kubernetes.NewForConfig(clusterConfig) |
| 118 | if err != nil { |
| 119 | log.Fatal().Err(err).Msgf("creating new clientset with config: %v", err) |
| 120 | } |
| 121 | node, err := node.New(nthConfig, clientset) |
| 122 | if err != nil { |
| 123 | nthConfig.Print() |
| 124 | log.Fatal().Err(err).Msg("Unable to instantiate a node for various kubernetes node functions,") |
| 125 | } |
| 126 |
nothing calls this directly
no test coverage detected