Skip to content
Snippets Groups Projects
Commit 3168c11e authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

Add opt to set default grpc scheme to passthrough


See merge request !900

Co-authored-by: default avatarMalte Bauch <malte.bauch@h-da.de>
parent e79b6ead
No related branches found
No related tags found
1 merge request!900Add opt to set default grpc scheme to passthrough
Pipeline #201755 passed
......@@ -36,6 +36,7 @@ import (
"os"
"code.fbi.h-da.de/danet/gosdn/cli/adapter"
"google.golang.org/grpc/resolver"
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
......@@ -45,6 +46,7 @@ import (
var cfgFile string
var verbose bool
var gRPCPassthrough bool
var loglevel string
var grpcPort string
var cliPnd string
......@@ -85,6 +87,7 @@ func init() {
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (./.gosdnc.toml)")
rootCmd.PersistentFlags().StringVarP(&loglevel, "log-level", "l", "", "log level 'debug' or 'trace'")
rootCmd.PersistentFlags().BoolVar(&verbose, "verbose", false, "show mne and sbi info")
rootCmd.PersistentFlags().BoolVar(&gRPCPassthrough, "grpcPassthrough", true, "set the default resolve scheme for grpc to passthrough, default is true")
rootCmd.Flags().StringVar(&grpcPort, "grpc-port", "55055", "port for gRPC NBI")
}
......@@ -147,6 +150,13 @@ func initConfig() {
cliPnd = uuid.New().String()
}
if gRPCPassthrough {
log.Info("Setting gRPC default resolver scheme to passthrough. No DNS queries are being made when doing a gRPC request.")
resolver.SetDefaultScheme("passthrough")
} else {
log.Info("gRPC default resolver scheme is not set to passthrough. This might cause issues with the gRPC connection when no real DNS server is available as each gRPC requests requires a DNS request.")
}
adapter, err := adapter.NewPndAdapter(cliPnd, viper.GetString("controllerAPIEndpoint"))
if err != nil {
log.Fatal(err)
......
......@@ -52,6 +52,7 @@ var csbiOrchestrator string
var pluginRegistry string
var pluginFolder string
var security string
var gRPCPassthrough bool
// rootCmd represents the base command when called without any subcommands.
var rootCmd = &cobra.Command{
......@@ -86,6 +87,7 @@ func init() {
rootCmd.Flags().StringVar(&pluginRegistry, "plugin-registry", "", "plugin registry address")
rootCmd.Flags().StringVar(&pluginFolder, "plugin-folder", "", "folder holding all goSDN specific plugins")
rootCmd.Flags().StringVarP(&security, "security", "s", "", "security level 'secure' or 'insecure'")
rootCmd.Flags().BoolVar(&gRPCPassthrough, "grpcPassthrough", true, "set the default resolve scheme for grpc to passthrough, default is true")
}
const (
......
......@@ -18,6 +18,7 @@ import (
"golang.org/x/crypto/argon2"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/resolver"
apppb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/app"
cmpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
......@@ -201,6 +202,14 @@ func setupPluginRegistryClient() rpb.PluginRegistryServiceClient {
}
func startGrpc() error {
passthrough := viper.GetBool("passthrough")
if passthrough {
log.Info("Setting gRPC default resolver scheme to passthrough. No DNS queries are being made when doing a gRPC request.")
resolver.SetDefaultScheme("passthrough")
} else {
log.Info("gRPC default resolver scheme is not set to passthrough. This might cause issues with the gRPC connection when no real DNS server is available as each gRPC requests requires a DNS request.")
}
socket := viper.GetString("socket")
lislisten, err := net.Listen("tcp", socket)
if err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment