Skip to content

Commit 1b7bbb0

Browse files
Copilotaaronpowell
andauthored
Allow publishing of Ollama and SQLite hosting integrations (#710)
* Initial plan for issue * Remove automatic ExcludeFromManifest calls from Ollama and SQLite integrations Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> * Restore ExcludeFromManifest for OpenWebUI resource Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
1 parent 01c80b4 commit 1b7bbb0

File tree

4 files changed

+47
-12
lines changed

4 files changed

+47
-12
lines changed

src/CommunityToolkit.Aspire.Hosting.Ollama/OllamaResourceBuilderExtensions.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@ public static IResourceBuilder<OllamaResource> AddOllama(this IDistributedApplic
6868
return builder.AddResource(resource)
6969
.WithAnnotation(new ContainerImageAnnotation { Image = OllamaContainerImageTags.Image, Tag = OllamaContainerImageTags.Tag, Registry = OllamaContainerImageTags.Registry })
7070
.WithHttpEndpoint(port: port, targetPort: 11434, name: OllamaResource.OllamaEndpointName)
71-
.WithHttpHealthCheck("/")
72-
.ExcludeFromManifest();
71+
.WithHttpHealthCheck("/");
7372
}
7473

7574
/// <summary>

src/CommunityToolkit.Aspire.Hosting.Sqlite/SqliteResourceBuilderExtensions.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public static class SqliteResourceBuilderExtensions
1616
/// <param name="databasePath">The optional path to the database file. If no path is provided the database is stored in a temporary location.</param>
1717
/// <param name="databaseFileName">The filename of the database file. Must include extension. If no file name is provided, a randomly generated file name is used.</param>
1818
/// <returns>A resource builder for the Sqlite resource.</returns>
19-
/// <remarks>The Sqlite resource is excluded from the manifest.</remarks>
2019
public static IResourceBuilder<SqliteResource> AddSqlite(this IDistributedApplicationBuilder builder, [ResourceName] string name, string? databasePath = null, string? databaseFileName = null)
2120
{
2221
ArgumentNullException.ThrowIfNull(builder, nameof(builder));
@@ -56,8 +55,7 @@ public static IResourceBuilder<SqliteResource> AddSqlite(this IDistributedApplic
5655
]
5756
};
5857
return builder.AddResource(resource)
59-
.WithInitialState(state)
60-
.ExcludeFromManifest();
58+
.WithInitialState(state);
6159
}
6260

6361
/// <summary>
@@ -83,8 +81,7 @@ public static IResourceBuilder<SqliteResource> WithSqliteWeb(this IResourceBuild
8381
.WithBindMount(builder.Resource.DatabasePath, "/data")
8482
.WaitFor(builder)
8583
.WithHttpHealthCheck("/")
86-
.WithParentRelationship(builder.Resource)
87-
.ExcludeFromManifest();
84+
.WithParentRelationship(builder.Resource);
8885

8986
configureContainer?.Invoke(resourceBuilder);
9087

tests/CommunityToolkit.Aspire.Hosting.Ollama.Tests/AddOllamaTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,21 @@ public void OpenWebUIConfigured()
166166
Assert.Single(resource.OllamaResources);
167167
}
168168

169+
[Fact]
170+
public void OpenWebUIResourceExcludedFromManifestByDefault()
171+
{
172+
var builder = DistributedApplication.CreateBuilder();
173+
_ = builder.AddOllama("ollama", port: null).WithOpenWebUI();
174+
175+
using var app = builder.Build();
176+
177+
var appModel = app.Services.GetRequiredService<DistributedApplicationModel>();
178+
179+
var resource = Assert.Single(appModel.Resources.OfType<OpenWebUIResource>());
180+
181+
Assert.True(resource.TryGetAnnotationsOfType<ManifestPublishingCallbackAnnotation>(out var annotations));
182+
}
183+
169184
[Fact]
170185
public void OpenWebUIConfiguredWithMultipleOllamaServers()
171186
{
@@ -383,6 +398,21 @@ public void OllamaRegistersHttpHealthCheck()
383398
Assert.Contains(resource.Name, annotation.Key);
384399
}
385400

401+
[Fact]
402+
public void ResourceIncludedInManifestByDefault()
403+
{
404+
var builder = DistributedApplication.CreateBuilder();
405+
_ = builder.AddOllama("ollama");
406+
407+
using var app = builder.Build();
408+
409+
var appModel = app.Services.GetRequiredService<DistributedApplicationModel>();
410+
411+
var resource = Assert.Single(appModel.Resources.OfType<OllamaResource>());
412+
413+
Assert.False(resource.TryGetAnnotationsOfType<ManifestPublishingCallbackAnnotation>(out var annotations));
414+
}
415+
386416
[Fact]
387417
public void OllamaRegistrationContainsResourceCommandAnnotations()
388418
{

tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,12 @@ public void ResourceIsRunningState()
4545
}
4646

4747
[Fact]
48-
public void ResourceExcludedFromManifestByDefault()
48+
public void ResourceIncludedInManifestByDefault()
4949
{
5050
var builder = DistributedApplication.CreateBuilder();
5151
var sqlite = builder.AddSqlite("sqlite");
5252

53-
Assert.True(sqlite.Resource.TryGetAnnotationsOfType<ManifestPublishingCallbackAnnotation>(out var annotations));
54-
var annotation = Assert.Single(annotations);
55-
56-
Assert.Null(annotation.Callback);
53+
Assert.False(sqlite.Resource.TryGetAnnotationsOfType<ManifestPublishingCallbackAnnotation>(out var annotations));
5754
}
5855

5956
[Fact]
@@ -145,6 +142,18 @@ public async Task SqliteWebResourceConfigured()
145142
Assert.Equal("sqlite", parentAnnotation.Resource.Name);
146143
}
147144

145+
[Fact]
146+
public void SqliteWebResourceIncludedInManifestByDefault()
147+
{
148+
var builder = DistributedApplication.CreateBuilder();
149+
var sqlite = builder.AddSqlite("sqlite")
150+
.WithSqliteWeb();
151+
152+
var sqliteWeb = Assert.Single(builder.Resources.OfType<SqliteWebResource>());
153+
154+
Assert.False(sqliteWeb.TryGetAnnotationsOfType<ManifestPublishingCallbackAnnotation>(out var annotations));
155+
}
156+
148157
[Fact]
149158
public void ResourceWithExtensionFromNuGet()
150159
{

0 commit comments

Comments
 (0)