Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: vyos/vyos-1x
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3ad59858061c3a88aae026e405ca2bb0ba601838
Choose a base ref
..
head repository: vyos/vyos-1x
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: b9e3eb8757b022eaf494515ac4e66890218c42e2
Choose a head ref
Showing with 29 additions and 5 deletions.
  1. +2 −0 .github/workflows/package-smoketest.yml
  2. +2 −1 CODEOWNERS
  3. +1 −0 interface-definitions/container.xml.in
  4. +3 −3 python/vyos/configtree.py
  5. +15 −0 smoketest/scripts/cli/test_container.py
  6. +6 −1 src/conf_mode/container.py
2 changes: 2 additions & 0 deletions .github/workflows/package-smoketest.yml
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@ env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed for PR comments
BUILD_BY: autobuild@vyos.net
DEBIAN_MIRROR: http://deb.debian.org/debian/
DEBIAN_SECURITY_MIRROR: http://deb.debian.org/debian-security
VYOS_MIRROR: https://packages.vyos.net/repositories/current/

jobs:
@@ -56,6 +57,7 @@ jobs:
--build-type release \
--custom-package vyos-1x-smoketest \
--debian-mirror $DEBIAN_MIRROR \
--debian-security-mirror $DEBIAN_SECURITY_MIRROR \
--version ${{ steps.version.outputs.build_version }} \
--vyos-mirror $VYOS_MIRROR \
generic
3 changes: 2 additions & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
* @vyos/reviewers
# Users from reviewers github team
* @dmbaturin @sarthurdev @jestabro @sever-sever @c-po @fett0 @nicolas-fort @zdc
1 change: 1 addition & 0 deletions interface-definitions/container.xml.in
Original file line number Diff line number Diff line change
@@ -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>
6 changes: 3 additions & 3 deletions python/vyos/configtree.py
Original file line number Diff line number Diff line change
@@ -469,15 +469,15 @@ def mask_inclusive(left, right, libpath=LIBPATH):

return tree

def reference_tree_to_json(from_dir, to_file, libpath=LIBPATH):
def reference_tree_to_json(from_dir, to_file, internal_cache="", libpath=LIBPATH):
try:
__lib = cdll.LoadLibrary(libpath)
__reference_tree_to_json = __lib.reference_tree_to_json
__reference_tree_to_json.argtypes = [c_char_p, c_char_p]
__reference_tree_to_json.argtypes = [c_char_p, c_char_p, c_char_p]
__get_error = __lib.get_error
__get_error.argtypes = []
__get_error.restype = c_char_p
res = __reference_tree_to_json(from_dir.encode(), to_file.encode())
res = __reference_tree_to_json(internal_cache.encode(), from_dir.encode(), to_file.encode())
except Exception as e:
raise ConfigTreeError(e)
if res == 1:
15 changes: 15 additions & 0 deletions smoketest/scripts/cli/test_container.py
Original file line number Diff line number Diff line change
@@ -96,6 +96,21 @@ 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)

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'

7 changes: 6 additions & 1 deletion src/conf_mode/container.py
Original file line number Diff line number Diff line change
@@ -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: