Vaultメモ
VaultのHelmで普通にインストールすると、手動で初期化とUnseal(キーの入力)が必要となる。 下記のスクリプトを利用すれば、Vault起動時に初期化とunsealを行い、手動でのConfigをスキップすることができる。
vaules.yaml
server:
readinessProbe:
enabled: false
postStart:
- sh
- /vault/userconfig/myscript/init-unseal.sh
extraVolumes:
- type: configMap
name: myscript
path: /vault/userconfig
init-unseal.sh
#!/bin/sh
# Waiting if vault server is not started.
while true ;
do
vault status
[[ $? -eq 1 ]] || break
done
# Initialize vault
vault operator init -key-shares=3 > /home/vault/init-tmp
# If Initialize is successed, keep seal-keys.
if [ $? -eq 0 ]
then
mv /home/vault/init-tmp /vault/data/seal-keys
else
rm /home/vault/init-tmp
fi
# Unseal
for i in 1 2 3
do
vault operator unseal $(grep "Key $i" /vault/data/seal-keys |sed 's/Unseal Key '$i': //i')
done
kubectl create ns vault kubectl create configmap myscript --from-file=init-unseal.sh -nvault helm install vaullt hashicorp/vault -nvault -f values.yaml
