Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion vm_supervisor/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ def setup(self):

elif self.DNS_RESOLUTION == DnsResolver.resolvectl:
self.DNS_NAMESERVERS = list(
resolvectl_dns_servers_ipv4(interface=self.NETWORK_INTERFACE)
resolvectl_dns_servers(interface=self.NETWORK_INTERFACE)
)
else:
assert "This should never happen"
Expand Down
10 changes: 8 additions & 2 deletions vm_supervisor/vm/firecracker/program.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from enum import Enum
from pathlib import Path
from typing import Dict, List, Optional, Tuple
import ipaddress

import msgpack
from aiohttp import ClientResponseError
Expand Down Expand Up @@ -38,6 +39,7 @@
Volume,
)


logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -388,9 +390,13 @@ async def _setup_configuration(
ipv6 = self.get_vm_ipv6()
ipv6_gateway = self.get_vm_ipv6_gateway()

if not settings.DNS_NAMESERVERS:
dns_servers = settings.DNS_NAMESERVERS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be great to have a dns_servers() method in Settings that uses ipaddress to perform the conversion to `IPv4/IPv6 address objects only once.

if not dns_servers:
raise ValueError("Invalid configuration: DNS nameservers missing")

# Apply DNS IPv6 filtering here if needed
dns_servers = [server for server in dns_servers if not ipaddress.ip_address(server).version == 6]

runtime_config = self.fvm.runtime_config
assert runtime_config

Expand All @@ -405,7 +411,7 @@ async def _setup_configuration(
ipv6=ipv6,
route=route,
ipv6_gateway=ipv6_gateway,
dns_servers=settings.DNS_NAMESERVERS,
dns_servers=dns_servers,
code=code,
encoding=self.resources.code_encoding,
entrypoint=self.resources.code_entrypoint,
Expand Down