Add vautlDIFF.sh
This commit is contained in:
37
vautlDIFF.sh
Normal file
37
vautlDIFF.sh
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Compare a KV secret between two Vault clusters (works for KV v1 and v2)
|
||||||
|
# Usage: ./vault-secret-diff.sh secret/path
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# --- Vault cluster configuration ---
|
||||||
|
VAULT_ADDR_1="https://vault-cluster1.example.com"
|
||||||
|
VAULT_TOKEN_1="token_for_cluster1"
|
||||||
|
|
||||||
|
VAULT_ADDR_2="https://vault-cluster2.example.com"
|
||||||
|
VAULT_TOKEN_2="token_for_cluster2"
|
||||||
|
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
echo "Usage: $0 secret/path"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SECRET_PATH="$1"
|
||||||
|
|
||||||
|
# --- Get secret from both clusters ---
|
||||||
|
VAULT_ADDR="$VAULT_ADDR_1" VAULT_TOKEN="$VAULT_TOKEN_1" \
|
||||||
|
vault kv get -format=json "$SECRET_PATH" > /tmp/vault1.json
|
||||||
|
|
||||||
|
VAULT_ADDR="$VAULT_ADDR_2" VAULT_TOKEN="$VAULT_TOKEN_2" \
|
||||||
|
vault kv get -format=json "$SECRET_PATH" > /tmp/vault2.json
|
||||||
|
|
||||||
|
# --- Normalize JSON for reliable diff ---
|
||||||
|
jq -S . /tmp/vault1.json > /tmp/vault1_sorted.json
|
||||||
|
jq -S . /tmp/vault2.json > /tmp/vault2_sorted.json
|
||||||
|
|
||||||
|
# --- Compare ---
|
||||||
|
if diff -u /tmp/vault1_sorted.json /tmp/vault2_sorted.json; then
|
||||||
|
echo "Secrets match"
|
||||||
|
else
|
||||||
|
echo "Secrets differ"
|
||||||
|
fi
|
Reference in New Issue
Block a user