Watch Aspire live streamsDocsTry Aspire
Watch Aspire live streamsDocsTry

MongoDBReplicaSetBuilderExtensions Methods

ClassMethods2 members
Provides extension methods for adding MongoDB resources to an Hosting.IDistributedApplicationBuilder.
AddMongoDBReplicaSet(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)Section titled AddMongoDBReplicaSet(IDistributedApplicationBuilder, string, IResourceBuilder<ParameterResource>, IResourceBuilder<ParameterResource>)extensionIResourceBuilder<MongoDBReplicaSetResource>
Adds a MongoDB replica set resource to the application model.
public static class MongoDBReplicaSetBuilderExtensions
{
public static IResourceBuilder<MongoDBReplicaSetResource> AddMongoDBReplicaSet(
this IDistributedApplicationBuilder builder,
string name,
IResourceBuilder<ParameterResource>? userName = null,
IResourceBuilder<ParameterResource>? password = null)
{
// ...
}
}
builderIDistributedApplicationBuilderThe Hosting.IDistributedApplicationBuilder to which the replica set resource will be added.
namestringThe name of the replica set resource.
userNameIResourceBuilder<ParameterResource>optionalAn optional parameter resource that contains the username for authenticating to the MongoDB replica set. If not provided, a default username will be used.
passwordIResourceBuilder<ParameterResource>optionalAn optional parameter resource that contains the password for authenticating to the MongoDB replica set. If not provided, a default password will be used.
IResourceBuilder<MongoDBReplicaSetResource>A reference to the ApplicationModel.IResourceBuilder`1.

This is a "logical" resource that groups multiple MongoDBServerResource instances that are annotated as members of the replica set.

The replica set is initialized by the AppHost itself, which is something that only happens when running locally. Publishing and deploying an application that contains a MongoDB replica set is therefore not supported yet and this method throws when the AppHost runs in publish mode.

var mongo1 = builder.AddMongoDB("mongo-1");
var mongo2 = builder.AddMongoDB("mongo-2");
var replicaSet = builder.AddMongoDBReplicaSet("rs0")
.WithMember(mongo1)
.WithMember(mongo2);
WithMember(IResourceBuilder<MongoDBReplicaSetResource>, IResourceBuilder<MongoDBServerResource>)Section titled WithMember(IResourceBuilder<MongoDBReplicaSetResource>, IResourceBuilder<MongoDBServerResource>)extensionIResourceBuilder<MongoDBReplicaSetResource>
Adds a MongoDB server resource as a member of the replica set.
public static class MongoDBReplicaSetBuilderExtensions
{
public static IResourceBuilder<MongoDBReplicaSetResource> WithMember(
this IResourceBuilder<MongoDBReplicaSetResource> builder,
IResourceBuilder<MongoDBServerResource> member)
{
// ...
}
}
builderIResourceBuilder<MongoDBReplicaSetResource> The ApplicationModel.IResourceBuilder`1 to which the member will be added.
memberIResourceBuilder<MongoDBServerResource> The MongoDB server resource that represents the member to add to this replica set.
IResourceBuilder<MongoDBReplicaSetResource>A reference to the ApplicationModel.IResourceBuilder`1.
Internally calls the following methods on the member's builder:
  1. Configures the member's replica set name and command-line arguments without initializing a separate single-member set. Do not call MongoDBBuilderExtensions.WithReplicaSet on these members.
  2. MongoDBBuilderExtensions.WithKeyFile to set the key file parameter on the member resource, which is required for internal authentication between replica set members.
  3. MongoDBBuilderExtensions.WithTlsAllowInvalidCertificates because members authenticate to each other with the same certificate they serve to clients, which does not carry a clientAuth extended key usage.
  4. ResourceBuilderExtensions.WithHttpsDeveloperCertificate, unless the member already has certificate configuration of its own. TLS is required for members of a replica set, because the split-horizon member hostname advertisement performed by the server operates on top of SNI.