public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostContext, cb) =>
        {
            cb.AddJsonFile("appsettings.json", false, false)
            .AddJsonFile(
                $"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json",
                true, false);

            if (hostContext.HostingEnvironment.IsDevelopment())
            {
                cb.AddUserSecrets <Program>();
            }
            else
            {
                var config = cb.Build();

                if (!hostContext.HostingEnvironment.IsDevelopment())
                {
                    cb        /*.AddKubeConfigMap(KubeClientOptions.FromPodServiceAccount(),
                               * config[DataFabricSplitterConfig.KubeConfigMapName],
                               * config[DataFabricSplitterConfig.KubeNamespace],
                               * reloadOnChange: false)*/
                    .AddKubeSecret(
                        KubeClientOptions.FromPodServiceAccount(),
                        config[DataFabricSplitterConfig.KubeSecretName],
                        config[DataFabricSplitterConfig.KubeNamespace],
                        reloadOnChange: false);
                }
            }

            cb.AddEnvironmentVariables();

            if (args != null)
            {
                cb.AddCommandLine(args);
            }
        })
        .ConfigureServices((hostContext, services) =>
        {
            services
            .AddOptions()
            .Configure <DataFabricSplitterConfig>(hostContext.Configuration);

            services
            .AddTransient <IEventHub>(sp =>
                                      new RabbitMQHub(new ConnectionFactory
            {
                Endpoint = new AmqpTcpEndpoint(new Uri(hostContext.Configuration[nameof(DataFabricSplitterConfig.EventHubEndpoint)])),
                DispatchConsumersAsync = true
            }))
            .AddHostedService <Worker>();
        })
        .ConfigureLogging((hostingContext, logging) => {
            logging
            .AddConfiguration(hostingContext.Configuration.GetSection("Logging"))
            .AddConsole()
            .AddDebug();
        });
Exemple #2
0
        private static KubeClientOptions GetKubeClientOptions()
        {
            var options = string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("KUBERNETES_SERVICE_HOST"))
                ? K8sConfig.Load().ToKubeClientOptions()
                : KubeClientOptions.FromPodServiceAccount();

            options.KubeNamespace = "default";
            return(options);
        }
 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
 WebHost.CreateDefaultBuilder(args)
 .ConfigureAppConfiguration(
     (configuration) => configuration.AddKubeConfigMap(
         clientOptions: KubeClientOptions.FromPodServiceAccount(),
         configMapName: "demo-config",
         kubeNamespace: "default",
         reloadOnChange: true
         )
     )
 .UseStartup <Startup>();