From 327192619ba0f8b070b3bf2d3a8f01def4e3efb6 Mon Sep 17 00:00:00 2001 From: Ryan Campbell <89273172+bigtallcampbell@users.noreply.github.com> Date: Fri, 2 Aug 2024 11:10:32 -0500 Subject: [PATCH] Adjusting appsettings load (#13) * adjusting appsettings load * typo in log * updating app settings load --- src/Program.cs | 10 ++++++++-- test/debugClient/Program.cs | 7 +++++-- test/integrationTests/TestSharedContext.cs | 7 +++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Program.cs b/src/Program.cs index a24be61..3c0191d 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -1,17 +1,23 @@ +using Microsoft.Extensions.Configuration; namespace Microsoft.Azure.SpaceFx.PlatformServices.Deployment; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); + string _secretDir = Environment.GetEnvironmentVariable("SPACEFX_SECRET_DIR") ?? throw new Exception("SPACEFX_SECRET_DIR environment variable not set"); // Load the configuration being supplicated by the cluster first - builder.Configuration.AddJsonFile(Path.Combine("{env:SPACEFX_CONFIG_DIR}", "config", "appsettings.json"), optional: true, reloadOnChange: false); + builder.Configuration.AddJsonFile(Path.Combine($"{_secretDir}", "config", "appsettings.json"), optional: false, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"), optional: true, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values - builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.{env:DOTNET_ENVIRONMENT}.json"), optional: true, reloadOnChange: false); + string? dotnet_env = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT"); + if (!string.IsNullOrWhiteSpace(dotnet_env)) + builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), $"appsettings.{dotnet_env}.json"), optional: true, reloadOnChange: false); + + builder.WebHost.ConfigureKestrel(options => options.ListenAnyIP(50051, o => o.Protocols = HttpProtocols.Http2)) .ConfigureServices((services) => { diff --git a/test/debugClient/Program.cs b/test/debugClient/Program.cs index 934d26a..106146c 100644 --- a/test/debugClient/Program.cs +++ b/test/debugClient/Program.cs @@ -4,14 +4,17 @@ public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); + string _secretDir = Environment.GetEnvironmentVariable("SPACEFX_SECRET_DIR") ?? throw new Exception("SPACEFX_SECRET_DIR environment variable not set"); // Load the configuration being supplicated by the cluster first - builder.Configuration.AddJsonFile(Path.Combine("{env:SPACEFX_CONFIG_DIR}", "config", "appsettings.json"), optional: true, reloadOnChange: false); + builder.Configuration.AddJsonFile(Path.Combine($"{_secretDir}", "config", "appsettings.json"), optional: false, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"), optional: true, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values - builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.{env:DOTNET_ENVIRONMENT}.json"), optional: true, reloadOnChange: false); + string? dotnet_env = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT"); + if (!string.IsNullOrWhiteSpace(dotnet_env)) + builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), $"appsettings.{dotnet_env}.json"), optional: true, reloadOnChange: false); builder.WebHost.ConfigureKestrel(options => options.ListenAnyIP(50051, o => o.Protocols = HttpProtocols.Http2)) .ConfigureServices((services) => { diff --git a/test/integrationTests/TestSharedContext.cs b/test/integrationTests/TestSharedContext.cs index 92bceef..9139e1e 100644 --- a/test/integrationTests/TestSharedContext.cs +++ b/test/integrationTests/TestSharedContext.cs @@ -26,14 +26,17 @@ public TestSharedContext() { K8S_CLIENT = new k8s.Kubernetes(config); var builder = WebApplication.CreateBuilder(); + string _secretDir = Environment.GetEnvironmentVariable("SPACEFX_SECRET_DIR") ?? throw new Exception("SPACEFX_SECRET_DIR environment variable not set"); // Load the configuration being supplicated by the cluster first - builder.Configuration.AddJsonFile(Path.Combine("{env:SPACEFX_CONFIG_DIR}", "config", "appsettings.json"), optional: true, reloadOnChange: false); + builder.Configuration.AddJsonFile(Path.Combine($"{_secretDir}", "config", "appsettings.json"), optional: false, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"), optional: true, reloadOnChange: false); // Load any local appsettings incase they're overriding the cluster values - builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.{env:DOTNET_ENVIRONMENT}.json"), optional: true, reloadOnChange: false); + string? dotnet_env = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT"); + if (!string.IsNullOrWhiteSpace(dotnet_env)) + builder.Configuration.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), $"appsettings.{dotnet_env}.json"), optional: true, reloadOnChange: false); builder.WebHost.ConfigureKestrel(options => options.ListenAnyIP(50051, o => o.Protocols = HttpProtocols.Http2)) .ConfigureServices((services) => {