From 669f60260440914d60d55453c07ba2b0751e8cb2 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Mon, 4 Nov 2019 17:01:04 -0700 Subject: [PATCH] Move bootstrap password to an environment var Currently if you try to use a space in the keystone password, the bootstrap process fails due to the password being evaulated as command line arguments. We can work around this by using an environment var to pass the password to the script that needs to be run. Conflicts: puppet/services/keystone.yaml Change-Id: I03754206781bc8f62d143b2c541f594ca3207a0f Closes-Bug: #1811005 (cherry picked from commit 068527d139b4b521782873fdd97ac46cb10b0885) --- docker/services/keystone.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/services/keystone.yaml b/docker/services/keystone.yaml index 0c12bedd81..d591e18e02 100644 --- a/docker/services/keystone.yaml +++ b/docker/services/keystone.yaml @@ -173,8 +173,14 @@ outputs: start_order: 3 action: exec user: root + # NOTE(mwhahaha): We use $$ because we're executing in python to + # call as shell script and passing the command to run as arguments + # to that shell script. So when it is called via eval, the escaped + # $ properly evaulates command: - [ 'keystone', '/usr/bin/bootstrap_host_exec', 'keystone' ,'keystone-manage', 'bootstrap', '--bootstrap-password', {get_param: AdminPassword} ] + [ 'keystone', '/usr/bin/bootstrap_host_exec', 'keystone' ,'keystone-manage', 'bootstrap', '--bootstrap-password', '$$KEYSTONE_BOOTSTRAP_PASSWORD' ] + environment: + KEYSTONE_BOOTSTRAP_PASSWORD: {get_param: AdminPassword} keystone_cron: start_order: 4 image: *keystone_image