From 085b413d6378b97a1ac3436b70a2408c4733d75b Mon Sep 17 00:00:00 2001 From: Xu Yang Date: Wed, 7 Feb 2024 17:30:33 -0700 Subject: [PATCH] Add dns configuration to network overlays Closes #922 Signed-off-by: Xu Yang --- CHANGELOG.md | 1 + .../system-connections/ww4-managed.ww | 10 ++++++++++ overlays/wwinit/etc/resolv.conf.ww | 15 +++++++++++++++ .../wwinit/etc/sysconfig/network-scripts/ifcfg.ww | 6 ++++++ 4 files changed, 32 insertions(+) create mode 100644 overlays/wwinit/etc/resolv.conf.ww diff --git a/CHANGELOG.md b/CHANGELOG.md index 51ef1e9b..447dc271 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add nightly release support. #969 - Add container rename command. #583 - Add container build flags and warn message after container sync. #509 +- Add DNS fields to network configuration overlays. #922 ### Fixed - Make Variables.mk consistent with spec file w.r.t. WWPROVISIONDIR, e.g. diff --git a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww index c90f6f1d..b633a260 100644 --- a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww +++ b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww @@ -65,6 +65,16 @@ address={{ $netdev.IpCIDR }} gateway={{ $netdev.Gateway }} {{ end -}} method=manual +{{- $dns := "" }} +{{range $tk, $tv := $netdev.Tags -}} +{{ $prefix := slice $tk 0 3 -}} +{{ if eq $prefix "DNS" -}} +{{ $dns = print $dns $tv ";" -}} +{{ end -}} +{{ end -}} +{{ if ne $dns "" -}} +dns={{$dns}} +{{ end -}} {{ end -}} {{/* always autoconfigure ipv6 */}} diff --git a/overlays/wwinit/etc/resolv.conf.ww b/overlays/wwinit/etc/resolv.conf.ww new file mode 100644 index 00000000..f245b9e7 --- /dev/null +++ b/overlays/wwinit/etc/resolv.conf.ww @@ -0,0 +1,15 @@ +{{- $host := .BuildHost }} +{{- $time := .BuildTime }} +{{- $source := .BuildSource }} +# This file is autogenerated by warewulf +# Host: {{ $host }} +# Time: {{ $time }} +# Source: {{ $source }} +{{range $devname, $netdev := .NetDevs -}} +{{range $tk, $tv := $netdev.Tags -}} +{{ $prefix := slice $tk 0 3 -}} +{{ if eq $prefix "DNS" -}} +nameserver {{ $tv }} +{{ end -}} +{{ end -}} +{{ end -}} diff --git a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww index c2cf4c95..1f45ed1f 100644 --- a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww +++ b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww @@ -37,4 +37,10 @@ IPV6_FAILURE_FATAL=no {{ if $netdev.Ipaddr6 -}} IPV6ADDR="{{ $netdev.Ipaddr6 }}" {{ end -}} +{{range $tk, $tv := $netdev.Tags -}} +{{ $prefix := slice $tk 0 3 -}} +{{ if eq $prefix "DNS" -}} +{{ $tk }}={{ $tv }} +{{ end -}} +{{ end -}} {{ end -}}