RaftAutopilotArgs

data class RaftAutopilotArgs(val cleanupDeadServers: Output<Boolean>? = null, val deadServerLastContactThreshold: Output<String>? = null, val disableUpgradeMigration: Output<Boolean>? = null, val lastContactThreshold: Output<String>? = null, val maxTrailingLogs: Output<Int>? = null, val minQuorum: Output<Int>? = null, val namespace: Output<String>? = null, val serverStabilizationTime: Output<String>? = null) : ConvertibleToJava<RaftAutopilotArgs>

Autopilot enables automated workflows for managing Raft clusters. The current feature set includes 3 main features: Server Stabilization, Dead Server Cleanup and State API. These three features are introduced in Vault 1.7.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const autopilot = new vault.RaftAutopilot("autopilot", {
cleanupDeadServers: true,
deadServerLastContactThreshold: "24h0m0s",
lastContactThreshold: "10s",
maxTrailingLogs: 1000,
minQuorum: 3,
serverStabilizationTime: "10s",
});
import pulumi
import pulumi_vault as vault
autopilot = vault.RaftAutopilot("autopilot",
cleanup_dead_servers=True,
dead_server_last_contact_threshold="24h0m0s",
last_contact_threshold="10s",
max_trailing_logs=1000,
min_quorum=3,
server_stabilization_time="10s")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var autopilot = new Vault.RaftAutopilot("autopilot", new()
{
CleanupDeadServers = true,
DeadServerLastContactThreshold = "24h0m0s",
LastContactThreshold = "10s",
MaxTrailingLogs = 1000,
MinQuorum = 3,
ServerStabilizationTime = "10s",
});
});
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vault.NewRaftAutopilot(ctx, "autopilot", &vault.RaftAutopilotArgs{
CleanupDeadServers: pulumi.Bool(true),
DeadServerLastContactThreshold: pulumi.String("24h0m0s"),
LastContactThreshold: pulumi.String("10s"),
MaxTrailingLogs: pulumi.Int(1000),
MinQuorum: pulumi.Int(3),
ServerStabilizationTime: pulumi.String("10s"),
})
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.vault.RaftAutopilot;
import com.pulumi.vault.RaftAutopilotArgs;
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 autopilot = new RaftAutopilot("autopilot", RaftAutopilotArgs.builder()
.cleanupDeadServers(true)
.deadServerLastContactThreshold("24h0m0s")
.lastContactThreshold("10s")
.maxTrailingLogs(1000)
.minQuorum(3)
.serverStabilizationTime("10s")
.build());
}
}
resources:
autopilot:
type: vault:RaftAutopilot
properties:
cleanupDeadServers: true
deadServerLastContactThreshold: 24h0m0s
lastContactThreshold: 10s
maxTrailingLogs: 1000
minQuorum: 3
serverStabilizationTime: 10s

Import

Raft Autopilot config can be imported using the ID, e.g.

$ pulumi import vault:index/raftAutopilot:RaftAutopilot autopilot sys/storage/raft/autopilot/configuration

Constructors

Link copied to clipboard
constructor(cleanupDeadServers: Output<Boolean>? = null, deadServerLastContactThreshold: Output<String>? = null, disableUpgradeMigration: Output<Boolean>? = null, lastContactThreshold: Output<String>? = null, maxTrailingLogs: Output<Int>? = null, minQuorum: Output<Int>? = null, namespace: Output<String>? = null, serverStabilizationTime: Output<String>? = null)

Properties

Link copied to clipboard
val cleanupDeadServers: Output<Boolean>? = null

Specifies whether to remove dead server nodes periodically or when a new server joins. This requires that min-quorum is also set.

Link copied to clipboard

Limit the amount of time a server can go without leader contact before being considered failed. This only takes effect when cleanup_dead_servers is set.

Link copied to clipboard
val disableUpgradeMigration: Output<Boolean>? = null

Disables automatically upgrading Vault using autopilot. (Enterprise-only)

Link copied to clipboard
val lastContactThreshold: Output<String>? = null

Limit the amount of time a server can go without leader contact before being considered unhealthy.

Link copied to clipboard
val maxTrailingLogs: Output<Int>? = null

Maximum number of log entries in the Raft log that a server can be behind its leader before being considered unhealthy.

Link copied to clipboard
val minQuorum: Output<Int>? = null

Minimum number of servers allowed in a cluster before autopilot can prune dead servers. This should at least be 3. Applicable only for voting nodes.

Link copied to clipboard
val namespace: Output<String>? = null

The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.

Link copied to clipboard
val serverStabilizationTime: Output<String>? = null

Minimum amount of time a server must be stable in the 'healthy' state before being added to the cluster.

Functions

Link copied to clipboard
open override fun toJava(): RaftAutopilotArgs