<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VAULT on PIGSTY</title><link>https://pigsty.io/module/vault/</link><description>Recent content in VAULT on PIGSTY</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 13 Nov 2026 13:58:02 +0800</lastBuildDate><atom:link href="https://pigsty.io/module/vault/index.xml" rel="self" type="application/rss+xml"/><item><title>FAQ</title><link>https://pigsty.io/docs/vault/faq/</link><guid>https://pigsty.io/docs/vault/faq/</guid><description>&lt;hr&gt;&#10;&lt;h2 id="what-does-vault-do"&gt;What Does VAULT Do?&#10;&lt;/h2&gt;&#10;&lt;p&gt;VAULT supplies KMS (key management) and secrets storage for a Pigsty deployment, covering three main uses:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Transparent data encryption&lt;/strong&gt;: store PGSQL &lt;code&gt;pg_tde&lt;/code&gt; master keys so leaked database disks and backups cannot be decrypted without VAULT keys.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Object storage encryption&lt;/strong&gt;: store keys for MINIO (Silo) KES server-side encryption.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Application secrets&lt;/strong&gt;: use KV, Transit, and AppRole to store/access passwords and API keys or call encryption services.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The first two integrations currently require manual configuration; automatic integration is still being developed. Applications can use the third immediately after deployment; see &lt;a href="https://pigsty.io/docs/vault/usage"&gt;Usage&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Metrics</title><link>https://pigsty.io/docs/vault/metric/</link><guid>https://pigsty.io/docs/vault/metric/</guid><description>&lt;p&gt;This page distinguishes &lt;strong&gt;raw OpenBao telemetry&lt;/strong&gt; from &lt;strong&gt;recording metrics evaluated by vmalert&lt;/strong&gt;. &lt;a href="https://github.com/pgsty/pigsty/blob/main/files/victoria/rules/vault.yml"&gt;&lt;code&gt;files/victoria/rules/vault.yml&lt;/code&gt;&lt;/a&gt; defines &lt;strong&gt;14 recording rules&lt;/strong&gt;. Their results are not available from &lt;code&gt;/v1/sys/metrics&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Raw metrics vary with OpenBao version, member role, and runtime state. The metrics below are those used by Vault Overview and its rules, not the full telemetry output. See &lt;a href="https://openbao.org/docs/internals/telemetry/metrics/"&gt;OpenBao telemetry metrics&lt;/a&gt; for the complete list.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="labels"&gt;Labels&#10;&lt;/h2&gt;&#10;&lt;p&gt;VAULT metrics use these labels:&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--full td-table-scroll--static"&gt;&#10;&lt;table class="full-width"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Label&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Meaning&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Example&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;job&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scrape job&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;vault&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;cls&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Cluster name, &lt;a href="https://pigsty.io/docs/vault/param#vault_cluster"&gt;&lt;code&gt;vault_cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;vault&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;ins&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Instance name, &lt;code&gt;&amp;lt;vault_cluster&amp;gt;-&amp;lt;vault_seq&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;vault-1&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;ip&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Member address&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;10.10.10.11&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;instance&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Scrape address&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;10.10.10.11:8200&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;Recording rules use &lt;code&gt;vault:ins:*&lt;/code&gt; for instances and &lt;code&gt;vault:cls:*&lt;/code&gt; for clusters.&lt;/p&gt;</description></item><item><title>Monitoring</title><link>https://pigsty.io/docs/vault/monitor/</link><guid>https://pigsty.io/docs/vault/monitor/</guid><description>&lt;p&gt;VAULT reuses Pigsty&amp;rsquo;s observability stack. OpenBao metrics flow over HTTPS to VictoriaMetrics; service and backup logs flow through Journald / Vector to VictoriaLogs.&#10;vmalert loads 14 recording rules and six alerts, and Grafana provides the Vault Overview dashboard.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="dashboard"&gt;Dashboard&#10;&lt;/h2&gt;&#10;&lt;p&gt;VAULT provides one dashboard: Vault Overview.&lt;/p&gt;&#10;&lt;h3 id="vault-overview-dashboard"&gt;Vault Overview Dashboard&#10;&lt;/h3&gt;&#10;&lt;p&gt;Vault Overview is available at &lt;code&gt;/ui/d/vault-overview&lt;/code&gt;. Use the &lt;code&gt;Cluster&lt;/code&gt; variable at the top to select a cluster.&lt;/p&gt;</description></item><item><title>Usage</title><link>https://pigsty.io/docs/vault/usage/</link><guid>https://pigsty.io/docs/vault/usage/</guid><description>&lt;p&gt;After &lt;a href="https://pigsty.io/docs/vault/config"&gt;configuring&lt;/a&gt; and &lt;a href="https://pigsty.io/docs/vault/playbook"&gt;deploying&lt;/a&gt; VAULT, use this page to get started.&#10;The following engines and authentication methods are enabled by default:&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--full td-table-scroll--static"&gt;&#10;&lt;table class="full-width"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Path&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Type&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Purpose&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;secret/&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;KV v2 secrets engine&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Versioned static secrets such as passwords, API keys, and certificates&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;transit/&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Transit secrets engine&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Encryption as a service; applications send data for encryption/decryption while keys remain in VAULT&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;auth/approle/&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;AppRole authentication&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Machine credentials for applications and automation&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;auth/token/&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Token authentication&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Built-in; maximum lease adjusted to ten years&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;OpenBao&amp;rsquo;s API is largely compatible with HashiCorp Vault, so common Vault client libraries and tools generally work directly. See the &lt;a href="https://openbao.org/docs/"&gt;OpenBao documentation&lt;/a&gt; for full usage.&lt;/p&gt;</description></item><item><title>Administration</title><link>https://pigsty.io/docs/vault/admin/</link><guid>https://pigsty.io/docs/vault/admin/</guid><description>&lt;p&gt;Common VAULT administration procedures:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#create-a-cluster"&gt;Create a Cluster&lt;/a&gt;: initialize VAULT.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#check-status"&gt;Check Status&lt;/a&gt;: inspect cluster, member, and Raft state.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#administrator-credentials"&gt;Administrator Credentials&lt;/a&gt;: use the root token safely.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#add-members"&gt;Add Members&lt;/a&gt;: add members or scale from one to three nodes.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#remove-members"&gt;Remove Members&lt;/a&gt;: retire existing members.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#rebuild-a-member"&gt;Rebuild a Member&lt;/a&gt;: recover from damaged data or replace hardware.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#update-configuration"&gt;Update Configuration&lt;/a&gt;: refresh configuration and certificates.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#backups"&gt;Backups&lt;/a&gt;: create snapshots manually and keep off-site copies.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#restore-a-snapshot"&gt;Restore a Snapshot&lt;/a&gt;: roll back data or rebuild after total data loss.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#upgrade-openbao"&gt;Upgrade OpenBao&lt;/a&gt;: update the software package.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#destroy-a-cluster"&gt;Destroy a Cluster&lt;/a&gt;: remove and recreate VAULT.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;See the &lt;a href="https://pigsty.io/docs/vault/faq"&gt;VAULT FAQ&lt;/a&gt; for other questions.&lt;/p&gt;</description></item><item><title>Playbooks</title><link>https://pigsty.io/docs/vault/playbook/</link><guid>https://pigsty.io/docs/vault/playbook/</guid><description>&lt;p&gt;VAULT provides two playbooks: &lt;a href="#vaultyml"&gt;&lt;code&gt;vault.yml&lt;/code&gt;&lt;/a&gt; creates, updates, and scales clusters, while &lt;a href="#vault-rmyml"&gt;&lt;code&gt;vault-rm.yml&lt;/code&gt;&lt;/a&gt; removes members or the whole cluster.&#10;The helper scripts &lt;a href="#helper-scripts"&gt;&lt;code&gt;bin/vault-add&lt;/code&gt;&lt;/a&gt; and &lt;a href="#helper-scripts"&gt;&lt;code&gt;bin/vault-rm&lt;/code&gt;&lt;/a&gt; wrap these playbooks.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="vaultyml"&gt;&lt;code&gt;vault.yml&lt;/code&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;Source: &lt;a href="https://github.com/pgsty/pigsty/blob/main/vault.yml"&gt;&lt;code&gt;vault.yml&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Installs, configures, and starts OpenBao in the hardcoded &lt;code&gt;vault&lt;/code&gt; group. It is idempotent: repeated runs reconcile configuration changes without reinitializing the cluster.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/pgsty/pigsty/blob/main/vault.yml"&gt;&lt;code&gt;vault.yml&lt;/code&gt;&lt;/a&gt; provides these task subsets:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;id&lt;/code&gt;: derive node identity and variables through &lt;code&gt;node_id&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_assert&lt;/code&gt;: validate member IDs, data paths, ports, and VIP configuration; derive instance names and members (always runs).&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_install&lt;/code&gt;: install &lt;code&gt;openbao&lt;/code&gt; and ensure the &lt;code&gt;openbao&lt;/code&gt; system user exists.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_dir&lt;/code&gt;: create configuration, data, snapshot, and audit log directories.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_config&lt;/code&gt;: generate VAULT configuration.&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;vault_cert&lt;/code&gt;: issue and distribute TLS certificates.&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;vault_cert_issue&lt;/code&gt;: issue server certificates with Pigsty CA on the admin node.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_cert_copy&lt;/code&gt;: copy the CA certificate, server certificate, and private key to members.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_seal&lt;/code&gt;: generate and distribute the static seal key; abort if an existing member key differs from the admin node&amp;rsquo;s key.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_conf&lt;/code&gt;: render &lt;code&gt;openbao.hcl&lt;/code&gt;, the systemd unit, &lt;code&gt;bao&lt;/code&gt; client environment, and log rotation configuration.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_launch&lt;/code&gt;: start stopped members. Members already running before execution restart one at a time only if their certificates, seal key, configuration, or unit changed, waiting for each to rejoin. Newly started members skip a second restart to avoid startup races.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_init&lt;/code&gt;: initialize once on the member with the lowest &lt;code&gt;vault_seq&lt;/code&gt;, then wait for all members to unseal and complete Raft election (&lt;code&gt;leader_address&lt;/code&gt; nonempty).&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_provision&lt;/code&gt;: enable &lt;code&gt;secret/&lt;/code&gt;, &lt;code&gt;transit/&lt;/code&gt;, and &lt;code&gt;approle&lt;/code&gt;; issue the backup token, reissuing it automatically if an existing token is invalid, for example from an old cluster.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_haproxy&lt;/code&gt;: generate the &lt;code&gt;&amp;lt;VIP&amp;gt;:8200&lt;/code&gt; HAProxy endpoint on members when VIP is enabled; otherwise remove it.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_backup&lt;/code&gt;: install &lt;code&gt;vault-backup&lt;/code&gt;, its daily schedule, and take the first snapshot.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;vault_register&lt;/code&gt; (aliases &lt;code&gt;register&lt;/code&gt;, &lt;code&gt;add_metrics&lt;/code&gt;): register members with VictoriaMetrics.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;code&gt;vault_init&lt;/code&gt; runs &lt;code&gt;bao operator init&lt;/code&gt; only when &lt;strong&gt;all&lt;/strong&gt; these conditions hold:&lt;/p&gt;</description></item><item><title>Parameters</title><link>https://pigsty.io/docs/vault/param/</link><guid>https://pigsty.io/docs/vault/param/</guid><description>&lt;p&gt;VAULT provides &lt;strong&gt;eight&lt;/strong&gt; parameters in two groups:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#vault"&gt;&lt;strong&gt;&lt;code&gt;VAULT&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: five parameters for deployment and configuration.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#vault_remove"&gt;&lt;strong&gt;&lt;code&gt;VAULT_REMOVE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;: three parameters controlling cluster removal.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;VAULT deliberately exposes few settings. Member count determines cluster mode, HA access reuses NODE&amp;rsquo;s &lt;a href="#related-parameters"&gt;VIP parameters&lt;/a&gt;, and other ports, directories, engines, and backup policies follow &lt;a href="#fixed-conventions"&gt;fixed conventions&lt;/a&gt;.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="parameter-overview"&gt;Parameter Overview&#10;&lt;/h2&gt;&#10;&lt;p&gt;The &lt;a href="#vault"&gt;&lt;code&gt;VAULT&lt;/code&gt;&lt;/a&gt; group configures instance identity, cluster name, data directory, port, and service domain.&lt;/p&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--full td-table-scroll--static"&gt;&#10;&lt;table class="full-width wide expand td-table--wide"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Parameter&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: center"&gt;Type&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: center"&gt;Level&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Description&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;a href="#vault_seq"&gt;&lt;code&gt;vault_seq&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Required VAULT instance identifier&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;a href="#vault_cluster"&gt;&lt;code&gt;vault_cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Cluster name, default &lt;code&gt;vault&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;a href="#vault_data"&gt;&lt;code&gt;vault_data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Data directory, default &lt;code&gt;/data/vault&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;a href="#vault_port"&gt;&lt;code&gt;vault_port&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;API port, default &lt;code&gt;8200&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;&lt;a href="#vault_domain"&gt;&lt;code&gt;vault_domain&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: center"&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Service domain, default &lt;code&gt;vault.pigsty&lt;/code&gt;&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;The &lt;a href="#vault_remove"&gt;&lt;code&gt;VAULT_REMOVE&lt;/code&gt;&lt;/a&gt; group controls removal safeguards, data cleanup, and package removal.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://pigsty.io/docs/vault/config/</link><guid>https://pigsty.io/docs/vault/config/</guid><description>&lt;p&gt;Before deploying VAULT, define a group named &lt;code&gt;vault&lt;/code&gt; in the &lt;a href="https://pigsty.io/docs/setup/config"&gt;inventory&lt;/a&gt;. There is no profile or mode parameter: &lt;strong&gt;the mode is derived entirely from the number of members in &lt;code&gt;vault&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#single-node"&gt;Single node&lt;/a&gt;: no HA; suitable for development, testing, demos, and sandboxes.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#three-nodes"&gt;Three nodes&lt;/a&gt;: tolerates one member failure and provides HA access with an L2 VIP; suitable for production.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#two-nodes"&gt;Two nodes&lt;/a&gt;: functional but has no fault tolerance; treat it as a single-node setup.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--full td-table-scroll--static"&gt;&#10;&lt;table class="full-width"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Members&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Quorum&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Tolerated Failures&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Mode&lt;/th&gt;&#10; &lt;th scope="col" style="text-align: left"&gt;Service Endpoint&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;1&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;1&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;0&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Lab&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;vault.pigsty&lt;/code&gt; points to the member&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;2&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;2&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;0&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Warning&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Any member failure loses quorum&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td style="text-align: left"&gt;3&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;2&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;1&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;Production&lt;/td&gt;&#10; &lt;td style="text-align: left"&gt;&lt;code&gt;vault.pigsty&lt;/code&gt; points to the VIP; HAProxy forwards to the active member&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;VAULT uses OpenBao&amp;rsquo;s built-in Raft storage. Only one &lt;strong&gt;active&lt;/strong&gt; member handles writes at a time; the remaining &lt;strong&gt;standby&lt;/strong&gt; members forward requests to it.&lt;/p&gt;</description></item><item><title>Module: VAULT</title><link>https://pigsty.io/docs/vault/</link><guid>https://pigsty.io/docs/vault/</guid><description>&lt;p&gt;&lt;a href="https://openbao.org/"&gt;OpenBao&lt;/a&gt; is an open-source key and secrets management system (MPL-2.0), forked by the community after HashiCorp Vault adopted the BSL license and hosted by the Linux Foundation. Its API is largely compatible with Vault.&#10;Pigsty&amp;rsquo;s &lt;strong&gt;VAULT&lt;/strong&gt; module deploys an OpenBao cluster in the fixed &lt;code&gt;vault&lt;/code&gt; group as the deployment&amp;rsquo;s KMS (key management service) and secrets store. Pigsty manages TLS, auto-unseal, the HA endpoint, backups, monitoring, and lifecycle.&lt;/p&gt;&#10;&lt;div class="td-callout td-callout--note" role="note"&gt;&#10; &lt;div class="td-callout__title"&gt;&lt;i class="td-callout__icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;&lt;span class="td-callout__label"&gt;Current status: Beta&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="td-callout__body"&gt;&#10;&lt;p&gt;VAULT is in Beta. Deployment, repeated execution, rolling restarts, standby read forwarding, VIP access, and snapshot backup/recovery have been validated on a three-member Ubuntu 24.04 cluster. Grafana display, alert behavior, and other operating systems still need validation.&#10;&lt;strong&gt;Automatic integration is not yet implemented&lt;/strong&gt; for PGSQL &lt;code&gt;pg_tde&lt;/code&gt; or MINIO KES; manual configuration is required. Test thoroughly in your own environment before production use, especially snapshot recovery.&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;</description></item></channel></rss>