deploy-templates/charts/vault/templates/script-init-configmap.yaml (78 lines of code) (raw):
apiVersion: v1
kind: ConfigMap
metadata:
name: script-init
namespace: {{ .Release.Namespace }}
labels:
helm.sh/chart: {{ include "vault.chart" . }}
app.kubernetes.io/name: {{ include "vault.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
script-init.sh: |-
#!/bin/sh
vault_url=http://hashicorp-vault:8200
#vault init
curl --request PUT --data @/cfg/init-config/init-config.json $vault_url/v1/sys/init >> /var/tmp/init.txt
token=$(cat /var/run/secrets/kubernetes.io/serviceaccount/..data/token)
vault_root_token=$(cat /var/tmp/init.txt | jq .root_token -r)
vault_root_token_b=$(echo -n $vault_root_token | base64)
recovery_keys0=$(cat /var/tmp/init.txt | jq .recovery_keys[0] -r)
recovery_keys_b0=$(echo $recovery_keys0 | base64 | tr -d '\n')
recovery_keys1=$(cat /var/tmp/init.txt | jq .recovery_keys[1] -r)
recovery_keys_b1=$(echo $recovery_keys1 | base64 | tr -d '\n')
recovery_keys2=$(cat /var/tmp/init.txt | jq .recovery_keys[2] -r)
recovery_keys_b2=$(echo $recovery_keys2 | base64 | tr -d '\n')
recovery_keys_base640=$(cat /var/tmp/init.txt | jq .recovery_keys_base64[0] -r)
recovery_keys_base64_b0=$(echo -n $recovery_keys_base640 | base64)
recovery_keys_base641=$(cat /var/tmp/init.txt | jq .recovery_keys_base64[1] -r)
recovery_keys_base64_b1=$(echo -n $recovery_keys_base641 | base64)
recovery_keys_base642=$(cat /var/tmp/init.txt | jq .recovery_keys_base64[2] -r)
recovery_keys_base64_b2=$(echo -n $recovery_keys_base642 | base64)
#create secret with VAULT_ROOT_TOKEN
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-root-token"}, "data":{"VAULT_ROOT_TOKEN": "'"$vault_root_token_b"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
#create secret with recovery_keys
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-0"}, "data":{"RECOVERY_KEY_0": "'"$recovery_keys_b0"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-1"}, "data":{"RECOVERY_KEY_1": "'"$recovery_keys_b1"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-2"}, "data":{"RECOVERY_KEY_2": "'"$recovery_keys_b2"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
#create secret with recovery_keys_base64
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-base64-0"}, "data":{"RECOVERY_KEY_BASE_64_0": "'"$recovery_keys_base64_b0"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-base64-1"}, "data":{"RECOVERY_KEY_BASE_64_1": "'"$recovery_keys_base64_b1"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets
curl -k \
-X POST \
-d '{"kind": "Secret", "apiVersion": "v1", "metadata": {"name": "vault-recovery-key-base64-2"}, "data":{"RECOVERY_KEY_BASE_64_2": "'"$recovery_keys_base64_b2"'"}, "type": "Opaque"}' \
-H "Authorization: Bearer ${token}" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
{{ .Values.openshiftApiUrl }}/api/v1/namespaces/{{ .Release.Namespace }}/secrets