Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Sep 2025 17:06:45 GMT
From:      =?utf-8?Q?Jes=C3=BAs?= Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 95230b248f64 - main - nuageinit: Allow the use of network parameters from network-config
Message-ID:  <202509111706.58BH6jJH097461@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dtxdf:

URL: https://cgit.FreeBSD.org/src/commit/?id=95230b248f6412c2d1c416c1e9795c3192cdf750

commit 95230b248f6412c2d1c416c1e9795c3192cdf750
Author:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
AuthorDate: 2025-09-11 16:52:30 +0000
Commit:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
CommitDate: 2025-09-11 17:06:03 +0000

    nuageinit: Allow the use of network parameters from network-config
    
    To better comply with the cloud-init specification, we need to
    support the configuration of network-related parameters from
    the network-config file, which is common in most deployments.
    
    Reviewed by:            bapt@
    Approved by:            bapt@
    Differential Revision:  https://reviews.freebsd.org/D52419
---
 libexec/nuageinit/nuageinit   | 31 ++++++++++++++++++++++++++++++-
 libexec/nuageinit/nuageinit.7 |  7 +++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/libexec/nuageinit/nuageinit b/libexec/nuageinit/nuageinit
index 70b27cb33d87..52bfc4d9f69f 100755
--- a/libexec/nuageinit/nuageinit
+++ b/libexec/nuageinit/nuageinit
@@ -582,6 +582,26 @@ local function config2_network(p)
 	routing:close()
 end
 
+local function parse_network_config()
+	local nc_file = ni_path .. "/network-config"
+	local nc_file_attr = lfs.attributes(nc_file)
+	if nc_file_attr == nil then
+		return
+	end
+	local f, err = io.open(nc_file)
+	if err then
+		nuage.err("error parsing nocloud network-config: " .. err)
+	end
+	local obj = yaml.load(f:read("*a"))
+	f:close()
+	if not obj then
+		nuage.err("error parsing nocloud network-config")
+	end
+	local netobj = {}
+	netobj["network"] = obj
+	return netobj
+end
+
 if citype == "config-2" then
 	local parser = ucl.parser()
 	local res, err = parser:parse_file(ni_path .. "/meta_data.json")
@@ -678,7 +698,16 @@ if line == "#cloud-config" then
 	end
 
 	for i = 1, #calls_table do
-		calls_table[i](obj)
+		if citype == "nocloud" and calls_table[i] == network_config then
+			netobj = parse_network_config()
+			if netobj == nil then
+				network_config(obj)
+			else
+				network_config(netobj)
+			end
+		else
+			calls_table[i](obj)
+		end
 	end
 elseif line:sub(1, 2) == "#!" then
 	-- delay for execution at rc.local time --
diff --git a/libexec/nuageinit/nuageinit.7 b/libexec/nuageinit/nuageinit.7
index bfa028fe3fa3..84990c93e545 100644
--- a/libexec/nuageinit/nuageinit.7
+++ b/libexec/nuageinit/nuageinit.7
@@ -182,6 +182,13 @@ configuration in
 .Pa /etc/ssh/sshd_config
 .It Ic network
 Network configuration parameters.
+.Pp
+Specifying the following parameters from a file named
+.Pa network-config
+takes precedence over their specification from the
+.Ic network
+parameter of
+.Pa user-data Ns .
 .Bl -tag -width "ethernets"
 .It Ic ethernets
 Mapping representing a generic configuration for existing network interfaces.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202509111706.58BH6jJH097461>