Skip to content

cloud-init 19.2.36 fails with python exception "Not all expected physical devices present ..." during bionic image deployment from MAAS #3459

@ubuntu-server-builder

Description

@ubuntu-server-builder

This bug was originally filed in Launchpad as LP: #1846535

Launchpad details
affected_projects = ['cloud-init (Ubuntu)', 'cloud-init (Ubuntu Xenial)', 'cloud-init (Ubuntu Bionic)', 'cloud-init (Ubuntu Disco)', 'cloud-init (Ubuntu Eoan)']
assignee = oddbloke
assignee_name = Dan Watkins
date_closed = 2019-12-19T23:00:05.207528+00:00
date_created = 2019-10-03T17:19:42.795903+00:00
date_fix_committed = 2019-10-04T15:34:46.009163+00:00
date_fix_released = 2019-12-19T23:00:05.207528+00:00
id = 1846535
importance = critical
is_complete = True
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1846535
milestone = None
owner = nikolay.vinogradov
owner_name = Nikolay Vinogradov
private = False
status = fix_released
submitter = nikolay.vinogradov
submitter_name = Nikolay Vinogradov
tags = ['cpe-onsite', 'regression-update', 'sts', 'verification-done', 'verification-done-bionic', 'verification-done-disco', 'verification-done-xenial']
duplicates = [1846661]

Launchpad user Nikolay Vinogradov(nikolay.vinogradov) wrote on 2019-10-03T17:19:42.795903+00:00

[Impact]

Any instances launched with bridges or bonds in their network configuration will fail to bring up networking.

[Test Case]

Juju bootstrap on maas of a machine sets up a network bridge that triggers a failure in cloud-init init stage.

This results in a maas machine deployment failure and the machine gets released

Procedure:

Alternate steps on a maas machine with a bridge already created

A1. confirm a bridge interface is configured for the target machine on interface eno1, name it broam, attach it to a subnet and select auto-assign for IP
A2. click deploy -> bionic
A3. Once manual deployment fails go to step 2 below

Alternative 2 juju bootstrap failure on maas

B1: juju bootrap mymaas --no-gui
B2: Once bootstrap fails go to step 2

  1. After deployment failure and machine is powered off click on the failed/released node in the MAAS UI
  2. Click Rescue Mode from the 'Take Action' drop down in the MAAS UI
  3. Grab the IP from the interfaces tab
  4. ssh ubuntu@ -- cloud-init status --long

Expect failure message

  1. Click Exit Rescue Mode on the node in MAAS UI.

  2. ssh to the maas server add the following lines to /etc/maas/preseeds/curtin_userdata to test official *-proposed packages:

system_upgrade: {enabled: True}
apt:
  sources:
    proposed.list:
       source: deb $MIRROR $RELEASE-proposed main universe # upstream -proposed

  1. Repeat step 1 and expect bootstrap success

expect to see MAASDatasource from bootstrapped machine and no errors

  1. juju ssh 0 -- cloud-init status --long

Additional verification checks to avoid regression
 - DONE oracle
 - DONE ec2
 - DONE openstack
 - DONE gce
 - DONE azure

  • DONE nocloud kvm
  • DONE nocloud lxd

[Regression Potential]

The change being SRU'd adds more conditions to an existing conditional. There is potential to regress the cases that the existing conditional was introduced to cover, so we will be testing those specifically. Other than that, there was some minor refactoring of the existing conditional statement (which did not change the logic it checks), which could cause issues for Oracle netfailover interfaces. We will also specifically test on Oracle.

[Original Report]

Symptoms

After deployment of Ubuntu Bionic image on MAAS provider (deploying to a bare metal server) juju cannot access any deployed machine due to missing SSH keys and machines are stuck in pending state:

$ juju ssh 0
ERROR retrieving SSH host keys for "0": keys not found

$ juju machines
Machine State DNS Inst id Series AZ Message
0 pending 172.20.10.125 block-3 bionic AZ3 Deployed
1 pending 172.20.10.124 block-2 bionic AZ2 Deployed
2 pending 172.20.10.126 block-1 bionic AZ1 Deployed
3 pending 172.20.10.127 object-2 bionic AZ1 Deployed
4 pending 172.20.10.128 object-1 bionic AZ2 Deployed
5 pending 172.20.10.129 object-3 bionic AZ3 Deployed

It worth mentioning that pods can be successfully deployed with MAAS, only bare metal deployment fails.

We checked different bionic images: cloud-init 19.2.24 works, and cloud-init 19.2.36 doesn't.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions