github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/cmd/networking-debug/main.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"flag"
     6  	"os"
     7  
     8  	"github.com/caos/orbos/internal/ctrlcrd"
     9  	"github.com/caos/orbos/internal/ctrlgitops"
    10  	"github.com/caos/orbos/pkg/git"
    11  	"github.com/caos/orbos/pkg/kubernetes/cli"
    12  
    13  	"github.com/caos/orbos/pkg/orb"
    14  
    15  	"github.com/caos/orbos/internal/helpers"
    16  	"github.com/caos/orbos/mntr"
    17  )
    18  
    19  func main() {
    20  	var orbconfig, kubeconfig, metricsAddr string
    21  	var verbose, gitopsmode bool
    22  
    23  	flag.StringVar(&orbconfig, "orbconfig", "~/.orb/config", "The orbconfig file to use")
    24  	flag.StringVar(&kubeconfig, "kc", "~/.kube/config", "The kubeconfig file to use")
    25  	flag.BoolVar(&verbose, "verbose", false, "Print debug levelled logs")
    26  	flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
    27  	flag.BoolVar(&gitopsmode, "gitopsmode", false, "defines if the operator should run in gitops mode not crd mode")
    28  
    29  	flag.Parse()
    30  
    31  	monitor := mntr.Monitor{
    32  		OnInfo:   mntr.LogMessage,
    33  		OnChange: mntr.LogMessage,
    34  		OnError:  mntr.LogError,
    35  	}
    36  
    37  	if verbose {
    38  		monitor = monitor.Verbose()
    39  	}
    40  
    41  	prunedPath := helpers.PruneHome(orbconfig)
    42  	orbConfig, err := orb.ParseOrbConfig(prunedPath)
    43  	if err != nil {
    44  		monitor.Error(err)
    45  		os.Exit(1)
    46  	}
    47  	gitClient := git.New(context.Background(), monitor, "orbos", "orbos@caos.ch")
    48  	kubeconfig = helpers.PruneHome(kubeconfig)
    49  	version := "networking-development"
    50  
    51  	if gitopsmode {
    52  
    53  		k8sClient, err := cli.Init(monitor, orbConfig, gitClient, kubeconfig, gitopsmode, true, false)
    54  		if err != nil {
    55  			monitor.Error(err)
    56  			os.Exit(1)
    57  		}
    58  		if err := ctrlgitops.Networking(context.Background(), monitor, orbConfig.Path, k8sClient, &version); err != nil {
    59  			monitor.Error(err)
    60  			os.Exit(1)
    61  		}
    62  	} else {
    63  		if err := ctrlcrd.Start(monitor, version, "/boom", metricsAddr, kubeconfig, ctrlcrd.Networking); err != nil {
    64  			monitor.Error(err)
    65  			os.Exit(1)
    66  		}
    67  	}
    68  }