summaryrefslogtreecommitdiff
path: root/trove
diff options
context:
space:
mode:
authorHirotaka Wakabayashi <hiwkby@yahoo.com>2022-03-22 21:53:30 +0900
committerHirotaka Wakabayashi <hiwkby@yahoo.com>2022-03-23 09:48:25 +0900
commit92471bd4f39a0805bd1cbd732fa12d530e607c8f (patch)
tree568250fc7ded0dc1250b29efac84ffa3252fd28c /trove
parente4bf4222b4e6b29c0a5cfef892f25abf2b523a3c (diff)
downloadtrove-92471bd4f39a0805bd1cbd732fa12d530e607c8f.tar.gz
Adds docker daemon config to injected files
This PR adds docker daemon config to injected files when docker_bridge_network_ip option is defined in trove.conf. Original problem is that Trove developers unable to transfer files between GuestVMs and Controller host when controller host address range is same with docker bridge network one. Task: 44805 Story: 2009928 Change-Id: I6ad7eb7b2a7fb0686604b69d0175ec0d06f60384
Diffstat (limited to 'trove')
-rw-r--r--trove/common/cfg.py2
-rw-r--r--trove/instance/models.py14
2 files changed, 16 insertions, 0 deletions
diff --git a/trove/common/cfg.py b/trove/common/cfg.py
index 65c030cf..e7d08073 100644
--- a/trove/common/cfg.py
+++ b/trove/common/cfg.py
@@ -441,6 +441,8 @@ common_opts = [
help='Extension for default datastore managers. '
'Allows the use of custom managers for each of '
'the datastores supported by Trove.'),
+ cfg.StrOpt('docker_bridge_network_ip', default=None,
+ help='Docker bridge network IP.'),
cfg.StrOpt('template_path', default='/etc/trove/templates/',
help='Path which leads to datastore templates.'),
cfg.BoolOpt('sql_query_logging', default=False,
diff --git a/trove/instance/models.py b/trove/instance/models.py
index 4691b6b9..fe424bc8 100644
--- a/trove/instance/models.py
+++ b/trove/instance/models.py
@@ -1030,6 +1030,20 @@ class BaseInstance(SimpleInstance):
f"CONTROLLER={CONF.controller_address}"
)
+ # Since Victoria, guest agent uses docker.
+ # Configure docker's daemon.json if the directives exist in trove.conf
+ docker_daemon_values = {}
+
+ # Configure docker_bridge_network_ip in order to change the docker
+ # default range(172.17.0.0/16) of bridge network
+ if CONF.docker_bridge_network_ip:
+ docker_daemon_values["bip"] = CONF.docker_bridge_network_ip
+
+ if docker_daemon_values:
+ files['/etc/docker/daemon.json'] = (
+ json.dumps(docker_daemon_values)
+ )
+
return files
def reset_status(self):