Add environmental variables to allow for the script to be run without consul_io.ini. This allows it to run dynamically without any prerequisite config file (#30900)
This commit is contained in:
parent
534de2df27
commit
6711c9524e
1 changed files with 11 additions and 0 deletions
|
@ -49,12 +49,14 @@ Other options include:
|
|||
'datacenter':
|
||||
|
||||
which restricts the included nodes to those from the given datacenter
|
||||
This can also be set with the environmental variable CONSUL_DATACENTER
|
||||
|
||||
'url':
|
||||
|
||||
the URL of the Consul cluster. host, port and scheme are derived from the
|
||||
URL. If not specified, connection configuration defaults to http requests
|
||||
to localhost on port 8500.
|
||||
This can also be set with the environmental variable CONSUL_URL
|
||||
|
||||
'domain':
|
||||
|
||||
|
@ -453,6 +455,7 @@ class ConsulConfig(dict):
|
|||
def __init__(self):
|
||||
self.read_settings()
|
||||
self.read_cli_args()
|
||||
self.read_env_vars()
|
||||
|
||||
def has_config(self, name):
|
||||
if hasattr(self, name):
|
||||
|
@ -497,6 +500,14 @@ class ConsulConfig(dict):
|
|||
if getattr(args, arg):
|
||||
setattr(self, arg, getattr(args, arg))
|
||||
|
||||
def read_env_vars(self):
|
||||
env_var_options = ['datacenter', 'url']
|
||||
for option in env_var_options:
|
||||
value = None
|
||||
env_var = 'CONSUL_' + option.upper()
|
||||
if os.environ.get(env_var):
|
||||
setattr(self, option, os.environ.get(env_var))
|
||||
|
||||
def get_availability_suffix(self, suffix, default):
|
||||
if self.has_config(suffix):
|
||||
return self.has_config(suffix)
|
||||
|
|
Loading…
Reference in a new issue