[SRU] Update to netplan.io 0.103

Bug #1938920 reported by Lukas Märdian
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
netplan.io (Ubuntu)
Fix Released
Undecided
Unassigned
Focal
Fix Released
Undecided
Unassigned
Hirsute
Fix Released
Undecided
Unassigned
Impish
Fix Released
Undecided
Unassigned

Bug Description

[Impact]
This release contains both bug-fixes and new features and we would like to make sure all of our supported customers have access to those improvements.

The most notable changes (besides usual bug-fixes) incoming in 0.103:
- Add YAML generator and Keyfile parser for NetworkManager YAML backend
- Add activation-mode parameter, needs systemd v248+ (LP: #1664844)
- Add default routes as extension of gateway4 & gateway6 (LP: #1756590)
- Add io.netplan.Netplan.Generate() DBus method
- Changed the way of how unmanaged-devices are handled by NetworkManager
- Improve integration test suite (LP: #1922126)

See the changelog entry below for a full list of changes and bugs.

[Test Plan]
The following development and SRU process was followed:
https://wiki.ubuntu.com/NetplanUpdates

Netplan contains an extensive integration test suite that is ran using
the SRU package for each release. This test suite's results are available here:
http://autopkgtest.ubuntu.com/packages/n/netplan.io

A successful run is required before the proposed netplan.io package
can be let into -updates.

In addition to the autopkgtests, we want to make sure that a config using the (legacy) gateway4/6 fields does not print a warning.

The netplan team will be in charge of attaching the artifacts and console
output of the appropriate run to the bug. Netplan team members will not
mark ‘verification-done’ until this has happened.

[Where problems could occur]
Netplan being a core package it could impact the whole networking stack of the operating system up to the point where servers would not be reachable anymore after a reboot, due to broken network config being generated by netplan at bootup. In order to mitigate the regression potential, the results of the aforementioned integration tests are attached to this bug:

Hirsute:
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/hirsute_amd64.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/hirsute_arm64.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/hirsute_armhf.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/hirsute_ppc64el.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/hirsute_s390x.log

Focal:
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/focal_amd64.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/focal_arm64.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/focal_armhf.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/focal_ppc64el.log
https://git.launchpad.net/~slyon/+git/files/tree/LP1938920/focal_s390x.log

[Other Info]
The integration test logs will be attached to this bug, once the package has been accepted into -proposed and the tests have been executed on the real infrastructure.

On Hirsute the (rather flaky) 'regressions' test regressed in -release and was therefore skipped in this SRU.

[Changelog]
2f0ff65 parse-nm: fix 32bit format string
51c872d cli: Fix failure with "set-name" and "bridges" (#221)
7844058 Gateway fields deprecation and default routing support (FR-728) (LP: #1756590) (#216) – Deprecation warning is muted in SRUs
b90f429 parse: routes: avoid creating dangling pointers on error (#220)
4b7c7a6 parse: handle_routes: clean up the route on error (#219)
54283a0 parser: warn user on multiple global gateway (LP: #1901836) (FR-728) (#217)
2fd3fc2 parse: fix whitespace
5a306c9 parse: new macro set_str_if_null to avoid duplicating existing fields (#218)
9bf63c2 README: add design document reference, update IRC server
417257d Implement basic Keyfile parser (FR-1046) (#212)
9ae9eb7 Improve integration tests interface-ready waiting logic (LP: #1922126) (#204)
922ac81 Implement YAML generator (FR-1046) (#211)
2a7fc68 Implicitly consider devices with activation-mode set as optional (#214)
44dab84 Fix NM unmanaged-devices (changes behavior) (#201)
dafe0a9 Improve subprocess calls to binaries in /sbin + udevadm (#205)
f933369 Handle enum element override (#213)
a8c8564 Add support for the activation-mode parameter (LP: #1664844) (#171)
833952e Fix ABI regression LP: #1922898 FR-1273 (#206)
dd4db6b cli: SNAP special handling: improve test coverage and error handling (#209)
2eafea3 dbus:cli: implement io.netplan.Netplan.Generate() (#208)
da3fab1 cli:set: Fix netplan-set on Core20 (#207)
a42fc2f Fix parsing of OVS values with colons (LP: #1913906) (#203)
2f7d973 tests:tunnels: improve flaky wireguard test with wait_output()
3ec52c4 cli:apply: reload/reconfigure networkd instead of restart (#200)
abad253 tests:bonds: fix flaky resend_igmp test

Lukas Märdian (slyon)
description: updated
Lukas Märdian (slyon)
Changed in netplan.io (Ubuntu Impish):
status: New → Fix Released
Revision history for this message
Robie Basak (racb) wrote :

> - Deprecate gateway4 & gateway6 in favor of defaults routes (LP: #1756590)

I'm not sure this is acceptable to land in a stable release. By all means provide a new and cleaner mechanism, and change the documentation to advise the newer method. However, actually printing a deprecation notice on Focal when it was previously the documented way of doing things on Focal, and thus alarming existing users, seems like really poor UX to me for users who expect stability during the lifetime of an LTS. I think such a deprecation notice should only be presented to users after they upgrade to a newer release, which in practice means that you can only introduce deprecation on the Ubuntu development release.

Our remit to make feature changes in stable releases comes with the limitation that they "must not change behaviour on existing installation". I think that this implies that you cannot deprecate behaviour, or print notices about deprecation, either.

What about Hirsute? https://wiki.ubuntu.com/StableReleaseUpdates#Other_safe_cases says that "any such feature must then also be added to any newer supported Ubuntu release". When adding new features, this is a hard requirement. We can't have version numbers "go backwards" as users upgrade through Ubuntu releases.

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

I think Robie has a point here. I think there were times where we 'JFDI' regarding backporting everything along with deprecation messages, but mainly because we weren't really aware or missed it during review. I don't have a strong opinion, since this is just a deprecation warning so my personal feeling regarding that is that it doesn't really matter much - but we need to be always considerate of never breaking existing configurations for a series for sure. So at least once at some moment of time we decide to deprecate this completely, we need to make sure not to change it for focal users. That being said, this will probably not be a problem since we won't do it before the next LTS and we only really support one LTS back.

Anyway, maybe just removing the deprecation notice as a delta for focal/hirsute could be an option?

And +1 on getting a hirsute upload prepared. I suppose the focal one is also not completely up-to-date as it seems to be ubuntu2 while impish has ubuntu3?

Revision history for this message
Robie Basak (racb) wrote :

> Anyway, maybe just removing the deprecation notice as a delta for focal/hirsute could be an option?

Yes - this is what I meant. The concept of "deprecation" is only related to what promises we're making to users about the future, so there aren't any code changes needed, just documentation changes. But if we're agreed that we're not ever going to remove support for the old method in Focal, then we shouldn't start telling users on Focal that support is going away because that could be alarming if they interpret that to think that their configuration will break on Focal in the future. So it would be easiest to just not print deprecation notices in backports.

Revision history for this message
Lukas Märdian (slyon) wrote :

Thanks, those are some fair points and we will be working on them.
It makes perfect sense to remove the deprecation warnings for the stable releases! That way we would also notice the change (while rebasing stable-series patches), should we ever decide to fully deprecate that feature.

I had a Hirsute upload prepared in Bileto, too. But that still showed some unexplained autopkgtest failures, so I didn't upload it, yet. I will make sure the feedback is addressed and a SRU is uploaded to Hirsute first, before re-uploading for Focal.

Lukas Märdian (slyon)
description: updated
description: updated
Lukas Märdian (slyon)
description: updated
description: updated
Revision history for this message
Lukas Märdian (slyon) wrote :

I've re-uploaded the hirsute and focal SRUs, after doing some pre-testing in a PPA, adding a patch to mute the gateway4/6 deprecating warnings.

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Thanks for working on these SRUs! Those seem to look good. One recommendation for the future: with ubuntu5 there has been a lot of patches that you have added to fix minor issues here and there, and those are not mentioned in the changelog directly. Since those are out-of-tree for the tarball, I feel that it would be best to document those in the changelog as well (e.g. what they're fixing, why they're needed - just as it was in the impish version).

And note for us into the future: we really need to clean up the symbols and stop exporting everything as it goes!

Changed in netplan.io (Ubuntu Hirsute):
status: New → Fix Committed
tags: added: verification-needed verification-needed-hirsute
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Please test proposed package

Hello Lukas, or anyone else affected,

Accepted netplan.io into hirsute-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/netplan.io/0.103-0ubuntu5~21.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-hirsute to verification-done-hirsute. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-hirsute. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Hello Lukas, or anyone else affected,

Accepted netplan.io into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/netplan.io/0.103-0ubuntu5~20.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in netplan.io (Ubuntu Focal):
status: New → Fix Committed
tags: added: verification-needed-focal
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

btw. I also see you uploaded a new netplan version for bionic. Is there any need for that? We didn't upgrade netplan.io for quite a while - this will be basically a jump from 0.99 to 0.102, so 3 versions.

I'll skip it for now.

Revision history for this message
Lukas Märdian (slyon) wrote :

the netplan.io SRU for bionic is needed for: https://github.com/snapcore/snapd/pull/10212 – but it's not a big version bump, but only a small targeted feature backport

Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (netplan.io/0.103-0ubuntu5~21.04.1)

All autopkgtests for the newly accepted netplan.io (0.103-0ubuntu5~21.04.1) for hirsute have finished running.
The following regressions have been reported in tests triggered by the package:

initramfs-tools/0.139ubuntu3 (amd64)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/hirsute/update_excuses.html#netplan.io

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Lukas Märdian (slyon)
description: updated
Revision history for this message
Lukas Märdian (slyon) wrote :

Thank you for the comments Łukasz, I'll keep them in mind for next time.

For Hirsute:
I tested netplan.io 0.103-0ubuntu5~21.04.1 and attached the official autopkgtest logs, all passed. The initramfs-tools/0.139ubuntu3 (amd64) reverse dependency test passed as well after a re-try.

Also I verified that we do not display an deprecation error if the (legacy) gateway4/6 field are being used:
```
root@hh:~# dpkg -l | grep netplan
ii libnetplan0:amd64 0.103-0ubuntu5~21.04.1
ii netplan.io 0.103-0ubuntu5~21.04.1
root@hh:~# netplan set ethernets.eth0.gateway4=1.2.3.4
root@hh:~# netplan set ethernets.eth0.gateway6=beef::42
root@hh:~# netplan get
network:
  ethernets:
    eth0:
      dhcp4: true
      gateway4: 1.2.3.4
      gateway6: beef::42
  version: 2
root@hh:~# netplan apply
```

For Focal:
I tested netplan.io 0.103-0ubuntu5~20.04.1 and attached the official autopkgtest logs, all passed.

Also I verified that we do not display an deprecation error if the (legacy) gateway4/6 field are being used:
```
root@ff:~# dpkg -l | grep netplan
ii libnetplan0:amd64 0.103-0ubuntu5~20.04.1
ii netplan.io 0.103-0ubuntu5~20.04.1
root@ff:~# netplan set ethernets.eth0.gateway4=1.2.3.4
root@ff:~# netplan set ethernets.eth0.gateway6=beef::42
root@ff:~# netplan get
network:
  ethernets:
    eth0:
      dhcp4: true
      gateway4: 1.2.3.4
      gateway6: beef::42
  version: 2
root@ff:~# netplan apply

```

tags: added: verification-done-hirsute verification-needed-done
removed: verification-needed-focal verification-needed-hirsute
Lukas Märdian (slyon)
tags: added: verification-done-focal
removed: verification-needed-done
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package netplan.io - 0.103-0ubuntu5~21.04.1

---------------
netplan.io (0.103-0ubuntu5~21.04.1) hirsute; urgency=medium

  * Backport netplan.io 0.103-0ubuntu5 to 21.04 (LP: #1938920)
    - Add YAML generator and Keyfile parser for NetworkManager YAML backend
    - Add activation-mode parameter
    - Add io.netplan.Netplan.Generate() DBus method
    - Changed the way of how unmanaged-devices are handled by NetworkManager
  * Add d/p/0003-Mute-gateway4-6-deprecation-warnings.patch:
    - Do not show a deprecation warning on the backported version
  * Update systemd dependency to >= 247.3-3ubuntu3.2 for activation-mode
  * Update debian/gbp.conf
  * Use debhelper-compat 12 in debian/control
  * Keep skipping many armhf/LXD tests
  * Skip flaky 'regressions' test on armhf/LXD containers, too

 -- Lukas Märdian <email address hidden> Tue, 07 Sep 2021 10:50:30 +0200

Changed in netplan.io (Ubuntu Hirsute):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for netplan.io has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package netplan.io - 0.103-0ubuntu5~20.04.1

---------------
netplan.io (0.103-0ubuntu5~20.04.1) focal; urgency=medium

  * Backport netplan.io 0.103-0ubuntu5 to 20.04 (LP: #1938920)
    - Add YAML generator and Keyfile parser for NetworkManager YAML backend
    - Add activation-mode parameter
    - Add io.netplan.Netplan.Generate() DBus method
    - Changed the way of how unmanaged-devices are handled by NetworkManager
  * Add d/p/0003-Mute-gateway4-6-deprecation-warnings.patch:
    - Do not show a deprecation warning on the backported version
  * Update systemd dependency to >= 245.4-4ubuntu3.8 for activation-mode
  * Update debian/gbp.conf
  * Use debhelper-compat 12 in debian/control
  * Keep riscv64 build-time tests disabled

 -- Lukas Märdian <email address hidden> Tue, 07 Sep 2021 10:53:10 +0200

Changed in netplan.io (Ubuntu Focal):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.