diff options
author | Christian Breunig <christian@breunig.cc> | 2024-12-09 22:13:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-09 22:13:26 +0100 |
commit | 3ed6f02a66fd9d02a4cc3c45b2605cb3d8ad0d2e (patch) | |
tree | 7cf2ba952508537dbbd8fbae8bf574033db4d434 | |
parent | 6733ebcf129193a373eca870ebe5f2d6d65b9476 (diff) | |
parent | 1db8a48a8b9d1b7b125d9ca29cc4c48534640375 (diff) | |
download | vyos-1x-3ed6f02a66fd9d02a4cc3c45b2605cb3d8ad0d2e.tar.gz vyos-1x-3ed6f02a66fd9d02a4cc3c45b2605cb3d8ad0d2e.zip |
Merge pull request #4218 from nvollmar/T6927
T6927: adds option to set container name server
-rw-r--r-- | interface-definitions/container.xml.in | 1 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_container.py | 15 | ||||
-rwxr-xr-x | src/conf_mode/container.py | 7 |
3 files changed, 22 insertions, 1 deletions
diff --git a/interface-definitions/container.xml.in b/interface-definitions/container.xml.in index bd2ff820d..ad1815604 100644 --- a/interface-definitions/container.xml.in +++ b/interface-definitions/container.xml.in @@ -275,6 +275,7 @@ </properties> <defaultValue>64</defaultValue> </leafNode> + #include <include/name-server-ipv4-ipv6.xml.i> <tagNode name="network"> <properties> <help>Attach user defined network to container</help> diff --git a/smoketest/scripts/cli/test_container.py b/smoketest/scripts/cli/test_container.py index 0541384da..5d574ab7d 100755 --- a/smoketest/scripts/cli/test_container.py +++ b/smoketest/scripts/cli/test_container.py @@ -96,6 +96,21 @@ class TestContainer(VyOSUnitTestSHIM.TestCase): 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) + + 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' diff --git a/src/conf_mode/container.py b/src/conf_mode/container.py index a7dc33d9d..4d3962029 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: |