MongoDB: Fix race with setting up auth for DB
This PS moves the post-start script contents into the main launch script to resolve a race condition and also make debugging issues simpler. Change-Id: I0b2216b0804db4d78991782ee31d2500b055447c
This commit is contained in:
parent
ac100bca35
commit
c5cc41e551
@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
{{/*
|
||||
Copyright 2017 The Openstack-Helm Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/}}
|
||||
|
||||
set -ex
|
||||
mongo admin \
|
||||
--username "${ADMIN_USER}" \
|
||||
--password "${ADMIN_PASS}" \
|
||||
--eval "db.changeUserPassword(\"${ADMIN_USER}\", \"${ADMIN_PASS}\")" || \
|
||||
mongo admin \
|
||||
--eval "db.createUser({ user: \"${ADMIN_USER}\", \
|
||||
pwd: \"${ADMIN_PASS}\", \
|
||||
roles: [ { role: \"userAdminAnyDatabase\", \
|
||||
db: \"admin\" } ] });"
|
@ -17,4 +17,31 @@ limitations under the License.
|
||||
*/}}
|
||||
|
||||
set -ex
|
||||
exec mongod --auth
|
||||
|
||||
mongod --auth &
|
||||
|
||||
t=0
|
||||
until mongo --eval "db.adminCommand('ping')"; do
|
||||
echo "waiting for mongodb to start"
|
||||
sleep 1
|
||||
t=$(($t+1))
|
||||
if [ $t -ge 30 ] ; then
|
||||
echo "mongodb did not start, giving up"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
#NOTE(portdirect): stop sending commands to stdout to prevent root password
|
||||
# being sent to logs.
|
||||
set +x
|
||||
mongo admin \
|
||||
--username "${ADMIN_USER}" \
|
||||
--password "${ADMIN_PASS}" \
|
||||
--eval "db.changeUserPassword(\"${ADMIN_USER}\", \"${ADMIN_PASS}\")" || \
|
||||
mongo admin \
|
||||
--eval "db.createUser({ user: \"${ADMIN_USER}\", \
|
||||
pwd: \"${ADMIN_PASS}\", \
|
||||
roles: [ { role: \"userAdminAnyDatabase\", \
|
||||
db: \"admin\" } ] });"
|
||||
set -x
|
||||
wait
|
||||
|
@ -24,6 +24,4 @@ metadata:
|
||||
data:
|
||||
start.sh: |
|
||||
{{ tuple "bin/_start.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||
setup_admin_user.sh: |
|
||||
{{ tuple "bin/_setup_admin_user.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||
{{- end }}
|
||||
|
@ -52,11 +52,6 @@ spec:
|
||||
key: MONGODB_ROOT_USERNAME
|
||||
command:
|
||||
- /tmp/start.sh
|
||||
lifecycle:
|
||||
postStart:
|
||||
exec:
|
||||
command:
|
||||
- /tmp/setup_admin_user.sh
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
|
Loading…
x
Reference in New Issue
Block a user