in grpc-xds/control-plane-go/cmd/cmd.go [30:65]
func Run(ctx context.Context, flagset *flag.FlagSet, args []string) error {
ctx = signals.SetupSignalHandler(ctx)
logging.InitFlags(flagset)
informers.InitFlags(flagset)
if err := flagset.Parse(args); err != nil {
return fmt.Errorf("could not parse command line flags args=%+v: %w", args, err)
}
logger := logging.NewLogger()
logging.SetGRPCLogger(logger)
ctx = logging.NewContext(ctx, logger)
auth.RegisterAll(ctx, logger)
servingPort, err := config.ServingPort()
if err != nil {
return fmt.Errorf("could not configure management server listening port: %w", err)
}
healthPort, err := config.HealthPort()
if err != nil {
return fmt.Errorf("could not configure management server health checking port: %w", err)
}
kubecontexts, err := config.Kubecontexts(logger)
if err != nil {
return fmt.Errorf("could not initialize informer configuration: %w", err)
}
xdsFeatures, err := config.XDSFeatures(logger)
if err != nil {
return fmt.Errorf("could not initialize xDS feature flags: %w", err)
}
authority, err := config.AuthorityName(logger)
if err != nil {
return fmt.Errorf("could not determine control plane authority name: %w", err)
}
if xdsFeatures.EnableFederation {
logger.V(2).Info("Enabling xDS federation", "authority", authority)
}
return server.Run(ctx, servingPort, healthPort, kubecontexts, xdsFeatures, authority)
}