Skip to content

Commit

Permalink
Initialize kubernetes client only if a kubernetes-requiring plugin is…
Browse files Browse the repository at this point in the history
… enabled
  • Loading branch information
damyan committed Sep 24, 2024
1 parent a9e131e commit 8686286
Showing 1 changed file with 35 additions and 4 deletions.
39 changes: 35 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ var desiredPlugins = []*plugins.Plugin{
}

var (
setupLog = ctrl.Log.WithName("setup")
setupLog = ctrl.Log.WithName("setup")
pluginsRequiringKubernetes = []string{"oob", "ipam", "metal"}
)

func main() {
Expand Down Expand Up @@ -103,9 +104,11 @@ func main() {
}

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

// start server
Expand All @@ -118,3 +121,31 @@ func main() {
setupLog.Error(err, "Failed to wait server")
}
}

func kubernetesEnvironmentNeeded(cfg *config.Config) bool {
if cfg.Server4 != nil {
for _, plugin := range cfg.Server4.Plugins {
if pluginNeedsKubernetes(plugin) {
return true
}
}
}
if cfg.Server6 != nil {
for _, plugin := range cfg.Server6.Plugins {
if pluginNeedsKubernetes(plugin) {
return true
}
}
}

return false
}

func pluginNeedsKubernetes(plugin config.PluginConfig) bool {
for _, name := range pluginsRequiringKubernetes {
if name == plugin.Name {
return true
}
}
return false
}

0 comments on commit 8686286

Please sign in to comment.