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
|
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:
|
data:
|
||||||
start.sh: |
|
start.sh: |
|
||||||
{{ tuple "bin/_start.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ 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 }}
|
{{- end }}
|
||||||
|
@ -52,11 +52,6 @@ spec:
|
|||||||
key: MONGODB_ROOT_USERNAME
|
key: MONGODB_ROOT_USERNAME
|
||||||
command:
|
command:
|
||||||
- /tmp/start.sh
|
- /tmp/start.sh
|
||||||
lifecycle:
|
|
||||||
postStart:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /tmp/setup_admin_user.sh
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
exec:
|
exec:
|
||||||
command:
|
command:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user