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
This commit is contained in:
@@ -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 --
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user