aboutsummaryrefslogtreecommitdiff
path: root/docker/base/set_configs.py
diff options
context:
space:
mode:
Diffstat (limited to 'docker/base/set_configs.py')
-rw-r--r--docker/base/set_configs.py37
1 files changed, 27 insertions, 10 deletions
diff --git a/docker/base/set_configs.py b/docker/base/set_configs.py
index 12da192c0..cd9ccd83f 100644
--- a/docker/base/set_configs.py
+++ b/docker/base/set_configs.py
@@ -140,21 +140,38 @@ def set_permissions(data):
def load_config():
- config_file = '/var/lib/kolla/config_files/config.json'
- LOG.info('Loading config file at {}'.format(config_file))
+ def load_from_env():
+ config_raw = os.environ.get("KOLLA_CONFIG")
+ if config_raw is None:
+ return None
- # Attempt to read config file
- with open(config_file) as f:
+ # Attempt to read config
try:
- config = json.load(f)
+ return json.loads(config_raw)
except ValueError:
- LOG.error('Invalid json file found at {}'.format(config_file))
- sys.exit(1)
- except IOError as e:
- LOG.error('Could not read file {}. Failed with error {}'.format(
- config_file, e))
+ LOG.error('Invalid json for Kolla config')
sys.exit(1)
+ def load_from_file():
+ config_file = '/var/lib/kolla/config_files/config.json'
+ LOG.info('Loading config file at {}'.format(config_file))
+
+ # Attempt to read config file
+ with open(config_file) as f:
+ try:
+ return json.load(f)
+ except ValueError:
+ LOG.error('Invalid json file found at {}'.format(config_file))
+ sys.exit(1)
+ except IOError as e:
+ LOG.error('Could not read file {}. Failed with error {}'
+ .format(config_file, e))
+ sys.exit(1)
+
+ config = load_from_env()
+ if config is None:
+ config = load_from_file()
+
LOG.info('Validating config file')
validate_config(config)