	ctx := log.WithContext(context.TODO(), func(c zerolog.Context) zerolog.Context {
		return c.Str("config_file_source", configFile)
	})

	options, err := newOptionsFromConfig(configFile)
	if err != nil {
		return nil, err
	}

	ports, err := netutil.AllocatePorts(3)
	if err != nil {
		return nil, err
	}
	grpcPort := ports[0]
	httpPort := ports[1]
	outboundPort := ports[2]

	cfg := &Config{
		Options:      options,
		EnvoyVersion: envoyVersion,

		GRPCPort:     grpcPort,
		HTTPPort:     httpPort,
		OutboundPort: outboundPort,
	}
	metrics.SetConfigInfo(ctx, cfg.Options.Services, "local", cfg.Checksum(), true)

	src := &FileOrEnvironmentSource{
		configFile: configFile,
		config:     cfg,
	}
	options.viper.OnConfigChange(src.onConfigChange(ctx))
	go options.viper.WatchConfig()

	return src, nil
}
The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.