Database Replica
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",
}],
});
Content copied to clipboard
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",
}])
Content copied to clipboard
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,
};
});
Content copied to clipboard
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
})
}
Content copied to clipboard
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());
}
}
Content copied to clipboard
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}
Content copied to clipboard
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
Content copied to clipboard
Properties
Link copied to clipboard
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
Same as uri
, but only accessible from resources within the account and in the same region.
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard