#!/bin/sh # vim: syntax=sh set -euo pipefail # ES is using ES_JAVA_HOME, and having JAVA_HOME set split warnings in logs unset JAVA_HOME [[- $c := merge .elasticsearch.server .elasticsearch . ]] echo "Adding elastic bootstrap password in the keystore" [ -f config/elasticsearch.keystore ] || elasticsearch-keystore create echo '{{ with secret "[[ .vault.root ]]kv/service/[[ .instance ]]" }}{{ .Data.data.es_bootstrap_pwd }}{{ end }}' | elasticsearch-keystore add -x 'bootstrap.password' {{ with secret "[[ .vault.root ]]kv/service/[[ .instance ]]" -}} echo "Creating exporter user" (elasticsearch-users list | grep -qE '^exporter$') || elasticsearch-users useradd exporter -r monitor -p '{{ .Data.data.exporter_pwd }}' {{- end }} [[- range $k, $v := $c.users ]] echo "Creating user [[ $k ]]" (elasticsearch-users list | grep -qE '^[[ $k ]]$') || elasticsearch-users useradd [[ $k ]] -p '[[ if has $v "password" ]][[ $v.password ]][[ else ]]{{ with secret "[[ $.vault.root ]]kv/service/[[ $.instance ]]" }}{{ .Data.data.[[ $k | regexp.Replace "\\-" "_" ]]_pwd }}{{ end }}[[ end ]]' [[- if gt (len $v.roles) 0 ]] -r [[ join $v.roles "," ]][[ end ]] [[- end ]]