Browse Source

Make ports go away (#255)

* Make ports go away
- Make AutoAssignPort true by default for binding and ingress. If a binding is defined auto assign the port. This will of course be ignored if there's a port defined.
- Don't auto assign a port if it's there's a connection string defined.
davidfowl/build-earlier
David Fowler 7 years ago
committed by GitHub
parent
commit
36b0c0e211
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Microsoft.Tye.Core/ApplicationFactory.cs
  2. 1
      src/Microsoft.Tye.Core/BindingBuilder.cs
  3. 4
      src/Microsoft.Tye.Core/CombineStep.cs
  4. 1
      src/Microsoft.Tye.Core/ConfigModel/ConfigIngressBinding.cs
  5. 1
      src/Microsoft.Tye.Core/ConfigModel/ConfigServiceBinding.cs
  6. 1
      src/Microsoft.Tye.Core/IngressBindingBuilder.cs
  7. 3
      src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs
  8. 1
      src/Microsoft.Tye.Hosting/Model/ServiceBinding.cs
  9. 3
      src/Microsoft.Tye.Hosting/PortAssigner.cs
  10. 9
      src/Microsoft.Tye.Hosting/TyeDashboardApi.cs
  11. 6
      src/tye/ApplicationBuilderExtensions.cs

4
src/Microsoft.Tye.Core/ApplicationFactory.cs

@ -123,14 +123,12 @@ namespace Microsoft.Tye
// HTTP is the default binding
service.Bindings.Add(new BindingBuilder()
{
AutoAssignPort = true,
Protocol = "http"
});
service.Bindings.Add(new BindingBuilder()
{
Name = "https",
AutoAssignPort = true,
Protocol = "https"
});
}
@ -141,7 +139,6 @@ namespace Microsoft.Tye
var binding = new BindingBuilder()
{
Name = configBinding.Name,
AutoAssignPort = configBinding.AutoAssignPort,
ConnectionString = configBinding.ConnectionString,
Host = configBinding.Host,
ContainerPort = configBinding.ContainerPort,
@ -224,7 +221,6 @@ namespace Microsoft.Tye
{
var binding = new IngressBindingBuilder()
{
AutoAssignPort = configBinding.AutoAssignPort,
Name = configBinding.Name,
Port = configBinding.Port,
Protocol = configBinding.Protocol ?? "http",

1
src/Microsoft.Tye.Core/BindingBuilder.cs

@ -8,7 +8,6 @@ namespace Microsoft.Tye
{
public string? Name { get; set; }
public string? ConnectionString { get; set; }
public bool AutoAssignPort { get; set; }
public int? Port { get; set; }
public int? ContainerPort { get; set; }
public string? Host { get; set; }

4
src/Microsoft.Tye.Core/CombineStep.cs

@ -29,7 +29,7 @@ namespace Microsoft.Tye
binding.Protocol = "http";
}
if (binding.AutoAssignPort && binding.Port == null && binding.Protocol == "http")
if (binding.Port == null && binding.Protocol == "http")
{
binding.Port = 80;
}
@ -87,7 +87,7 @@ namespace Microsoft.Tye
binding.Protocol = "http";
}
if (binding.AutoAssignPort && binding.Port == null && binding.Protocol == "http")
if (binding.Port == null && binding.Protocol == "http")
{
binding.Port = 80;
}

1
src/Microsoft.Tye.Core/ConfigModel/ConfigIngressBinding.cs

@ -7,7 +7,6 @@ namespace Microsoft.Tye.ConfigModel
public class ConfigIngressBinding
{
public string? Name { get; set; }
public bool AutoAssignPort { get; set; }
public int? Port { get; set; }
public string? Protocol { get; set; } // HTTP or HTTPS
}

1
src/Microsoft.Tye.Core/ConfigModel/ConfigServiceBinding.cs

@ -8,7 +8,6 @@ namespace Microsoft.Tye.ConfigModel
{
public string? Name { get; set; }
public string? ConnectionString { get; set; }
public bool AutoAssignPort { get; set; }
public int? Port { get; set; }
public int? ContainerPort { get; set; }
public string? Host { get; set; }

1
src/Microsoft.Tye.Core/IngressBindingBuilder.cs

@ -7,7 +7,6 @@ namespace Microsoft.Tye
public sealed class IngressBindingBuilder
{
public string? Name { get; set; }
public bool AutoAssignPort { get; set; }
public int? Port { get; set; }
public string? Protocol { get; set; } // HTTP or HTTPS
}

3
src/Microsoft.Tye.Extensions/Dapr/DaprExtension.cs

@ -44,7 +44,6 @@ namespace Microsoft.Tye.Extensions.Dapr
// Listen for grpc on an auto-assigned port
var grpc = new BindingBuilder()
{
AutoAssignPort = true,
Name = "grpc",
Protocol = "https",
};
@ -53,7 +52,6 @@ namespace Microsoft.Tye.Extensions.Dapr
// Listen for http on an auto-assigned port
var http = new BindingBuilder()
{
AutoAssignPort = true,
Name = "http",
Protocol = "http",
};
@ -62,7 +60,6 @@ namespace Microsoft.Tye.Extensions.Dapr
// Listen for metrics on an auto-assigned port
var metrics = new BindingBuilder()
{
AutoAssignPort = true,
Name = "metrics",
Protocol = "http",
};

1
src/Microsoft.Tye.Hosting/Model/ServiceBinding.cs

@ -10,7 +10,6 @@ namespace Microsoft.Tye.Hosting.Model
{
public string? Name { get; set; }
public string? ConnectionString { get; set; }
public bool AutoAssignPort { get; set; }
public int? Port { get; set; }
public int? ContainerPort { get; set; }
public string? Host { get; set; }

3
src/Microsoft.Tye.Hosting/PortAssigner.cs

@ -44,8 +44,9 @@ namespace Microsoft.Tye.Hosting
foreach (var binding in service.Description.Bindings)
{
if (binding.Port == null && !binding.AutoAssignPort)
if (binding.ConnectionString != null)
{
// Skip if there is a port or if there is a connection string
continue;
}

9
src/Microsoft.Tye.Hosting/TyeDashboardApi.cs

@ -2,17 +2,17 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using Microsoft.Tye.Hosting.Model;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using System.Text.Json.Serialization;
using System.Collections.Generic;
using Microsoft.Tye.Hosting.Model;
using Microsoft.Tye.Hosting.Model.V1;
namespace Microsoft.Tye.Hosting
@ -95,7 +95,7 @@ namespace Microsoft.Tye.Hosting
return JsonSerializer.SerializeAsync(context.Response.Body, serviceJson, _options);
}
private static V1Service CreateServiceJson(Model.Service service)
private static V1Service CreateServiceJson(Service service)
{
var description = service.Description;
var bindings = description.Bindings;
@ -108,7 +108,6 @@ namespace Microsoft.Tye.Hosting
{
Name = binding.Name,
ConnectionString = binding.ConnectionString,
AutoAssignPort = binding.AutoAssignPort,
Port = binding.Port,
ContainerPort = binding.ContainerPort,
Host = binding.Host,

6
src/tye/ApplicationBuilderExtensions.cs

@ -108,11 +108,10 @@ namespace Microsoft.Tye
foreach (var binding in service.Bindings)
{
description.Bindings.Add(new Hosting.Model.ServiceBinding()
description.Bindings.Add(new ServiceBinding()
{
ConnectionString = binding.ConnectionString,
Host = binding.Host,
AutoAssignPort = binding.AutoAssignPort,
ContainerPort = binding.ContainerPort,
Name = binding.Name,
Port = binding.Port,
@ -142,9 +141,8 @@ namespace Microsoft.Tye
foreach (var binding in ingress.Bindings)
{
description.Bindings.Add(new Hosting.Model.ServiceBinding()
description.Bindings.Add(new ServiceBinding()
{
AutoAssignPort = binding.AutoAssignPort,
Name = binding.Name,
Port = binding.Port,
Protocol = binding.Protocol,

Loading…
Cancel
Save