[Bug 1893717] Re: Add Ubuntu Advantage service apt urls to valid mirrors

Chad Smith 1893717 at bugs.launchpad.net
Tue Sep 22 18:44:08 UTC 2020


** Description changed:

  === Begin SRU Template ===
  [Impact]
  Customers with Ubuntu Advantage services enabled on Trusty/Xenial/Bionic find APT config files disabled with comments after running `do-release-upgrade`.
  
  This requires either:
   1. manual intervention to uncomment and correct the apt suite for any enabled Ubuntu Advantage service stored in /etc/apt/sources.list.d/ubuntu-*.list.
  
   OR
  
   2. Providing AllowThirdParty=yes configuration override during do-
  release-upgrade to force upgrades of all third party ppa apt
  configuration urls.
  
  Adding these supported commercial URLs to mirror.cfg allows these urls to be
  treated as valid Ubuntu-proper apt URLs and would automatically update the
  apt config files for any enabled Ubuntu Advantage offering without
  manual intervention.
  
  [Test Case]
  
  # test procedure
  for release in trusty xenial bionic; do
   1. lxc launch daily image with $release-proposed enabled via cloud-config
   2. attach the machine to ua with a token and enable any available apt-based
      services
   3. Download the <release>-proposed tarball to locally perform a "do-release-upgrade"
   4. unzip that proposed tarball and run ./focal upgrade on the CLI
   5. check contents of /etc/apt/sources.list.d/ubuntu-*.list to ensure all
      UA-related apt URLs are still available
   6. apt-cache policy to check that permissions to said APT repositories are
      viable
  done
  
  # test script
  
  ```
  #!/bin/bash
- set -x
- 
- cat > proposed.yaml <<EOF
+ set -ex
+ UA_TOKEN=<REDACTED>
+ cat > test-uru.yaml <<EOF
  #cloud-config
  package_upgrade: true
  apt:
-   sources:
-     proposed.list:
-        source: deb $MIRROR $RELEASE-proposed main universe
+   sources:
+     ua.list:
+        source: deb http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu \$RELEASE main
+        keyid: 94E187AD53A59D1847E4880F8A295C4FB8B190B7
  EOF
  
- for release in trusty xenial bionic; do
-   vm=test-sru-$release
-   echo "--- Launch cloud-init with ${release}-proposed enabled"
-   lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat proposed.yaml)"
-   echo "--- Wait for cloud-init to finish"
-   if [ "${release}" = "trusty" ]; then
-     lxc exec ${vm} -- cloud-init status --wait --long
-   else
-     while [ "N 2" != "$(lxc exec ${vm} -- runlevel)" ]; do
-        echo "waiting on runlevel 2"
-        sleep 5
-     done
-   fi
-   echo "--- Attach Ubuntu-Advantage and enable services"
-   lxc exec ${vm} -- ua attach ${UA_TOKEN}
-   lxc exec ${vm} -- ua status
-   lxc exec ${vm} -- wget  http://archive.ubuntu.com/ubuntu/dists/$release-proposed/main/dist-upgrader-all/current/$release.tar.gz
-   echo "--- perform do-release-upgrade to next release"
-   lxc exec ${vm} -- /${release} -f DistUpgradeViewNonInteractive
-   echo "--- Validate UA APT sources after upgrade"
-   lxc exec ${vm} -- apt-cache policy | grep esm.ubuntu.com
-   for file in `ls /etc/apt/sources.list.d/ubuntu-*.list`; do
-     echo "--- file: ${file}"
-     cat  /etc/apt/sources.list.d/${file}
-   done
-   lxc exec ${vm} -- ua status
+ declare -A NEXTDIST=( [bionic]=focal [xenial]=bionic [trusty]=xenial )
+ 
+ for release in bionic; do
+   vm=test-sru-$release
+   echo "--- Launch cloud-init with ${release}-proposed enabled"
+   lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat proposed.yaml)"
+   upgraderelease=${NEXTDIST[$release]}
+   echo "--- Wait for cloud-init to finish"
+   if [ "${release}" = "trusty" ]; then
+     while [ "N 2" != "$(lxc exec ${vm} -- runlevel)" ]; do
+        echo "waiting on runlevel 2"
+        sleep 5
+     done
+   else
+     lxc exec ${vm} -- cloud-init status --wait --long
+   fi
+   echo "--- Attach Ubuntu-Advantage and enable services"
+   lxc exec ${vm} -- ua attach ${UA_TOKEN}
+   lxc exec ${vm} -- ua status
+   lxc exec ${vm} -- wget http://archive.ubuntu.com/ubuntu/dists/${upgraderelease}-proposed/main/dist-upgrader-all/current/${upgraderelease}.tar.gz
+   lxc exec ${vm} -- tar xzvf ${upgraderelease}.tar.gz
+   echo "--- perform do-release-upgrade to next release"
+   lxc file pull ${vm}/root/mirrors.cfg .
+   echo "http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu" >> mirrors.cfg
+   lxc file push mirrors.cfg ${vm}/root/
+   lxc exec ${vm} -- ./${upgraderelease} --datadir=/root --frontend=DistUpgradeViewNonInteractive
+   echo "--- Validate UA APT sources after upgrade"
+   lxc exec ${vm} -- apt-cache policy | grep esm.ubuntu.com
+   for file in `ls /etc/apt/sources.list.d/ubuntu-*.list`; do
+     echo "--- file: ${file}"
+     cat /etc/apt/sources.list.d/${file}
+   done
+   lxc exec ${vm} -- ua status
  done
  ```
