Raft Autopilot Args
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
Properties
Specifies whether to remove dead server nodes periodically or when a new server joins. This requires that min-quorum
is also set.
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.
Disables automatically upgrading Vault using autopilot. (Enterprise-only)
Limit the amount of time a server can go without leader contact before being considered unhealthy.
Maximum number of log entries in the Raft log that a server can be behind its leader before being considered unhealthy.
Minimum amount of time a server must be stable in the 'healthy' state before being added to the cluster.