Interface configuration cannot be modified unless the node is Ready or Broken.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Wishlist
|
Lee Trager | ||
2.1 |
Fix Released
|
Wishlist
|
Lee Trager |
Bug Description
We have a pool of bare-metal servers that have pre-trunked all possible VLANs. The specific VLAN(s) that need to configured on the bm server is dictated by the workload being deployed.
So for example, if the physical ToR switch has the following VLANs trunked to all machine interfaces:
VLAN 100-199
A single machine deploy would run an app that uses VLAN 150, which means we need maas to create a VLAN interface on 150. say, "bond0.150"
Unfortunately, we cannot first Acquire/Allocate the node, and then configure the network because of the maas error:
"Interface configuration cannot be modified unless the node is Ready or Broken."
By forcing the interface configuration to occur during Ready state, means we introduce a possibility of simultaneous maas service requests trying to configure the same maas machine. Which of course, Allocation/Acquire nicely removes this possibility.
As a workaround, we are thinking of first marking a node as 'Allocate'
This is all done via maas api.
Related branches
- Lee Trager (community): Approve
-
Diff: 441 lines (+61/-79)5 files modifiedsrc/maasserver/api/interfaces.py (+6/-14)
src/maasserver/api/tests/test_interfaces.py (+29/-16)
src/maasserver/static/js/angular/controllers/node_details_networking.js (+7/-30)
src/maasserver/static/js/angular/controllers/tests/test_node_details_networking.js (+8/-8)
src/maasserver/static/partials/node-details.html (+11/-11)
- Andres Rodriguez (community): Needs Information
- Данило Шеган (community): Approve
-
Diff: 441 lines (+61/-79)5 files modifiedsrc/maasserver/api/interfaces.py (+6/-14)
src/maasserver/api/tests/test_interfaces.py (+29/-16)
src/maasserver/static/js/angular/controllers/node_details_networking.js (+7/-30)
src/maasserver/static/js/angular/controllers/tests/test_node_details_networking.js (+8/-8)
src/maasserver/static/partials/node-details.html (+11/-11)
description: | updated |
Changed in maas: | |
status: | Confirmed → Triaged |
no longer affects: | maas/trunk |
Changed in maas: | |
assignee: | nobody → Lee Trager (ltrager) |
status: | Triaged → In Progress |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
milestone: | 2.3.0 → 2.3.0alpha1 |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Hi Sam,
Thanks for filing the bug report. We are aware of the limited and it was placed intentionally until the use case arises.
The way this is meant to work is:
1. 'allocate' machine
2. make network config changes
3. deploy
4. Once machine is not needed, 'release'.
5. Network changes in (2) get rolled-back to how the machine was before (1).
This approach is currently applied for storage (i.e. if you make changes for storage when the machine is allocated to an admin, once released, it will be rolled back to how it was before), and it is meant to ensure the machine can be re-used and to allow each different user to make its own configuration when using the specific machine.
So, this would allow you to:
'Acquire' -> (configure interface) -> 'Deploy'