From f9ddf3f68f42080efc471e934d6bdaa1fec17459 Mon Sep 17 00:00:00 2001 From: Nicolas Vollmar Date: Sun, 1 Dec 2024 16:25:05 +0100 Subject: [PATCH 1/2] T6927: adds option to set container name server --- interface-definitions/container.xml.in | 1 + smoketest/scripts/cli/test_container.py | 12 ++++++++++++ src/conf_mode/container.py | 7 ++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/interface-definitions/container.xml.in b/interface-definitions/container.xml.in index bd2ff820da..ad18156047 100644 --- a/interface-definitions/container.xml.in +++ b/interface-definitions/container.xml.in @@ -275,6 +275,7 @@ 64 + #include Attach user defined network to container diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py index 0541384da9..db67add318 100755 --- a/smoketest/scripts/cli/test_container.py +++ b/smoketest/scripts/cli/test_container.py @@ -96,6 +96,18 @@ def test_basic(self): tmp = cmd(f'sudo podman exec -it {cont_name} sysctl kernel.msgmax') self.assertEqual(tmp, 'kernel.msgmax = 4096') + def test_name_server(self): + cont_name = 'dns-test' + name_server = '192.168.0.1' + self.cli_set(base_path + ['name', cont_name, 'allow-host-networks']) + self.cli_set(base_path + ['name', cont_name, 'image', cont_image]) + self.cli_set(base_path + ['name', cont_name, 'name-server', name_server]) + + self.cli_commit() + + n = cmd_to_json(f'sudo podman inspect {cont_name}') + self.assertEqual(n['HostConfig']['Dns'][0], name_server) + def test_cpu_limit(self): cont_name = 'c2' diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py index a7dc33d9d4..4d39620296 100755 --- a/src/conf_mode/container.py +++ b/src/conf_mode/container.py @@ -363,9 +363,14 @@ def generate_run_arguments(name, container_config): if 'allow_host_pid' in container_config: host_pid = '--pid host' + name_server = '' + if 'name_server' in container_config: + for ns in container_config['name_server']: + name_server += f'--dns {ns}' + container_base_cmd = f'--detach --interactive --tty --replace {capabilities} --cpus {cpu_quota} {sysctl_opt} ' \ f'--memory {memory}m --shm-size {shared_memory}m --memory-swap 0 --restart {restart} ' \ - f'--name {name} {hostname} {device} {port} {volume} {env_opt} {label} {uid} {host_pid}' + f'--name {name} {hostname} {device} {port} {name_server} {volume} {env_opt} {label} {uid} {host_pid}' entrypoint = '' if 'entrypoint' in container_config: From 1db8a48a8b9d1b7b125d9ca29cc4c48534640375 Mon Sep 17 00:00:00 2001 From: Nicolas Vollmar Date: Mon, 9 Dec 2024 07:18:05 +0100 Subject: [PATCH 2/2] T6927: adds option to set container name server -add container check --- smoketest/scripts/cli/test_container.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py index db67add318..5d574ab7d9 100755 --- a/smoketest/scripts/cli/test_container.py +++ b/smoketest/scripts/cli/test_container.py @@ -108,6 +108,9 @@ def test_name_server(self): n = cmd_to_json(f'sudo podman inspect {cont_name}') self.assertEqual(n['HostConfig']['Dns'][0], name_server) + tmp = cmd(f'sudo podman exec -it {cont_name} cat /etc/resolv.conf') + self.assertIn(name_server, tmp) + def test_cpu_limit(self): cont_name = 'c2'