Public bug reported: [Impact] This release sports both bug-fixes and new features and we would like to make sure all of our supported customers have access to these improvements. The notable ones are:
* A daemon that only runs on GCP * Currently it ends early based on a default config setting - making it hardly a deamon. But this config setting will be flipped on as soon as it's needed via a follow up SRU, so please review as if the daemon was long-running. * When it turns on, it will long-poll the GCP metadata endpoint and run `ua auto-attach` when a pro license is added. * This replaces the 5 minute timer we currently have on GCP. * A part of this is a shim service only on xenial to replace a needed feature from cloud-init, that is not backported to xenial. * Contract renewal UX improvements * `ua status` now notifies you when your contract is updated (e.g. renewed), and instructs the user to run `ua refresh`. (Note this isn't technically required for renewal - services will keep working for a renewed contract regardless.) * `ua refresh` now ensures motd/apt messaging is all up to date in addition to updating contract details. * In combination, these two features address user concerns over confusing/outdated motd/apt messaging shortly after contract renewal. * More granular APT Proxy configuration with backwards compatibility * apt_http(s)_proxy is renamed to global_apt_http(s)_proxy (but the old name still works) * ua_apt_http(s)_proxy is introduced for ua-scoped apt proxy configurations * `ua security-status` now includes counts of packages from each archive component See the changelog entry below for a full list of changes and bugs. [Test Case] The following development and SRU process was followed: [https://wiki.ubuntu.com/UbuntuAdvantageToolsUpdates](https://wiki.ubuntu.com/UbuntuAdvantageToolsUpdates) The ubuntu-advantage-tools team will be in charge of attaching the artifacts and console output of the appropriate run to the bug. ubuntu- advantage-tools team members will not mark ‘verification-done’ until this has happened. [Regression Potential] This is a big update, with several refactors touching many pieces of the codebase. It is possible that some behavior changed in subtle ways not captured by our integration tests. There are also several small refactors and additions to the postinst script. Any adjustment to postinst poses the risk of breaking upgrades if a mistake was made. We already dropped support for trusty, but we removed even more trusty related code in this release. It is possible that we were unknowingly relying on some of this trusty code for subtle behavior. We included backwards compatibility for the proxy configuration changes, but it is possible that if we made a mistake then old configurations will stop working correctly. [Discussion] There were a series of discussions about the daemon and it was decided to limit the scope as much as possible. As such, it only runs on GCP on unattached instances. Python won't even be instantiated on other machines. The daemon checks several conditions on start up as well and ends early if any don't match. There was some effort to keep the memory footprint from being too high. It depends on the python version; on xenial systemd says the daemon takes just under 14Mb and on focal, just under 11Mb. We have regression tests in place to keep on eye on memory usage. When the daemon is running, it will almost always be blocked on a long-poll endpoint, so CPU usage should be minimal. The daemon does run as root, but doesn't listen on a socket or accept on any user input. It looks at root-only config files and talks to a particular GCP metadata endpoint. If a user were to maliciously MITM the metadata endpoint, they could provide data to the daemon that would cause it to send requests to the Contract Server unnecessarily. [Changelog] Coming soon... ** Affects: ubuntu-advantage-tools (Ubuntu) Importance: Undecided Status: New ** Description changed: - [Impact] + [Impact] This release sports both bug-fixes and new features and we would like to make sure all of our supported customers have access to these improvements. The notable ones are: * A daemon that only runs on GCP - * Currently it ends early based on a default config setting - making it hardly a deamon. But this config setting will be flipped on as soon as it's needed via a follow up SRU, so please review as if the daemon was long-running. - * When it turns on, it will long-poll the GCP metadata endpoint and run `ua auto-attach` when a pro license is added. - * This replaces the 5 minute timer we currently have on GCP. - * A part of this is a shim service only on xenial to replace a needed feature from cloud-init, that is not backported to xenial. - * Contract renewal UX improvements - * `ua status` now notifies you when your contract is updated (e.g. renewed), and instructs the user to run `ua refresh`. (Note this isn't technically required for renewal - services will keep working regardless.) - * `ua refresh` now ensures motd/apt messaging is all up to date in addition to updating contract details. - * In combination, these two features address user concerns over confusing/outdated motd/apt messaging shortly after contract renewal. - * More granular APT Proxy configuration with backwards compatibility - * apt_http(s)_proxy is renamed to global_apt_http(s)_proxy (but the old name still works) - * ua_apt_http(s)_proxy is introduced for ua-scoped apt proxy configurations - * `ua security-status` now includes counts of packages from each archive component + * Currently it ends early based on a default config setting - making it + hardly a deamon. But this config setting will be flipped on as soon + as it's needed via a follow up SRU, so please review as if the daemon + was long-running. + * When it turns on, it will long-poll the GCP metadata endpoint and run + `ua auto-attach` when a pro license is added. + * This replaces the 5 minute timer we currently have on GCP. + * A part of this is a shim service only on xenial to replace a needed + feature from cloud-init, that is not backported to xenial. + * Contract renewal UX improvements + * `ua status` now notifies you when your contract is updated (e.g. + renewed), and instructs the user to run `ua refresh`. (Note this + isn't technically required for renewal - services will keep working + for a renewed contract regardless.) + * `ua refresh` now ensures motd/apt messaging is all up to date in + addition to updating contract details. + * In combination, these two features address user concerns over + confusing/outdated motd/apt messaging shortly after contract renewal. + * More granular APT Proxy configuration with backwards compatibility + * apt_http(s)_proxy is renamed to global_apt_http(s)_proxy (but the old + name still works) + * ua_apt_http(s)_proxy is introduced for ua-scoped apt proxy + configurations + * `ua security-status` now includes counts of packages from each archive + component See the changelog entry below for a full list of changes and bugs. - [Test Case] - The following development and SRU process was followed: + [Test Case] + The following development and SRU process was followed: [https://wiki.ubuntu.com/UbuntuAdvantageToolsUpdates](https://wiki.ubuntu.com/UbuntuAdvantageToolsUpdates) The ubuntu-advantage-tools team will be in charge of attaching the artifacts and console output of the appropriate run to the bug. ubuntu- advantage-tools team members will not mark ‘verification-done’ until this has happened. - [Regression Potential] + [Regression Potential] This is a big update, with several refactors touching many pieces of the codebase. It is possible that some behavior changed in subtle ways not captured by our integration tests. There are also several small refactors and additions to the postinst script. Any adjustment to postinst poses the risk of breaking upgrades if a mistake was made. We already dropped support for trusty, but we removed even more trusty related code in this release. It is possible that we were unknowingly relying on some of this trusty code for subtle behavior. We included backwards compatibility for the proxy configuration changes, but it is possible that if we made a mistake then old configurations will stop working correctly. [Discussion] There were a series of discussions about the daemon and it was decided to limit the scope as much as possible. As such, it only runs on GCP on unattached instances. Python won't even be instantiated on other machines. The daemon checks several conditions on start up as well and ends early if any don't match. There was some effort to keep the memory footprint from being too high. It depends on the python version; on xenial systemd says the daemon takes just under 14Mb and on focal, just under 11Mb. We have regression tests in place to keep on eye on memory usage. When the daemon is running, it will almost always be blocked on a long-poll endpoint, so CPU usage should be minimal. The daemon does run as root, but doesn't listen on a socket or accept on any user input. It looks at root-only config files and talks to a particular GCP metadata endpoint. If a user were to maliciously MITM the metadata endpoint, they could provide data to the daemon that would cause it to send requests to the Contract Server unnecessarily. [Changelog] Coming soon... -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1973099 Title: [SRU] ubuntu-advantage-tools (27.8 -> 27.9) Xenial, Bionic, Focal, Impish, Jammy To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-tools/+bug/1973099/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs