func Run()

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)
}