Don't populate NetDevs[].Type or NetDevs[].Netmask during upgrade
- Closes: #1661 NetDev defaults don't behave quite the same as standard fields, because they need to be set per-device. Meanwhile, trying to set a value may erroneously override values that are on the default profile. Switch this to a warning rather than attempting to take explicit action. Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
committed by
Christian Goll
parent
87b9ad33ff
commit
032db29f87
@@ -20,6 +20,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Fixed negation for slice field elements during profile/node merge. #1677
|
- Fixed negation for slice field elements during profile/node merge. #1677
|
||||||
- Show each overlay only once, even when both site and distribution versions exist. #1675
|
- Show each overlay only once, even when both site and distribution versions exist. #1675
|
||||||
- Remove a redundant "Building image" log message after image exec. #1694
|
- Remove a redundant "Building image" log message after image exec. #1694
|
||||||
|
- Don't populate NetDevs[].Type or NetDevs[].Netmask during upgrade. #1661
|
||||||
|
|
||||||
## v4.6.0rc1, 2025-01-29
|
## v4.6.0rc1, 2025-01-29
|
||||||
|
|
||||||
|
|||||||
@@ -885,6 +885,22 @@ nodes:
|
|||||||
fieldValues: []string{"ro1,ro2,~ro1,ro3", "so1,so2,so4,~so2"},
|
fieldValues: []string{"ro1,ro2,~ro1,ro3", "so1,so2,so4,~so2"},
|
||||||
sources: []string{"default,n1", "default,n1"},
|
sources: []string{"default,n1", "default,n1"},
|
||||||
},
|
},
|
||||||
|
"netmask inheritance": {
|
||||||
|
nodesConf: `
|
||||||
|
nodeprofiles:
|
||||||
|
p1:
|
||||||
|
network devices:
|
||||||
|
default:
|
||||||
|
netmask: 255.255.255.0
|
||||||
|
nodes:
|
||||||
|
n1:
|
||||||
|
profiles:
|
||||||
|
- p1`,
|
||||||
|
node: "n1",
|
||||||
|
field: "NetDevs[default].Netmask",
|
||||||
|
source: "p1",
|
||||||
|
value: "255.255.255.0",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
|
|||||||
@@ -224,7 +224,15 @@ func (this *Node) Upgrade(addDefaults bool, replaceOverlays bool) (upgraded *nod
|
|||||||
}
|
}
|
||||||
if this.NetDevs != nil {
|
if this.NetDevs != nil {
|
||||||
for name, netDev := range this.NetDevs {
|
for name, netDev := range this.NetDevs {
|
||||||
upgraded.NetDevs[name] = netDev.Upgrade(addDefaults)
|
upgraded.NetDevs[name] = netDev.Upgrade(false)
|
||||||
|
if addDefaults {
|
||||||
|
if upgraded.NetDevs[name].Type == "" {
|
||||||
|
wwlog.Warn("NetDevs[%s].Type not specified: verify default settings manually", name)
|
||||||
|
}
|
||||||
|
if len(upgraded.NetDevs[name].Netmask) == 0 {
|
||||||
|
wwlog.Warn("NetDevs[%s].Netmask not specified: verify default settings manually", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if this.PrimaryNetDev != "" {
|
if this.PrimaryNetDev != "" {
|
||||||
@@ -630,7 +638,7 @@ func (this *NetDev) Upgrade(addDefaults bool) (upgraded *node.NetDev) {
|
|||||||
upgraded.Type = "ethernet"
|
upgraded.Type = "ethernet"
|
||||||
}
|
}
|
||||||
if upgraded.Netmask == nil {
|
if upgraded.Netmask == nil {
|
||||||
upgraded.Netmask = net.ParseIP("255.255.255.0")
|
upgraded.Netmask = net.IP{255, 255, 255, 0}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -558,9 +558,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
network devices:
|
network devices:
|
||||||
default:
|
default:
|
||||||
type: ethernet
|
|
||||||
ipaddr: 192.168.0.100
|
ipaddr: 192.168.0.100
|
||||||
netmask: 255.255.255.0
|
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -589,7 +587,6 @@ nodes:
|
|||||||
network devices:
|
network devices:
|
||||||
default:
|
default:
|
||||||
ipaddr: 10.0.0.100
|
ipaddr: 10.0.0.100
|
||||||
netmask: 255.255.0.0
|
|
||||||
`,
|
`,
|
||||||
upgradedYaml: `
|
upgradedYaml: `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
@@ -625,13 +622,11 @@ nodes:
|
|||||||
- custom
|
- custom
|
||||||
network devices:
|
network devices:
|
||||||
default:
|
default:
|
||||||
type: ethernet
|
|
||||||
ipaddr: 10.0.0.100
|
ipaddr: 10.0.0.100
|
||||||
netmask: 255.255.0.0
|
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "add defaults conflicts",
|
name: "replace overlays conflicts",
|
||||||
addDefaults: false,
|
addDefaults: false,
|
||||||
replaceOverlays: true,
|
replaceOverlays: true,
|
||||||
legacyYaml: `
|
legacyYaml: `
|
||||||
|
|||||||
Reference in New Issue
Block a user