Viewing docs for Consul v3.14.0
published on Friday, Jan 30, 2026 by Pulumi
published on Friday, Jan 30, 2026 by Pulumi
Viewing docs for Consul v3.14.0
published on Friday, Jan 30, 2026 by Pulumi
published on Friday, Jan 30, 2026 by Pulumi
The consul.getDatacenters data source returns the list of all knwown Consul
datacenters.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as consul from "@pulumi/consul";
import * as std from "@pulumi/std";
export = async () => {
const all = await consul.getDatacenters({});
// Register a prepared query in each of the datacenters
const myapp_query: consul.PreparedQuery[] = [];
for (const range of std.toset({
input: all.datacenters,
}).result.map((v, k) => ({key: k, value: v}))) {
myapp_query.push(new consul.PreparedQuery(`myapp-query-${range.key}`, {
name: "myquery",
datacenter: range.key,
onlyPassing: true,
near: "_agent",
service: "myapp",
tags: [
"active",
"!standby",
],
failover: {
nearestN: 3,
datacenters: [
"us-west1",
"us-east-2",
"asia-east1",
],
},
dns: {
ttl: "30s",
},
}));
}
}
import pulumi
import pulumi_consul as consul
import pulumi_std as std
all = consul.get_datacenters()
# Register a prepared query in each of the datacenters
myapp_query = []
for range in [{"key": k, "value": v} for [k, v] in enumerate(std.toset(input=all.datacenters).result)]:
myapp_query.append(consul.PreparedQuery(f"myapp-query-{range['key']}",
name="myquery",
datacenter=range["key"],
only_passing=True,
near="_agent",
service="myapp",
tags=[
"active",
"!standby",
],
failover={
"nearest_n": 3,
"datacenters": [
"us-west1",
"us-east-2",
"asia-east1",
],
},
dns={
"ttl": "30s",
}))
package main
import (
"github.com/pulumi/pulumi-consul/sdk/v3/go/consul"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
all, err := consul.GetDatacenters(ctx, map[string]interface{}{}, nil)
if err != nil {
return err
}
// Register a prepared query in each of the datacenters
var myapp_query []*consul.PreparedQuery
for key0, _ := range interface{}(std.Toset(ctx, &std.TosetArgs{
Input: all.Datacenters,
}, nil).Result) {
__res, err := consul.NewPreparedQuery(ctx, fmt.Sprintf("myapp-query-%v", key0), &consul.PreparedQueryArgs{
Name: pulumi.String("myquery"),
Datacenter: pulumi.Float64(key0),
OnlyPassing: pulumi.Bool(true),
Near: pulumi.String("_agent"),
Service: pulumi.String("myapp"),
Tags: pulumi.StringArray{
pulumi.String("active"),
pulumi.String("!standby"),
},
Failover: &consul.PreparedQueryFailoverArgs{
NearestN: pulumi.Int(3),
Datacenters: pulumi.StringArray{
pulumi.String("us-west1"),
pulumi.String("us-east-2"),
pulumi.String("asia-east1"),
},
},
Dns: &consul.PreparedQueryDnsArgs{
Ttl: pulumi.String("30s"),
},
})
if err != nil {
return err
}
myapp_query = append(myapp_query, __res)
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Pulumi;
using Consul = Pulumi.Consul;
using Std = Pulumi.Std;
return await Deployment.RunAsync(async() =>
{
var all = await Consul.GetDatacenters.InvokeAsync();
// Register a prepared query in each of the datacenters
var myapp_query = new List<Consul.PreparedQuery>();
foreach (var range in )
{
myapp_query.Add(new Consul.PreparedQuery($"myapp-query-{range.Key}", new()
{
Name = "myquery",
Datacenter = range.Key,
OnlyPassing = true,
Near = "_agent",
Service = "myapp",
Tags = new[]
{
"active",
"!standby",
},
Failover = new Consul.Inputs.PreparedQueryFailoverArgs
{
NearestN = 3,
Datacenters = new[]
{
"us-west1",
"us-east-2",
"asia-east1",
},
},
Dns = new Consul.Inputs.PreparedQueryDnsArgs
{
Ttl = "30s",
},
}));
}
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.consul.ConsulFunctions;
import com.pulumi.consul.PreparedQuery;
import com.pulumi.consul.PreparedQueryArgs;
import com.pulumi.consul.inputs.PreparedQueryFailoverArgs;
import com.pulumi.consul.inputs.PreparedQueryDnsArgs;
import com.pulumi.codegen.internal.KeyedValue;
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) {
final var all = ConsulFunctions.getDatacenters(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
// Register a prepared query in each of the datacenters
for (var range : KeyedValue.of(com.pulumi.std.StdFunctions(TosetArgs.builder()
.input(all.datacenters())
.build()).result())) {
new PreparedQuery("myapp-query-" + range.key(), PreparedQueryArgs.builder()
.name("myquery")
.datacenter(range.key())
.onlyPassing(true)
.near("_agent")
.service("myapp")
.tags(
"active",
"!standby")
.failover(PreparedQueryFailoverArgs.builder()
.nearestN(3)
.datacenters(
"us-west1",
"us-east-2",
"asia-east1")
.build())
.dns(PreparedQueryDnsArgs.builder()
.ttl("30s")
.build())
.build());
}
}
}
resources:
# Register a prepared query in each of the datacenters
myapp-query:
type: consul:PreparedQuery
properties:
name: myquery
datacenter: ${range.key}
onlyPassing: true
near: _agent
service: myapp
tags:
- active
- '!standby'
failover:
nearestN: 3
datacenters:
- us-west1
- us-east-2
- asia-east1
dns:
ttl: 30s
options: {}
variables:
all:
fn::invoke:
function: consul:getDatacenters
arguments: {}
Using getDatacenters
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getDatacenters(opts?: InvokeOptions): Promise<GetDatacentersResult>
function getDatacentersOutput(opts?: InvokeOptions): Output<GetDatacentersResult>def get_datacenters(opts: Optional[InvokeOptions] = None) -> GetDatacentersResult
def get_datacenters_output(opts: Optional[InvokeOptions] = None) -> Output[GetDatacentersResult]func GetDatacenters(ctx *Context, opts ...InvokeOption) (*GetDatacentersResult, error)
func GetDatacentersOutput(ctx *Context, opts ...InvokeOption) GetDatacentersResultOutput> Note: This function is named GetDatacenters in the Go SDK.
public static class GetDatacenters
{
public static Task<GetDatacentersResult> InvokeAsync(InvokeOptions? opts = null)
public static Output<GetDatacentersResult> Invoke(InvokeOptions? opts = null)
}public static CompletableFuture<GetDatacentersResult> getDatacenters(InvokeOptions options)
public static Output<GetDatacentersResult> getDatacenters(InvokeOptions options)
fn::invoke:
function: consul:index/getDatacenters:getDatacenters
arguments:
# arguments dictionarygetDatacenters Result
The following output properties are available:
- Datacenters List<string>
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- Id string
- The provider-assigned unique ID for this managed resource.
- Datacenters []string
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- Id string
- The provider-assigned unique ID for this managed resource.
- datacenters List<String>
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- id String
- The provider-assigned unique ID for this managed resource.
- datacenters string[]
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- id string
- The provider-assigned unique ID for this managed resource.
- datacenters Sequence[str]
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- id str
- The provider-assigned unique ID for this managed resource.
- datacenters List<String>
- The list of datacenters known. The datacenters will be sorted in ascending order based on the estimated median round trip time from the server to the servers in that datacenter.
- id String
- The provider-assigned unique ID for this managed resource.
Package Details
- Repository
- HashiCorp Consul pulumi/pulumi-consul
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
consulTerraform Provider.
Viewing docs for Consul v3.14.0
published on Friday, Jan 30, 2026 by Pulumi
published on Friday, Jan 30, 2026 by Pulumi
