summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-09-18 16:34:41 +0200
committerGitHub <noreply@github.com>2025-09-18 16:34:41 +0200
commitf8ecb5136beba589cb01d241b09b1832a00b0e0d (patch)
tree1ac25c0a52747cc0a55e70449c019d95a50d41c5
parent3fec74185970d4ad3b176e3126ffcdd5ab07b11d (diff)
parent5c5d3a6b839b2a612fefb7d5f0443b80ceb156d0 (diff)
downloadvyos-1x-f8ecb5136beba589cb01d241b09b1832a00b0e0d.tar.gz
vyos-1x-f8ecb5136beba589cb01d241b09b1832a00b0e0d.zip
Merge pull request #4724 from l0crian1/fix-container-branch
container: T7681: fix multiple name servers
-rwxr-xr-xsmoketest/scripts/cli/test_container.py7
-rwxr-xr-xsrc/conf_mode/container.py8
2 files changed, 10 insertions, 5 deletions
diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py
index 864207308..73fbb907f 100755
--- a/smoketest/scripts/cli/test_container.py
+++ b/smoketest/scripts/cli/test_container.py
@@ -117,13 +117,14 @@ class TestContainer(VyOSUnitTestSHIM.TestCase):
def test_name_server(self):
cont_name = 'dns-test'
net_name = 'net-test'
- name_server = '192.168.0.1'
+ name_servers = ['192.168.0.1', '192.168.0.2']
prefix = '192.0.2.0/24'
self.cli_set(base_path + ['network', net_name, 'prefix', prefix])
self.cli_set(base_path + ['name', cont_name, 'image', busybox_image])
- self.cli_set(base_path + ['name', cont_name, 'name-server', name_server])
+ for name_server in name_servers:
+ self.cli_set(base_path + ['name', cont_name, 'name-server', name_server])
self.cli_set(
base_path
+ [
@@ -144,7 +145,7 @@ class TestContainer(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
n = cmd_to_json(f'sudo podman inspect {cont_name}')
- self.assertEqual(n['HostConfig']['Dns'][0], name_server)
+ self.assertEqual(n['HostConfig']['Dns'], name_servers)
tmp = cmd(f'sudo podman exec -it {cont_name} cat /etc/resolv.conf')
self.assertIn(name_server, tmp)
diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py
index 8950f857e..4fe1e432c 100755
--- a/src/conf_mode/container.py
+++ b/src/conf_mode/container.py
@@ -443,10 +443,14 @@ def generate_run_arguments(name, container_config, host_ident):
if 'allow_host_pid' in container_config:
host_pid = '--pid host'
- name_server = ''
+ name_server = []
if 'name_server' in container_config:
for ns in container_config['name_server']:
- name_server += f'--dns {ns}'
+ name_server.append(f'--dns {ns}')
+ if name_server:
+ name_server = ' '.join(name_server)
+ else:
+ name_server = ''
container_base_cmd = f'--detach --interactive --tty --replace {capabilities} {privileged} --cpus {cpu_quota} {sysctl_opt} ' \
f'--memory {memory}m --shm-size {shared_memory}m --memory-swap 0 --restart {restart} --log-driver={log_driver} ' \