Inconsistent device naming depending on install method - biosdevname/no biosdevname
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Wishlist
|
Unassigned | ||
juju-core |
Won't Fix
|
Medium
|
Unassigned | ||
maas (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
After some discussion and debugging in the #juju channel today, we hit upon an issue between the different install types in MAAS; specifically the traditional d-i based install (default in 1.5.x) ends up with biosdevname installed, and the fast-path install does not.
This results in the same physical hardware having different naming for its network interfaces - em1 or eth0 depending on whether biosdevname is installed or not.
This is all technically correct, but not consistent so trips people out - specifically a machine with biosdevname installed ends up with a juju-br0 which is not wired to the outside world, as juju uses the commissioning data in MAAS, which was done without biosdevname so is ethX not emX.
Switching to the fast installer resolves this problem, but it highlights a problem that MAAS and Juju need to deal with.
summary: |
- Inconsistent device naming depending on install method + Inconsistent device naming depending on install method - biosdevname/no + biosdevname |
tags: | added: maas-provider network |
Changed in juju-core: | |
status: | New → Triaged |
importance: | Undecided → Medium |
tags: | added: oil |
Changed in maas: | |
importance: | Undecided → Wishlist |
milestone: | none → 1.9.0 |
Changed in maas: | |
status: | New → Triaged |
tags: |
added: networking removed: network |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Changed in juju-core: | |
status: | Triaged → Won't Fix |
Changed in maas (Ubuntu): | |
status: | Confirmed → Fix Released |
The problem in such cases is juju has little control on how the machine's hardware (as seed by lshw) changes between commissioning and deployment, and frankly neither has maas.
jamespage suggested that juju could "inject" a script very early (e.g. a bootcmd) in the cloud-init userdata to try and discover what interface names and MAC addresses the machine has and try to match those from the lshw data juju already gets from maas during node allocation. This nice thing about this solution is that it's not maas specific, but can be used elsewhere (e.g. other distros, with systemd, etc.).