diff options
author | wuchunyang <wuchunyang@yovole.com> | 2022-08-09 22:32:23 +0800 |
---|---|---|
committer | wu.chunyang <wuchunyang@yovole.com> | 2022-08-09 23:50:03 +0800 |
commit | 54c2579a35bec50540a728d07723cef3c0fa4665 (patch) | |
tree | f8d24b735d23b9d9a30c010aa91254119ba55e94 | |
parent | d126aacf9012a2dc572967ee75b4ccbf77fcc2ea (diff) | |
download | trove-54c2579a35bec50540a728d07723cef3c0fa4665.tar.gz |
Fix docker start failed in guest-agent
docker_insecure_registries is a StrOpt, but the default
value is '[]' which is true for a string.
Change-Id: I4b8841cc77324f274bc8210d328bc42ddef5d056
-rw-r--r-- | releasenotes/notes/fix-docker-start-failed-160e79b6e5494edd.yaml | 5 | ||||
-rw-r--r-- | trove/common/cfg.py | 4 | ||||
-rw-r--r-- | trove/instance/models.py | 2 | ||||
-rw-r--r-- | trove/tests/unittests/taskmanager/test_models.py | 7 |
4 files changed, 15 insertions, 3 deletions
diff --git a/releasenotes/notes/fix-docker-start-failed-160e79b6e5494edd.yaml b/releasenotes/notes/fix-docker-start-failed-160e79b6e5494edd.yaml new file mode 100644 index 00000000..57de117c --- /dev/null +++ b/releasenotes/notes/fix-docker-start-failed-160e79b6e5494edd.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fix docker start failed in trove guest-agent when + docker_insecure_registries is not set. diff --git a/trove/common/cfg.py b/trove/common/cfg.py index 58dd3af6..60692ac9 100644 --- a/trove/common/cfg.py +++ b/trove/common/cfg.py @@ -449,8 +449,8 @@ common_opts = [ 'the datastores supported by Trove.'), cfg.StrOpt('docker_bridge_network_ip', default=None, help='Docker bridge network IP.'), - cfg.StrOpt('docker_insecure_registries', default=[], - help='Docker insecure registries for image development.'), + cfg.ListOpt('docker_insecure_registries', default=[], + help='Docker insecure registries for image development.'), 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 8469f174..1b6e3078 100644 --- a/trove/instance/models.py +++ b/trove/instance/models.py @@ -1046,7 +1046,7 @@ class BaseInstance(SimpleInstance): docker_daemon_values["bip"] = CONF.docker_bridge_network_ip if CONF.docker_insecure_registries: docker_daemon_values["insecure-registries"] = \ - CONF.docker_insecure_registries.split(',') + CONF.docker_insecure_registries if docker_daemon_values: files['/etc/docker/daemon.json'] = ( diff --git a/trove/tests/unittests/taskmanager/test_models.py b/trove/tests/unittests/taskmanager/test_models.py index 0af1aa16..7497e1dd 100644 --- a/trove/tests/unittests/taskmanager/test_models.py +++ b/trove/tests/unittests/taskmanager/test_models.py @@ -11,6 +11,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +import json import os from tempfile import NamedTemporaryFile @@ -257,6 +258,8 @@ class FreshInstanceTasksTest(BaseFreshInstanceTasksTest): cfg.CONF.set_override('guest_config', self.guestconfig) cfg.CONF.set_override('guest_info', 'guest_info.conf') cfg.CONF.set_override('injected_config_location', '/etc/trove/conf.d') + cfg.CONF.set_override('docker_insecure_registries', + '127.0.0.1:4000,127.0.0.1:5000') # execute files = self.freshinstancetasks.get_injected_files("test", 'test') @@ -268,6 +271,9 @@ class FreshInstanceTasksTest(BaseFreshInstanceTasksTest): self.assertEqual( self.guestconfig_content, files['/etc/trove/conf.d/trove-guestagent.conf']) + deamon_json = json.loads(files.get('/etc/docker/daemon.json')) + self.assertIn('127.0.0.1:4000', deamon_json.get('insecure-registries')) + self.assertIn('127.0.0.1:5000', deamon_json.get('insecure-registries')) @patch.object(DBInstance, 'get_by') def test_create_instance_guestconfig_compat(self, patch_get_by): @@ -285,6 +291,7 @@ class FreshInstanceTasksTest(BaseFreshInstanceTasksTest): self.assertEqual( self.guestconfig_content, files['/etc/trove-guestagent.conf']) + self.assertFalse(files.get('/etc/docker/daemon.json')) def test_create_instance_with_az_kwarg(self): # execute |