Skip to content

Commit

Permalink
temp
Browse files Browse the repository at this point in the history
  • Loading branch information
damyan committed Dec 19, 2024
1 parent c2b6158 commit 11b6e1b
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
// SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and IronCore contributors
// SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and IronCore contributors
// SPDX-License-Identifier: MIT

package main

import (
"flag"
"fmt"
"github.com/sirupsen/logrus"
"os"

"github.com/coredhcp/coredhcp/logger"

"github.com/coredhcp/coredhcp/config"
"github.com/coredhcp/coredhcp/plugins"
"github.com/coredhcp/coredhcp/plugins/autoconfigure"
Expand Down Expand Up @@ -35,8 +38,6 @@ import (
"github.com/ironcore-dev/fedhcp/plugins/oob"
"github.com/ironcore-dev/fedhcp/plugins/pxeboot"
"k8s.io/apimachinery/pkg/util/sets"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
)

var desiredPlugins = []*plugins.Plugin{
Expand Down Expand Up @@ -65,61 +66,63 @@ var desiredPlugins = []*plugins.Plugin{
}

var (
setupLog = ctrl.Log.WithName("setup")
log = logger.GetLogger("main")
pluginsRequiringKubernetes = sets.New[string]("oob", "ipam", "metal")
)

func main() {
var configFile string
var configFile, logLevel string
var listPlugins bool

flag.StringVar(&configFile, "config", "", "config file")
flag.BoolVar(&listPlugins, "list-plugins", false, "list plugins")
opts := zap.Options{
Development: true,
}
opts.BindFlags(flag.CommandLine)
flag.StringVar(&logLevel, "loglevel", "info", "log level (debug, info, warning, error, fatal, panic)")
flag.Parse()

ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))

if listPlugins {
for _, p := range desiredPlugins {
fmt.Println(p.Name)
}
os.Exit(0)
}

level, err := logrus.ParseLevel(logLevel)
if err != nil {
fmt.Println("Invalid log level specified: ", err)
os.Exit(1)
}
logrus.SetLevel(level)

cfg, err := config.Load(configFile)
if err != nil {
setupLog.Error(err, "Failed to load configuration", "ConfigFile", configFile)
log.Fatalf("Failed to load configuration %s: %v", configFile, err)
os.Exit(1)
}

// register plugins
for _, plugin := range desiredPlugins {
if err := plugins.RegisterPlugin(plugin); err != nil {
setupLog.Error(err, "Failed to register plugin", "Plugin", plugin.Name)
log.Fatalf("Failed to register plugin '%s': %v", plugin.Name, err)
os.Exit(1)
}
}

// initialize kubernetes client, if needed
if shouldSetupKubeClient(cfg) {
if err := kubernetes.InitClient(); err != nil {
setupLog.Error(err, "Failed to initialize kubernetes client")
log.Fatalf("Failed to initialize kubernetes client: %v", err)
os.Exit(1)
}
}

// start server
srv, err := server.Start(cfg)
if err != nil {
setupLog.Error(err, "Failed to start server")
log.Fatalf("Failed to start server: %v", err)
os.Exit(1)
}
if err := srv.Wait(); err != nil {
setupLog.Error(err, "Failed to wait server")
log.Fatalf("Failed to wait server: %v", err)
}
}

Expand Down

0 comments on commit 11b6e1b

Please sign in to comment.