+ 
  
  [Regression Potential]
  None; No automatic upgrade support has been previously offered across LTS upgrade paths for ubuntu-advantage services on Ubuntu Trusty or later.
  
  Anyone performing a do-release-upgrade would have had to manually update
  apt config files after the fact.
  
  === Original Description ===
  Ensure Apt mirror URLs supported by Ubuntu Advantage services are included as valid mirrors instead of being treated as third party repositories and getting disabled by do-release-upgrade.
  
  The following APT mirror URLs are supported for current and/or imminent
  Ubuntu Advantage apt-based services on Xenial and later:
  
  https://esm.ubuntu.com/ubuntu/
  https://esm.ubuntu.com/apps/ubuntu/
  https://esm.ubuntu.com/cc/ubuntu/
  https://esm.ubuntu.com/infra/ubuntu/
  https://esm.ubuntu.com/fips/ubuntu/
  https://esm.ubuntu.com/fips-updates/ubuntu/

** Description changed:

  === Begin SRU Template ===
  [Impact]
  Customers with Ubuntu Advantage services enabled on Trusty/Xenial/Bionic find APT config files disabled with comments after running `do-release-upgrade`.
  
  This requires either:
   1. manual intervention to uncomment and correct the apt suite for any enabled Ubuntu Advantage service stored in /etc/apt/sources.list.d/ubuntu-*.list.
  
   OR
  
   2. Providing AllowThirdParty=yes configuration override during do-
  release-upgrade to force upgrades of all third party ppa apt
  configuration urls.
  
  Adding these supported commercial URLs to mirror.cfg allows these urls to be
  treated as valid Ubuntu-proper apt URLs and would automatically update the
  apt config files for any enabled Ubuntu Advantage offering without
  manual intervention.
  
  [Test Case]
  
  # test procedure
  for release in trusty xenial bionic; do
