Skip to content

feat: migrate systemd resolve settings to os configure component#114

Merged
anson627 merged 1 commit intomainfrom
hbc/resolve
Mar 5, 2026
Merged

feat: migrate systemd resolve settings to os configure component#114
anson627 merged 1 commit intomainfrom
hbc/resolve

Conversation

@bcho
Copy link
Copy Markdown
Member

@bcho bcho commented Mar 5, 2026

This pull request introduces significant improvements to DNS configuration for Kubernetes nodes, particularly ensuring that pods and kubelet use upstream DNS servers directly by bypassing the systemd-resolved stub resolver cache. It also refactors and simplifies the codebase by removing the now-redundant system_configuration component, and enhances the QEMU VM management script for better cross-platform networking support (macOS and Linux).

DNS configuration improvements:

  • Added a new systemd oneshot service (resolv-uplink-override.service) that symlinks /etc/resolv.conf to /run/systemd/resolve/resolv.conf, ensuring kubelet and pods bypass the systemd-resolved cache and use upstream DNS directly. This is now managed via the configureBaseOSAction and is enabled as part of the base OS configuration. [1] [2] [3] [4]

Codebase refactoring and cleanup:

  • Removed the system_configuration package, including its installer and constants, and updated the bootstrapper to no longer reference or invoke it, as its responsibilities are now handled elsewhere. [1] [2] [3] [4]

QEMU VM management enhancements:

  • Improved hack/qemu/vm.sh to support native L2 networking on macOS using vmnet-shared (with automatic MAC address assignment and DHCP IP discovery), and clarified networking differences between macOS and Linux in both the script and usage documentation. The script now properly handles SSH connection details and process management for both platforms, including necessary privilege escalation on macOS. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

Documentation:

  • Fixed a typo in the components API documentation (KubadmNodeJoinKubeadmNodeJoin).
arc.NewInstaller(b.logger), // Setup Arc

configureSystem.Executor("configure-os", b.componentsAPIConn),
system_configuration.NewInstaller(b.logger), // Configure system (early)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

fyi giving we have the resolve config implemented in component api side, we can remove this system_configuration now

@anson627 anson627 merged commit d31e28a into main Mar 5, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants