Skip to content
Compare
Choose a tag to compare
@slyon slyon released this 29 Feb 09:40
· 34 commits to main since this release

Feb 29, 2024 – A special day for a special release...

Let's celebrate the v1.0 release of Netplan! 🚀
Thanks to everybody who contributed to the project over the years, to reach this milestone!

Highlights

  • Simultaneous WPA2 & WPA3 support.
  • Introduction of stable libnetplan1 API.
  • Mellanox VF-LAG support for high performance SR-IOV networking.
  • New hairpin and port-mac-learning settings, useful for VXLAN tunnels with FRR.
  • New netplan status --diff subcommand, finding differences between configuration and system state:

Releasing v1.0

Documentation

Bug fixes

New Contributors

Full Changelog: 0.107...1.0

Show all
$ git shortlog 0.107..HEAD
Chris Aumann (2):
      networkd: fix formatting
      networkd: replace deprecated CriticalConnection= by KeepConfiguration=

Christopher (1):
      Add additional bridge port settings (#410)

Danilo Egea Gondolfo (64):
      netplan: add support for WPA3-Enterprise
      CI/Coverity: fetch tags before trying to use them
      CI/Autopkgtests: temporally use a patched version of network-manager
      wifi: support WPA2 and WPA3 Personal simultaneously
      util: don't return a placeholder netdef in the iterator
      tunnels/validation: do not error out if "local" is not defined
      tests: add some integration tests without the local address
      wireguard: ignore empty endpoints
      auth: add support for LEAP and EAP-PWD
      parse: improve the parsing of access-points (LP: #1809994)
      wifi: replace the previously defined AP with the new one
      doc: spelling check improvements
      CI: add spelling checker step
      wifi: make it possible to have a psk and an eap password simultaneously
      nm-parse: always read the PSK into the new psk variable
      netdef: simplify NetplanRoute __eq__ and __hash__
      state_diff: add the new state_diff submodule
      state_diff: add the get_diff() method
      state_diff: add support for IP addresses analysis
      state_diff: add support for nameservers analysis
      state_diff: add support for search domains analysis
      state_diff: add support for MAC addresses analysis
      state_diff: add support for routes analysis
      state_diff: add a JSON encoder for NetplanRoutes
      state_diff: add more information to the missing_interfaces result
      state_diff/get_diff(): return the interfaces sorted by their indices
      tools/diff.py: add a temporary tool to test netplan diff
      apply: bring "lo" back up if it's managed by NM
      apply: don't assume the NM loopback connection is called "lo"
      ovs: disable StartLimitBurst in the ovs-cleanup service
      ctests: stop including C files in the test files
      docs: add a topic about security
      workflow/coverity: install missing dependencies
      state_diff: fix filtering of host scoped routes
      cli/sriov: remove unused code
      tests: assert generated .service files in assert_sriov
      tests/sriov: test if the generated netplan-rebind service is correct
      sriov: don't generate duplicate entries in the rebind.service file
      state/status: add support for identifying bridge/bond members
      state/status: add support for VRF members and interface kind
      state/status: Rename Members to Interfaces
      libnetplan: add a get_vrf_link() function
      state_diff: add support for bond/bridge/vrf
      state_diff: sort the list of IPs in the diff
      state_diff: sort routes by destination address
      state_diff: do not process interfaces removed from netplan
      state_diff: filter out loopback host scoped route
      cli/utils: add a function to create a lookup table from iproute2/rt_tables
      cli/status: add netplan status --diff
      parser: accept special options for MAC address
      libnetplan: add a getter for bond mode
      sriov: move the udev logic to a service unit
      sriov: check the eswitch mode before trying to change it
      sriov_rebind: cooperate with VF LAG activation
      sriov_rebind: netplan rebind --debug setup
      tests/sriov: adapt tests to the last sr-iov related changes
      sriov_apply: execute apply --sriov-only before network-pre.target
      utils/state_diff: refactor route table lookup methods
      state_diff: adopt MAC address options
      libnetplan: expose the link-local setting
      state_diff: handle link local IPs and routes
      tools/diff.py: drop old diff script
      tests: fix the status --diff integration tests
      docs: add status --diff to the docs

Danilo Egêa Gondolfo (1):
      parse-nm/wg: append the correct prefix to IPv6 addresses (#428), LP: #2046158

Lukas Märdian (49):
      test:ovs: Avoid NetworkManager taking contol, breaking a test
      parse: allow COMMON_LINK_HANDLERS for VRFs (LP: #2031421, Closes: #1049432)
      docs: Add "Contribute Documentation" how-to
      tests: Add autopkgtest for LP#1959570
      cli:try: avoid linting error for type hints
      doc: Set-up some basic Doxygen project
      doc: Make Sphinx to handle autodoxygen project, using breathe
      doc: create libnetplan apidoc structure
      inc: Start documenting public API
      doc: Update 'Netplan everywhere' for 23.10
      networkd: move KeepConfiguration= into [Network] section
      cli:try: use state of the art type hint
      tests: skip some cases if OVS is not installed
      meson: Drop legacy generator symlink
      CI: cleanup
      CI: fix DebCI, with multiple versions in 'unstable'
      CI: adopt for usrmerge paths
      tools:run_asan.sh use local Netplan python code
      Makefile: update for tools/run_asan.sh artifacts
      tests:regressions: Drop dbus tests, which got integrated in tests/integration/dbus.py
      test:generator:base: Refactor to use new API
      test:libnetplan: Refactor to avoid deprecated API, add new ctests
      tests:parser:keyfile: Port to new API/bindings
      inc: Drop deprecated legacy API
      Drop legacy ABI compat functions
      src: Drop ABI compat exports
      abi: drop global state & parser
      Clean up 'TODO' file
      ABI: regenerate compat check for dropped symbols
      CI: adopt for 0.107.1-2 on Jammy runners
      meson: bump version and SOVER to 1.0
      CI: upgrade network-manager test to Ubuntu Noble
      src: drop legacy 'global_' data structures
      util-internal: Do not export private symbols
      src: Clearly mark internal API, using a '_netplan' prefix
      abi-compat: move to 1.0
      CI: introduce a Netplan-CI PPA, to ship NetworkManager and systemd quirks
      doc: Document public API symbols
      API: drop netplan_generate
      API: restructure headers, sorting symbols by object they relate to
      abi-compat: Update for dropped 'netplan_generate' symbol
      cli:utils: introduce systemctl_is_installed helper
      cli:ovs: Improve OvsDbServerNotInstalled debug message
      cli:state: Recognize additional tunnel types
      cli:state_diff: Display unknown interface type as 'other'
      CI: fix NetworkManager autopkgtest not using deb822
      test:cli:units: skip _permission_denied test if run as root
      tests:integration: Be less strict about systemctl daemon-reload (LP: #2048388)
      abi-compat: 1.0 ABI

Mathieu Dugal (1):
      Fix permissions on folder '/run/NetworkManager/'

Robert Krátký (5):
      Exclude changes in 'doc/' dir from code CI checks.
      Adopt Docs Starter Pack:
      Fix Doxygen config. & remove Doxyfile.
      Improve how-to docs:
      Lang. & formatting fixes in API docs.

Sahil Sagwekar (1):
      examples: update libvirt path (#442)

Sudo-Whodo (1):
      added mii-monitor-interval (#411)

Tom (1):
      Update ovs.py to check if ovsdb-server.service is installed before throwing an error