Upgrades
This site summarizes breaking changes you should consider when upgrading between major releases. You should also check the ChangeLog for a complete list of changes.
IfState 2.4
ethtool Feature Names
The ethtool CLI feature names have been migrated to kernel feature names. For CLI feature names with an unique mapping to a kernel feature name an alias is provided to ease migration to the new releases. CLI features mapping to multiple kernel features have been removed. The new ifstatecli validate command can now be used to check if the config is still valid and conforms to the JSON schema.
MAC Addresses
IfState now always sets interface MAC addresses in a reproducible way if no MAC address is specified in the configuration. The MAC addresses of physical interfaces will be set to their permanent MAC address. Virtual interfaces get reproducible MAC addresses, by default they depend on the host's machine-id, the netns and the name of the interfaces.
IfState 2.0
Cleanup by default
In the previos major release IfState did not touch settings by default when they were not specified in the configuration. With this major release the parameters.defaults_builtin setting will cleanup varius settings by default:
parameters:
defaults_builtin:
- match:
- ifname: ''
clear_addresses: true
clear_fdb: true
clear_neighbours: true
clear_tc: true
link:
state: down
master: null
Configuration filename
The default configuration filename has been changed.
/etc/ifstate/ifstate.yaml
/etc/ifstate/config.yml
Configuration schema
The configuration schema got severial breaking changes so you must upgrade the configuration:
Moved settings
The cshaper, defaults and ignore settings has been moved into the parameters hierarchy:
Interfaces settings
The interfaces settings have been changed from a list to an object with the interface's names as keys. The properties in the link section which where used to identify physical interfaces (permaddr and businfo) are now replaced with a dedicated identify section (including device tree support).
Sysctl settings
The sysctl setting have been moved one level up in the hierarchy.
Wireguard settings
The peers setting have been changed from a list to an object where the peer's public keys are used as keys.