Skip to content

Commit

Permalink
libnet/d/ipvlan: gracefully migrate from older dbs
Browse files Browse the repository at this point in the history
IPVLAN networks created on Moby v20.10 do not have the IpvlanFlag
configuration value persisted in the libnetwork database as that config
value did not exist before v23.0.0. Gracefully migrate configurations on
unmarshal to prevent type-assertion panics at daemon start after upgrade.

Fixes #44925

Signed-off-by: Cory Snider <csnider@mirantis.com>
(cherry picked from commit 91725dd)
Signed-off-by: Cory Snider <csnider@mirantis.com>
  • Loading branch information
corhere committed Feb 6, 2023
1 parent bacf32d commit 0579575
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion libnetwork/drivers/ipvlan/ipvlan_store.go
Expand Up @@ -193,7 +193,12 @@ func (config *configuration) UnmarshalJSON(b []byte) error {
config.Mtu = int(nMap["Mtu"].(float64))
config.Parent = nMap["Parent"].(string)
config.IpvlanMode = nMap["IpvlanMode"].(string)
config.IpvlanFlag = nMap["IpvlanFlag"].(string)
if v, ok := nMap["IpvlanFlag"]; ok {
config.IpvlanFlag = v.(string)
} else {
// Migrate config from an older daemon which did not have the flag configurable.
config.IpvlanFlag = flagBridge
}
config.Internal = nMap["Internal"].(bool)
config.CreatedSlaveLink = nMap["CreatedSubIface"].(bool)
if v, ok := nMap["Ipv4Subnets"]; ok {
Expand Down

0 comments on commit 0579575

Please sign in to comment.