DatabaseReplica

class DatabaseReplica : KotlinCustomResource

Provides a DigitalOcean database replica resource.

Example Usage

Create a new PostgreSQL database replica

import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
name: "example-postgres-cluster",
engine: "pg",
version: "15",
size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
region: digitalocean.Region.NYC1,
nodeCount: 1,
});
const replica_example = new digitalocean.DatabaseReplica("replica-example", {
clusterId: postgres_example.id,
name: "replica-example",
size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
region: digitalocean.Region.NYC1,
});
export const UUID = replica_example.uuid;
// Create firewall rule for database replica
const example_fw = new digitalocean.DatabaseFirewall("example-fw", {
clusterId: replica_example.uuid,
rules: [{
type: "ip_addr",
value: "192.168.1.1",
}],
});
import pulumi
import pulumi_digitalocean as digitalocean
postgres_example = digitalocean.DatabaseCluster("postgres-example",
name="example-postgres-cluster",
engine="pg",
version="15",
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
region=digitalocean.Region.NYC1,
node_count=1)
replica_example = digitalocean.DatabaseReplica("replica-example",
cluster_id=postgres_example.id,
name="replica-example",
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
region=digitalocean.Region.NYC1)
pulumi.export("UUID", replica_example.uuid)
# Create firewall rule for database replica
example_fw = digitalocean.DatabaseFirewall("example-fw",
cluster_id=replica_example.uuid,
rules=[{
"type": "ip_addr",
"value": "192.168.1.1",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DigitalOcean = Pulumi.DigitalOcean;
return await Deployment.RunAsync(() =>
{
var postgres_example = new DigitalOcean.DatabaseCluster("postgres-example", new()
{
Name = "example-postgres-cluster",
Engine = "pg",
Version = "15",
Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
Region = DigitalOcean.Region.NYC1,
NodeCount = 1,
});
var replica_example = new DigitalOcean.DatabaseReplica("replica-example", new()
{
ClusterId = postgres_example.Id,
Name = "replica-example",
Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
Region = DigitalOcean.Region.NYC1,
});
// Create firewall rule for database replica
var example_fw = new DigitalOcean.DatabaseFirewall("example-fw", new()
{
ClusterId = replica_example.Uuid,
Rules = new[]
{
new DigitalOcean.Inputs.DatabaseFirewallRuleArgs
{
Type = "ip_addr",
Value = "192.168.1.1",
},
},
});
return new Dictionary<string, object?>
{
["UUID"] = replica_example.Uuid,
};
});
package main
import (
"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
postgres_example, err := digitalocean.NewDatabaseCluster(ctx, "postgres-example", &digitalocean.DatabaseClusterArgs{
Name: pulumi.String("example-postgres-cluster"),
Engine: pulumi.String("pg"),
Version: pulumi.String("15"),
Size: pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
Region: pulumi.String(digitalocean.RegionNYC1),
NodeCount: pulumi.Int(1),
})
if err != nil {
return err
}
replica_example, err := digitalocean.NewDatabaseReplica(ctx, "replica-example", &digitalocean.DatabaseReplicaArgs{
ClusterId: postgres_example.ID(),
Name: pulumi.String("replica-example"),
Size: pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
Region: pulumi.String(digitalocean.RegionNYC1),
})
if err != nil {
return err
}
ctx.Export("UUID", replica_example.Uuid)
// Create firewall rule for database replica
_, err = digitalocean.NewDatabaseFirewall(ctx, "example-fw", &digitalocean.DatabaseFirewallArgs{
ClusterId: replica_example.Uuid,
Rules: digitalocean.DatabaseFirewallRuleArray{
&digitalocean.DatabaseFirewallRuleArgs{
Type: pulumi.String("ip_addr"),
Value: pulumi.String("192.168.1.1"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.DatabaseCluster;
import com.pulumi.digitalocean.DatabaseClusterArgs;
import com.pulumi.digitalocean.DatabaseReplica;
import com.pulumi.digitalocean.DatabaseReplicaArgs;
import com.pulumi.digitalocean.DatabaseFirewall;
import com.pulumi.digitalocean.DatabaseFirewallArgs;
import com.pulumi.digitalocean.inputs.DatabaseFirewallRuleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var postgres_example = new DatabaseCluster("postgres-example", DatabaseClusterArgs.builder()
.name("example-postgres-cluster")
.engine("pg")
.version("15")
.size("db-s-1vcpu-1gb")
.region("nyc1")
.nodeCount(1)
.build());
var replica_example = new DatabaseReplica("replica-example", DatabaseReplicaArgs.builder()
.clusterId(postgres_example.id())
.name("replica-example")
.size("db-s-1vcpu-1gb")
.region("nyc1")
.build());
ctx.export("UUID", replica_example.uuid());
// Create firewall rule for database replica
var example_fw = new DatabaseFirewall("example-fw", DatabaseFirewallArgs.builder()
.clusterId(replica_example.uuid())
.rules(DatabaseFirewallRuleArgs.builder()
.type("ip_addr")
.value("192.168.1.1")
.build())
.build());
}
}
resources:
postgres-example:
type: digitalocean:DatabaseCluster
properties:
name: example-postgres-cluster
engine: pg
version: '15'
size: db-s-1vcpu-1gb
region: nyc1
nodeCount: 1
replica-example:
type: digitalocean:DatabaseReplica
properties:
clusterId: ${["postgres-example"].id}
name: replica-example
size: db-s-1vcpu-1gb
region: nyc1
# Create firewall rule for database replica
example-fw:
type: digitalocean:DatabaseFirewall
properties:
clusterId: ${["replica-example"].uuid}
rules:
- type: ip_addr
value: 192.168.1.1
outputs:
UUID: ${["replica-example"].uuid}

Import

Database replicas can be imported using the id of the source database cluster and the name of the replica joined with a comma. For example:

$ pulumi import digitalocean:index/databaseReplica:DatabaseReplica read-replica 245bcfd0-7f31-4ce6-a2bc-475a116cca97,read-replica

Properties

Link copied to clipboard
val clusterId: Output<String>

The ID of the original source database cluster.

Link copied to clipboard
val database: Output<String>

Name of the replica's default database.

Link copied to clipboard
val host: Output<String>

Database replica's hostname.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

The name for the database replica.

Link copied to clipboard
val password: Output<String>

Password for the replica's default user.

Link copied to clipboard
val port: Output<Int>

Network port that the database replica is listening on.

Link copied to clipboard
val privateHost: Output<String>

Same as host, but only accessible from resources within the account and in the same region.

Link copied to clipboard

The ID of the VPC where the database replica will be located.

Link copied to clipboard
val privateUri: Output<String>

Same as uri, but only accessible from resources within the account and in the same region.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val region: Output<String>?

DigitalOcean region where the replica will reside.

Link copied to clipboard
val size: Output<String>?

Database Droplet size associated with the replica (ex. db-s-1vcpu-1gb). Note that when resizing an existing replica, its size can only be increased. Decreasing its size is not supported.

Link copied to clipboard
val storageSizeMib: Output<String>
Link copied to clipboard
val tags: Output<List<String>>?

A list of tag names to be applied to the database replica.

Link copied to clipboard
val uri: Output<String>

The full URI for connecting to the database replica.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val user: Output<String>

Username for the replica's default user.

Link copied to clipboard
val uuid: Output<String>

The UUID of the database replica. The uuid can be used to reference the database replica as the target database cluster in other resources. See example "Create firewall rule for database replica" above.