** Description changed: + [Impact] + * The official Ubuntu mirrors for armhf and armel arch are on + ports.ubuntu.com where as i386 and amd64 are on archive.ubuntu.com. + Cloud-init has code that selects a local mirror, but that code in 12.04 + did not take arch into into consideration at all. + + As a result, if you're using cloud-init on arm with 12.04, you need to + either + a.) tell cloud-init to "preserve_sources_list" + b.) provide the correct 'mirror' in cloud-config syntax always when you + launch the instance, and this isn't really even sufficient as + cloud-init's template for sources.list references security.ubuntu.com + which is also not valid for arm. + + The fix here is to make the mirror selection code architecture specific + and to also make it handle security.ubuntu.com separately. Looking at + the default configuration probably makes it obvious how it works: + + | package_mirrors: + | - arches: [i386, amd64] + | failsafe: + | primary: http://archive.ubuntu.com/ubuntu + | security: http://security.ubuntu.com/ubuntu + | search: + | primary: + | - http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/ + | - http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/ + | security: [] + | - arches: [armhf, armel, default] + | failsafe: + | primary: http://ports.ubuntu.com/ubuntu + | security: http://ports.ubuntu.com/ubuntu + + [Test Case] + Simply letting cloud-init take its default behavior will show the + brokenness on arm. The code is not arch specific at all so launching + an EC2 instance (of i386 or amd64) will select the primary mirror + of http://us-east-1.ec2.archive.ubuntu.com and security.ubuntu.com for + security. This is clearly broken. + + Showing the correct working path requires actually running cloud-init + within arm. This can be done using an arm image from + cloud-images.ubuntu.com. + + [Regression Potential] + * Selection of the wrong mirror is really the potential failure path + here, and on arm in 12.04, cloud-init already selects the wrong mirror + so it is assured to not make the situation worse. + + === End SRU Information === + + cloud-inits' mirror selection does not include any logic to account for arch. the arm arch are not available on ec2 mirrors nor on *.archive.ubuntu.com . The best work around at the moment is to disable mirror selection via: apt_preserve_sources_list: True For juju, that can be done by modifying juju/providers/common/utils.py to contain: cloud_config = { "apt-update": True, "apt-upgrade": True, "apt_preserve_sources_list": True, "ssh_authorized_keys": authorized_keys, "packages": [], "output": {"all": "| tee -a /var/log/cloud-init-output.log"}} Related bugs: - * bug 1028501 sources.list configuration does not cover security + * bug 1028501 sources.list configuration does not cover security
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1028501 Title: cloud-init selects wrong mirrors for arm To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-init/+bug/1028501/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs