diff --git a/playground/CosmosEndToEnd/CosmosEndToEnd.AppHost/Program.cs b/playground/CosmosEndToEnd/CosmosEndToEnd.AppHost/Program.cs index e8c431cc9e9..8990c0277d6 100644 --- a/playground/CosmosEndToEnd/CosmosEndToEnd.AppHost/Program.cs +++ b/playground/CosmosEndToEnd/CosmosEndToEnd.AppHost/Program.cs @@ -5,7 +5,8 @@ var builder = DistributedApplication.CreateBuilder(args); -var cosmos = builder.AddAzureCosmosDB("cosmos").RunAsEmulator(); +var cosmos = builder.AddAzureCosmosDB("cosmos") + .RunAsPreviewEmulator(); var db = cosmos.AddCosmosDatabase("db"); var entries = db.AddContainer("entries", "/id", "staging-entries"); diff --git a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBEmulatorResource.cs b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBEmulatorResource.cs index c61a30323ef..c2430e34b53 100644 --- a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBEmulatorResource.cs +++ b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBEmulatorResource.cs @@ -10,7 +10,7 @@ namespace Aspire.Hosting.Azure; /// /// The inner resource used to store annotations. public class AzureCosmosDBEmulatorResource(AzureCosmosDBResource innerResource) - : ContainerResource(innerResource.Name), IResource + : ContainerResource(innerResource.Name), IResource, IResourceWithEnvironment { internal AzureCosmosDBResource InnerResource { get; } = innerResource ?? throw new ArgumentNullException(nameof(innerResource)); diff --git a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs index 1a622f91dfc..a968778981a 100644 --- a/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs +++ b/src/Aspire.Hosting.Azure.CosmosDB/AzureCosmosDBExtensions.cs @@ -147,6 +147,9 @@ private static IResourceBuilder RunAsEmulator(this IResou var emulatorSurrogate = new AzureCosmosDBEmulatorResource(builder.Resource); var emulatorSurrogateBuilder = builder.ApplicationBuilder.CreateResourceBuilder(emulatorSurrogate); + emulatorSurrogateBuilder.WithOtlpExporter() + .WithEnvironment("ENABLE_OTLP_EXPORTER", "true"); + // VNext cosmosdb sets a default CERT_SECRET environment variable for the default emulator certificate and we can't // remove it, so we need to provide "some" secret value to avoid issues with our provided certificate. This simply sets the // dev cert used by cosmos to have a stable passphrase. Users can override by calling `WithHttpsDeveloperCertificate` again