diff --git a/docs/Extensions.md b/docs/Extensions.md index b4cb22e..d8e101d 100644 --- a/docs/Extensions.md +++ b/docs/Extensions.md @@ -27,6 +27,14 @@ services: For explanations of these extensions, please refer to the [Podman Documentation](https://docs.podman.io/). +## Network management + +The following extension keys are available under network configuration: + +* `x-podman.disable-dns` - Disable the DNS plugin for the network when set to 'true'. + +For explanations of these extensions, please refer to the +[Podman network create command Documentation](https://docs.podman.io/en/latest/markdown/podman-network-create.1.html). ## Per-network MAC-addresses diff --git a/newsfragments/x-podman.disable-dns.feature b/newsfragments/x-podman.disable-dns.feature new file mode 100644 index 0000000..6d659b5 --- /dev/null +++ b/newsfragments/x-podman.disable-dns.feature @@ -0,0 +1 @@ +- Add support for 'x-podman.disable-dns' to allow disabling DNS plugin on defined networks. diff --git a/podman_compose.py b/podman_compose.py index faae0a6..d506802 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -833,6 +833,8 @@ def get_network_create_args(net_desc, proj_name, net_name): ipam_config_ls = ipam.get("config", []) if net_desc.get("enable_ipv6"): args.append("--ipv6") + if net_desc.get("x-podman.disable_dns"): + args.append("--disable-dns") if isinstance(ipam_config_ls, dict): ipam_config_ls = [ipam_config_ls] diff --git a/tests/unit/test_get_network_create_args.py b/tests/unit/test_get_network_create_args.py index 55d3021..53aa63d 100644 --- a/tests/unit/test_get_network_create_args.py +++ b/tests/unit/test_get_network_create_args.py @@ -201,3 +201,27 @@ class TestGetNetworkCreateArgs(unittest.TestCase): ] args = get_network_create_args(net_desc, proj_name, net_name) self.assertEqual(args, expected_args) + + def test_disable_dns(self): + net_desc = { + "labels": [], + "internal": False, + "driver": None, + "driver_opts": {}, + "ipam": {"config": []}, + "enable_ipv6": False, + "x-podman.disable_dns": True, + } + proj_name = "test_project" + net_name = "test_network" + expected_args = [ + "create", + "--label", + f"io.podman.compose.project={proj_name}", + "--label", + f"com.docker.compose.project={proj_name}", + "--disable-dns", + net_name, + ] + args = get_network_create_args(net_desc, proj_name, net_name) + self.assertEqual(args, expected_args)