-  1. lxc launch daily image with $release-proposed enabled via cloud-config
+  1. lxc launch daily image for the given $release enabling ubuntu-advantage-daily PPA (to allow for upgrading to viable ubuntu-advantage-tools deb
   2. attach the machine to ua with a token and enable any available apt-based
      services
-  3. Download the <release>-proposed tarball to locally perform a "do-release-upgrade"
-  4. unzip that proposed tarball and run ./focal upgrade on the CLI
-  5. check contents of /etc/apt/sources.list.d/ubuntu-*.list to ensure all
+  3. Download the <upgrade-release>-proposed tarball to locally perform a "do-release-upgrade"
+  4. unzip that proposed tarball
+  5. Add ubuntu-advantage-daily PPA to mirrors.cfg # to avoid disabling on upgrade
+  6. and run ./${upgraderelease} upgrade on the CLI
+  7. check contents of /etc/apt/sources.list.d/ubuntu-*.list to ensure all
      UA-related apt URLs are still available
-  6. apt-cache policy to check that permissions to said APT repositories are
-     viable
+  8. apt-cache policy to check that permissions to said APT repositories are live
  done
  
  # test script
  
  ```
  #!/bin/bash
  set -ex
  UA_TOKEN=<REDACTED>
  cat > test-uru.yaml <<EOF
  #cloud-config
  package_upgrade: true
  apt:
-   sources:
-     ua.list:
-        source: deb http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu \$RELEASE main
-        keyid: 94E187AD53A59D1847E4880F8A295C4FB8B190B7
+   sources:
+     ua.list:
+        source: deb http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu \$RELEASE main
+        keyid: 94E187AD53A59D1847E4880F8A295C4FB8B190B7
  EOF
  
  declare -A NEXTDIST=( [bionic]=focal [xenial]=bionic [trusty]=xenial )
  
  for release in bionic; do
-   vm=test-sru-$release
-   echo "--- Launch cloud-init with ${release}-proposed enabled"
-   lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat proposed.yaml)"
-   upgraderelease=${NEXTDIST[$release]}
-   echo "--- Wait for cloud-init to finish"
-   if [ "${release}" = "trusty" ]; then
-     while [ "N 2" != "$(lxc exec ${vm} -- runlevel)" ]; do
-        echo "waiting on runlevel 2"
-        sleep 5
-     done
-   else
-     lxc exec ${vm} -- cloud-init status --wait --long
-   fi
-   echo "--- Attach Ubuntu-Advantage and enable services"
-   lxc exec ${vm} -- ua attach ${UA_TOKEN}
-   lxc exec ${vm} -- ua status
-   lxc exec ${vm} -- wget http://archive.ubuntu.com/ubuntu/dists/${upgraderelease}-proposed/main/dist-upgrader-all/current/${upgraderelease}.tar.gz
-   lxc exec ${vm} -- tar xzvf ${upgraderelease}.tar.gz
-   echo "--- perform do-release-upgrade to next release"
-   lxc file pull ${vm}/root/mirrors.cfg .
-   echo "http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu" >> mirrors.cfg
-   lxc file push mirrors.cfg ${vm}/root/
-   lxc exec ${vm} -- ./${upgraderelease} --datadir=/root --frontend=DistUpgradeViewNonInteractive
-   echo "--- Validate UA APT sources after upgrade"
-   lxc exec ${vm} -- apt-cache policy | grep esm.ubuntu.com
-   for file in `ls /etc/apt/sources.list.d/ubuntu-*.list`; do
-     echo "--- file: ${file}"
-     cat /etc/apt/sources.list.d/${file}
-   done
-   lxc exec ${vm} -- ua status
+   vm=test-sru-$release
+   echo "--- Launch cloud-init with ${release}-proposed enabled"
+   lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat proposed.yaml)"
+   upgraderelease=${NEXTDIST[$release]}
+   echo "--- Wait for cloud-init to finish"
+   if [ "${release}" = "trusty" ]; then
+     while [ "N 2" != "$(lxc exec ${vm} -- runlevel)" ]; do
+        echo "waiting on runlevel 2"
+        sleep 5
+     done
+   else
+     lxc exec ${vm} -- cloud-init status --wait --long
+   fi
+   echo "--- Attach Ubuntu-Advantage and enable services"
+   lxc exec ${vm} -- ua attach ${UA_TOKEN}
+   lxc exec ${vm} -- ua status
+   lxc exec ${vm} -- wget http://archive.ubuntu.com/ubuntu/dists/${upgraderelease}-proposed/main/dist-upgrader-all/current/${upgraderelease}.tar.gz
+   lxc exec ${vm} -- tar xzvf ${upgraderelease}.tar.gz
+   echo "--- perform do-release-upgrade to next release"
+   lxc file pull ${vm}/root/mirrors.cfg .
+   echo "http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu" >> mirrors.cfg
+   lxc file push mirrors.cfg ${vm}/root/
+   lxc exec ${vm} -- ./${upgraderelease} --datadir=/root --frontend=DistUpgradeViewNonInteractive
+   echo "--- Validate UA APT sources after upgrade"
+   lxc exec ${vm} -- apt-cache policy | grep esm.ubuntu.com
+   for file in `ls /etc/apt/sources.list.d/ubuntu-*.list`; do
+     echo "--- file: ${file}"
+     cat /etc/apt/sources.list.d/${file}
+   done
+   lxc exec ${vm} -- ua status
  done
  ```
- 
  
  [Regression Potential]
  None; No automatic upgrade support has been previously offered across LTS upgrade paths for ubuntu-advantage services on Ubuntu Trusty or later.
  
  Anyone performing a do-release-upgrade would have had to manually update
  apt config files after the fact.
  
  === Original Description ===
  Ensure Apt mirror URLs supported by Ubuntu Advantage services are included as valid mirrors instead of being treated as third party repositories and getting disabled by do-release-upgrade.
  
  The following APT mirror URLs are supported for current and/or imminent
  Ubuntu Advantage apt-based services on Xenial and later:
  
  https://esm.ubuntu.com/ubuntu/
  https://esm.ubuntu.com/apps/ubuntu/
  https://esm.ubuntu.com/cc/ubuntu/
  https://esm.ubuntu.com/infra/ubuntu/
  https://esm.ubuntu.com/fips/ubuntu/
  https://esm.ubuntu.com/fips-updates/ubuntu/

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/1893717

Title:
  Add Ubuntu Advantage service apt urls to valid mirrors

Status in ubuntu-release-upgrader package in Ubuntu:
  Fix Released
Status in ubuntu-release-upgrader source package in Xenial:
  In Progress
Status in ubuntu-release-upgrader source package in Bionic:
  In Progress
Status in ubuntu-release-upgrader source package in Focal:
  Fix Committed
Status in ubuntu-release-upgrader source package in Groovy:
  Fix Released

Bug description:
  === Begin SRU Template ===
  [Impact]
  Customers with Ubuntu Advantage services enabled on Trusty/Xenial/Bionic find APT config files disabled with comments after running `do-release-upgrade`.

  This requires either:
   1. manual intervention to uncomment and correct the apt suite for any enabled Ubuntu Advantage service stored in /etc/apt/sources.list.d/ubuntu-*.list.

   OR

   2. Providing AllowThirdParty=yes configuration override during do-
  release-upgrade to force upgrades of all third party ppa apt
  configuration urls.

  Adding these supported commercial URLs to mirror.cfg allows these urls to be
  treated as valid Ubuntu-proper apt URLs and would automatically update the
  apt config files for any enabled Ubuntu Advantage offering without
  manual intervention.

  [Test Case]

  # test procedure
  for release in trusty xenial bionic; do
   1. lxc launch daily image for the given $release enabling ubuntu-advantage-daily PPA (to allow for upgrading to viable ubuntu-advantage-tools deb
   2. attach the machine to ua with a token and enable any available apt-based
      services
   3. Download the <upgrade-release>-proposed tarball to locally perform a "do-release-upgrade"
   4. unzip that proposed tarball
   5. Add ubuntu-advantage-daily PPA to mirrors.cfg # to avoid disabling on upgrade
   6. and run ./${upgraderelease} upgrade on the CLI
   7. check contents of /etc/apt/sources.list.d/ubuntu-*.list to ensure all
      UA-related apt URLs are still available
   8. apt-cache policy to check that permissions to said APT repositories are live
  done

  # test script

  ```
  #!/bin/bash
  set -ex
  UA_TOKEN=<REDACTED>
  cat > test-uru.yaml <<EOF
  #cloud-config
  package_upgrade: true
  apt:
    sources:
      ua.list:
         source: deb http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu \$RELEASE main
         keyid: 94E187AD53A59D1847E4880F8A295C4FB8B190B7
  EOF

  declare -A NEXTDIST=( [bionic]=focal [xenial]=bionic [trusty]=xenial )

  for release in bionic; do
    vm=test-sru-$release
    echo "--- Launch cloud-init with ${release}-proposed enabled"
    lxc launch ubuntu-daily:${release} ${vm} -c user.user-data="$(cat proposed.yaml)"
    upgraderelease=${NEXTDIST[$release]}
    echo "--- Wait for cloud-init to finish"
    if [ "${release}" = "trusty" ]; then
      while [ "N 2" != "$(lxc exec ${vm} -- runlevel)" ]; do
         echo "waiting on runlevel 2"
         sleep 5
      done
    else
      lxc exec ${vm} -- cloud-init status --wait --long
    fi
    echo "--- Attach Ubuntu-Advantage and enable services"
    lxc exec ${vm} -- ua attach ${UA_TOKEN}
    lxc exec ${vm} -- ua status
    lxc exec ${vm} -- wget http://archive.ubuntu.com/ubuntu/dists/${upgraderelease}-proposed/main/dist-upgrader-all/current/${upgraderelease}.tar.gz
    lxc exec ${vm} -- tar xzvf ${upgraderelease}.tar.gz
    echo "--- perform do-release-upgrade to next release"
    lxc file pull ${vm}/root/mirrors.cfg .
    echo "http://ppa.launchpad.net/canonical-server/ua-client-daily/ubuntu" >> mirrors.cfg
    lxc file push mirrors.cfg ${vm}/root/
    lxc exec ${vm} -- ./${upgraderelease} --datadir=/root --frontend=DistUpgradeViewNonInteractive
    echo "--- Validate UA APT sources after upgrade"
    lxc exec ${vm} -- apt-cache policy | grep esm.ubuntu.com
    for file in `ls /etc/apt/sources.list.d/ubuntu-*.list`; do
      echo "--- file: ${file}"
      cat /etc/apt/sources.list.d/${file}
    done
    lxc exec ${vm} -- ua status
  done
  ```

  [Regression Potential]
  None; No automatic upgrade support has been previously offered across LTS upgrade paths for ubuntu-advantage services on Ubuntu Trusty or later.

  Anyone performing a do-release-upgrade would have had to manually
  update apt config files after the fact.

  === Original Description ===
  Ensure Apt mirror URLs supported by Ubuntu Advantage services are included as valid mirrors instead of being treated as third party repositories and getting disabled by do-release-upgrade.

  The following APT mirror URLs are supported for current and/or
  imminent Ubuntu Advantage apt-based services on Xenial and later:

  https://esm.ubuntu.com/ubuntu/
  https://esm.ubuntu.com/apps/ubuntu/
  https://esm.ubuntu.com/cc/ubuntu/
  https://esm.ubuntu.com/infra/ubuntu/
  https://esm.ubuntu.com/fips/ubuntu/
  https://esm.ubuntu.com/fips-updates/ubuntu/

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1893717/+subscriptions



More information about the foundations-bugs mailing list