From d5f5be201a14af2f8df42b3ec632fe93af23ac5c Mon Sep 17 00:00:00 2001 From: David Fowler Date: Sun, 29 Mar 2020 08:21:30 -0700 Subject: [PATCH] Added an app concept to tye.yaml - tye.yaml already has a name idea, when your applcation is split across multiple tye.yaml files, then the app groups them. - The name field will be used to produce packages that encapsulate all services defined in a specific tye.yaml. --- samples/multi-yaml/be/tye.yaml | 3 ++- samples/multi-yaml/fe/tye.yaml | 3 ++- src/Microsoft.Tye.Core/ApplicationBuilder.cs | 3 +++ src/Microsoft.Tye.Core/ApplicationFactory.cs | 1 + src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs | 3 +++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/samples/multi-yaml/be/tye.yaml b/samples/multi-yaml/be/tye.yaml index 4c65866b..f717ff14 100644 --- a/samples/multi-yaml/be/tye.yaml +++ b/samples/multi-yaml/be/tye.yaml @@ -1,4 +1,5 @@ -name: multi-tye +app: multi-tye # name of the bigger application +name: backend # name of this application services: - name: backend project: backend/backend.csproj diff --git a/samples/multi-yaml/fe/tye.yaml b/samples/multi-yaml/fe/tye.yaml index 01b522ee..62711be5 100644 --- a/samples/multi-yaml/fe/tye.yaml +++ b/samples/multi-yaml/fe/tye.yaml @@ -1,4 +1,5 @@ -name: multi-tye +app: multi-tye # name of the bigger application +name: frontend # name of this application services: - name: frontend project: frontend/frontend.csproj diff --git a/src/Microsoft.Tye.Core/ApplicationBuilder.cs b/src/Microsoft.Tye.Core/ApplicationBuilder.cs index 7b794c46..a6eac5c0 100644 --- a/src/Microsoft.Tye.Core/ApplicationBuilder.cs +++ b/src/Microsoft.Tye.Core/ApplicationBuilder.cs @@ -13,12 +13,15 @@ namespace Microsoft.Tye { Source = source; Name = name; + Application = name; } public FileInfo Source { get; set; } public string Name { get; set; } + public string? Application { get; set; } + public ContainerRegistry? Registry { get; set; } public List Services { get; } = new List(); diff --git a/src/Microsoft.Tye.Core/ApplicationFactory.cs b/src/Microsoft.Tye.Core/ApplicationFactory.cs index 1392d5e0..fbd920b1 100644 --- a/src/Microsoft.Tye.Core/ApplicationFactory.cs +++ b/src/Microsoft.Tye.Core/ApplicationFactory.cs @@ -26,6 +26,7 @@ namespace Microsoft.Tye var rootConfig = ConfigFactory.FromFile(source); ValidateConfigApplication(rootConfig); var root = new ApplicationBuilder(source, rootConfig.Name ?? source.Directory.Name.ToLowerInvariant()); + root.Application ??= rootConfig.Application; queue.Enqueue(rootConfig); diff --git a/src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs b/src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs index 0450d771..0dbc5f21 100644 --- a/src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs +++ b/src/Microsoft.Tye.Core/ConfigModel/ConfigApplication.cs @@ -21,6 +21,9 @@ namespace Microsoft.Tye.ConfigModel public string? Name { get; set; } + [YamlMember(Alias = "app")] + public string? Application { get; set; } + public string? Registry { get; set; } public List Services { get; set; } = new List();