From 5c014b6a90f1f4c06bb832f557ef3be7044a1030 Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Sun, 11 Oct 2020 14:02:59 -0700 Subject: [PATCH] Set DAPR_HTTP_PORT when launching project Fixes: #575 Tye was missing code to set DAPR_HTTP_PORT when launching a project. This variable is normally set by dapr when using `dapr run ...` to launch a project. However Tye doesn't use `dapr run ...` so we need to emulate this behavior. We already had code to set up DAPR_GRPC_PORT which is used by the `DaprClient` class. DAPR_HTTP_PORT is used by the actor runtime in addition to behing available for arbitrary use (as reported in the issue). --- src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs b/src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs index d185e5f55..8188149c3 100644 --- a/src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs +++ b/src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs @@ -139,7 +139,7 @@ public override Task ProcessAsync(ExtensionContext context, ExtensionConfigurati }; project.EnvironmentVariables.Add(daprGrpcPort); - // Set DAPR_Http_PORT based on this service's assigned port + // Set DAPR_HTTP_PORT based on this service's assigned port var daprHttpPort = new EnvironmentVariableBuilder("DAPR_HTTP_PORT") { Source = new EnvironmentVariableSourceBuilder(proxy.Name, binding: "http") @@ -149,6 +149,16 @@ public override Task ProcessAsync(ExtensionContext context, ExtensionConfigurati }; proxy.EnvironmentVariables.Add(daprHttpPort); + // Add another copy of this envvar to the project. + daprHttpPort = new EnvironmentVariableBuilder("DAPR_HTTP_PORT") + { + Source = new EnvironmentVariableSourceBuilder(proxy.Name, binding: "http") + { + Kind = EnvironmentVariableSourceBuilder.SourceKind.Port, + }, + }; + project.EnvironmentVariables.Add(daprHttpPort); + // Set METRICS_PORT to a random port var metricsPort = new EnvironmentVariableBuilder("METRICS_PORT") {