From 92471bd4f39a0805bd1cbd732fa12d530e607c8f Mon Sep 17 00:00:00 2001 From: Hirotaka Wakabayashi Date: Tue, 22 Mar 2022 21:53:30 +0900 Subject: 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 --- trove/common/cfg.py | 2 ++ trove/instance/models.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+) (limited to 'trove') 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): -- cgit v1.2.1