** Summary changed:

- [SRU] Backport wsl-pro-service to Jammy
+ [SRU] Backport wsl-pro-service to Jammy and Focal

** Also affects: wsl-pro-service (Ubuntu Focal)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to wsl-pro-service in Ubuntu.
https://bugs.launchpad.net/bugs/2107145

Title:
  [SRU] Backport wsl-pro-service to Jammy and Focal

Status in wsl-pro-service package in Ubuntu:
  New
Status in wsl-pro-service source package in Focal:
  New
Status in wsl-pro-service source package in Jammy:
  Incomplete

Bug description:
  As part of our offerings to bring Ubuntu Pro to wider audiences we
  need to backport this service to Ubuntu 22.04 LTS, so users can
  benefit of the upcoming GA of Ubuntu Pro for WSL, as Windows system
  that allows more easily secure and manage WSL instances, by
  automatically pro-attaching Ubuntu on WSL instances and even register
  with and manage them via Lansdcape.

  wsl-pro-service is our bridge to the Windows application that performs
  key  post-provisioning actions on an instance, such as updating a Pro
  token and Landscape configuration data if that changes on the Windows
  side.

  As this service is only applicable for Ubuntu on WSL, its systemd unit is 
contained to not even start
  if the condition `ConditionVirtualization=wsl` is unmet. systemd confinement 
options were validated to work on Jammy as of wsl-pro-service version 0.1.18 
(the one being proposed via this SRU).

  [Impact]

  * wsl-pro-service is a new package for Jammy and Focal
  * It depends on golang-1.23-go at build time, which is available on 
jammy-updates.
  * A certain level of downgrades was necessary for focal, that requires 
golang-1.22-go.
  * Ubuntu Pro for WSL relies on this service being seeded on the Ubuntu 
instances.
  * That system is not yet generally available, but planned for later this year.
  * At minimum Jammy and Noble must be supported, but Focal is planned.
  * Beta customers were already provided with custom images of 22.04 and 24.04 
from the get-go.
  * As a new daemon, more often inert if the Windows side is not present, this 
should not affect users experience.
  * Boot time measurements reveals negligible impact.
  * The systemd unit is carefully and purposefully confined to allow only 
minimum requirements of our application while remaining compatible with systemd 
v245 (thus, compatible with Jammy and Focal).

  [ Test plan ]

  == 1. Less loging:

  * Make sure the Ubuntu Pro for WSL Windows agent is not running:
    - On Windows run `taskkill /f /im ubuntu-pro-agent.exe`
    - Depending on the OS settings elevated permissions might be required.
  * Install wsl-pro-service version 0.1.18 on Ubuntu 22.04 on WSL.
  * Follow it's journal with `journalctl -f -u wsl-pro.service`
  * Notice that it starts logging connection attempts too often, backing off 
exponentially up to 1min interval.
    Approximately 10 minutes after attempting to connect without success, it 
silents.
  * systemd should take approximately 20 min to attempt to restart the unit.

  == 2. Pro attachment works under systemd restrictions and without
  livepatch being installed.

  (Most of this test case would be testing ubuntu-pro-client v35 indeed, but we 
must verify that our integration
  is not harmed with the changes in wsl-pro-service systemd confinement)

  * Create a fresh instance of Ubuntu on WSL:
    - On Windows run `wsl.exe --install -d Ubuntu-22.04`
  * Install ubuntu-pro-agent v35 (currently available via the `-proposed` 
repository)
  * Make sure livepatch is not installed: `sudo snap remove canonical-livepatch`
  * Make sure the Ubuntu on WSL instance is not pro attached: `pro status` 
(`pro detach` if needed).
  * Install wsl-pro-service version 0.1.18 on Ubuntu on WSL (Noble, Oracular 
and Plucky should behave exactly
  the same)
  * Install Ubuntu Pro for WSL (download the latest production build from 
https://github.com/canonical/ubuntu-pro-for-wsl/actions/runs/14386282882/artifacts/2921576467)
  * Follow this guide to attach your Pro token: 
https://documentation.ubuntu.com/wsl/en/stable/tutorials/getting-started-with-up4w/#set-up-ubuntu-pro-for-wsl
  * Follow it's journal with `journalctl -f -u wsl-pro.service`:
    - If pro-attaching fails because of systemd restrictions we should see some 
"permission denied" or "bad system
    call" errors in the journal.
    - If the livepatch fix was not correct, we should see mentions to 
`canonical-livepatch` in the journal.
    - Both conditions should be considered a failure. Otherwise, proceed.
  * Confirm pro attachment `pro status` inside the Ubuntu instance.
  * Finally assert that canonical-livepatch remains not installed on this 
machine.

  == 3. wsl-pro-service outside of WSL

  (Ensures the unit does nothing outside of WSL)

  * Install wsl-pro-service on an instance of Ubuntu 22.04 on any platform 
other than WSL (Desktop,
  Server bare-metal or VM, OCI containers).
  * Verify that the unit is disabled due unmet condition: `systemctl status 
wsl-pro.service`

  == 4. Boot time

  (Ensures the unit does not significantly impact the boot time duration)
  * Install wsl-pro-service on an Ubuntu 22.04 instance on WSL.
  * Modify the default user's .bashrc to just exit (by appending `exit` as the 
last line of that script)
  * On Windows PowerShell run `wsl --terminate Ubuntu-22.04; Measure-Command 
{wsl -d Ubuntu-22.04}` a few times and take notes of the duration that command 
takes to finish
  * Start the WSL instance as root `wsl -d Ubuntu-22.04 -u root`
  * Remove wsl-pro-service
  * Repeat the measurement step
  * Compare the results.

  Spot differences are expected, because of the many layers involved,
  but there should not be more than 2% difference in **median** between
  boot times with and without that service enabled, per recent
  measurements taken by our team.

  [ Where problems could occur ]

  The few beta customers we have might have noticed that up until now, 
wsl-pro-service remains running all the time the unit is alive, thus anytime a 
user installs the
  Ubuntu Pro for WSL application on Windows they could expect the communication 
with the Windows agents to start
  briefly. That's also the case for the custom 22.04 images they've been 
playing with, which come with wsl-pro-service 0.1.5.

  With the behaviour changes in v0.1.18, that won't be the case always, as the 
service could just had quit seconds before
  and systemd will take about 20min to restart it. Users can always `sudo 
systemctl restart wsl-pro.service`.

  Since the entire system is not yet generally available the number of users 
affected by this behaviour change
  is very minimal, comprising of a handful of beta testers and internal 
collaborators (such as the
  Landscape team).

  
  [ Other Info ]

  I intentionally skipped testing the changes related to Landscape because it's 
too complex to set up a server
  just for this purpose.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/wsl-pro-service/+bug/2107145/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to