MAAS only supports one "managed" (DNS/DHCP) interface per cluster controller.
Bug #1052339 reported by
Raphaël Badin
This bug affects 4 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
High
|
Jeroen T. Vermeulen |
Bug Description
Right now, a cluster controller (i.e. a NodeGroup in db terms) can only have (at most) one "managed" interface. See all the code relying on NodeGroup.
Related branches
lp:~jtv/maas/prep-1052339
- Raphaël Badin (community): Approve
-
Diff: 353 lines (+155/-60)5 files modifiedsrc/maasserver/dhcp.py (+37/-36)
src/maasserver/dns.py (+2/-4)
src/maasserver/models/nodegroup.py (+23/-1)
src/maasserver/models/tests/test_nodegroup.py (+62/-1)
src/maasserver/tests/test_dhcp.py (+31/-18)
lp:~jtv/maas/compose-config-path
- Raphaël Badin (community): Approve
-
Diff: 151 lines (+35/-18)2 files modifiedsrc/provisioningserver/dns/config.py (+10/-7)
src/provisioningserver/dns/tests/test_config.py (+25/-11)
lp:~jtv/maas/render_dns_template
- Raphaël Badin (community): Approve
-
Diff: 172 lines (+66/-41)2 files modifiedsrc/provisioningserver/dns/config.py (+25/-19)
src/provisioningserver/dns/tests/test_config.py (+41/-22)
lp:~jtv/maas/report_missing_config_dir
- Raphaël Badin (community): Approve
-
Diff: 112 lines (+52/-11)2 files modifiedsrc/provisioningserver/dns/config.py (+22/-11)
src/provisioningserver/dns/tests/test_config.py (+30/-0)
lp:~jtv/maas/inline-inner_write_config
- Raphaël Badin (community): Approve
-
Diff: 62 lines (+16/-14)2 files modifiedsrc/provisioningserver/dns/config.py (+15/-12)
src/provisioningserver/dns/tests/test_config.py (+1/-2)
lp:~jtv/maas/independence-for-dnsconfig
- Raphaël Badin (community): Approve
-
Diff: 204 lines (+38/-61)3 files modifiedsrc/maasserver/management/commands/get_named_conf.py (+2/-2)
src/provisioningserver/dns/config.py (+26/-35)
src/provisioningserver/dns/tests/test_config.py (+10/-24)
lp:~jtv/maas/flatten-dnszoneconfig
- Gavin Panella (community): Approve
-
Diff: 223 lines (+27/-60)3 files modifiedsrc/maasserver/dns.py (+1/-2)
src/provisioningserver/dns/config.py (+17/-43)
src/provisioningserver/dns/tests/test_config.py (+9/-15)
lp:~jtv/maas/encapsulate-shortened_reversed_ip
- Julian Edwards (community): Approve
-
Diff: 118 lines (+34/-35)2 files modifiedsrc/provisioningserver/dns/config.py (+16/-16)
src/provisioningserver/dns/tests/test_config.py (+18/-19)
lp:~jtv/maas/delegate-write_config
- Julian Edwards (community): Approve
-
Diff: 329 lines (+47/-89)4 files modifiedsrc/maasserver/dns.py (+3/-3)
src/provisioningserver/dns/config.py (+33/-46)
src/provisioningserver/dns/tests/test_config.py (+9/-35)
src/provisioningserver/tests/test_tasks.py (+2/-5)
lp:~jtv/maas/dns-zones-explicit-data-flow
- Raphaël Badin (community): Approve
-
Diff: 366 lines (+86/-90)3 files modifiedsrc/maasserver/tests/test_dns.py (+3/-3)
src/provisioningserver/dns/config.py (+70/-54)
src/provisioningserver/dns/tests/test_config.py (+13/-33)
lp:~jtv/maas/easy-1052339
- Gavin Panella (community): Approve
-
Diff: 329 lines (+152/-50)6 files modifiedsrc/maasserver/forms.py (+54/-35)
src/maasserver/models/node.py (+1/-1)
src/maasserver/models/nodegroup.py (+1/-1)
src/maasserver/preseed.py (+29/-12)
src/maasserver/tests/test_forms.py (+1/-0)
src/maasserver/tests/test_preseed.py (+66/-1)
lp:~jtv/maas/pick-cluster-address-per-network
- Raphaël Badin (community): Approve
-
Diff: 277 lines (+90/-60)2 files modifiedsrc/maasserver/preseed.py (+26/-11)
src/maasserver/tests/test_preseed.py (+64/-49)
lp:~jtv/maas/multi-nodegroupformfield-label
- Raphaël Badin (community): Approve
-
Diff: 65 lines (+10/-11)2 files modifiedsrc/maasserver/fields.py (+6/-5)
src/maasserver/tests/test_fields.py (+4/-6)
lp:~jtv/maas/multi-zonegenerator
- Raphaël Badin (community): Approve
-
Diff: 79 lines (+11/-12)2 files modifiedsrc/maasserver/dns.py (+8/-9)
src/maasserver/tests/test_dns.py (+3/-3)
lp:~jtv/maas/whittle-away-get_managed_interface
- Raphaël Badin (community): Approve
-
Diff: 178 lines (+20/-19)6 files modifiedsrc/maasserver/models/tests/test_nodegroupinterface.py (+6/-5)
src/maasserver/testing/factory.py (+2/-2)
src/maasserver/tests/test_api.py (+6/-6)
src/maasserver/tests/test_dhcp.py (+2/-2)
src/maasserver/tests/test_forms.py (+1/-1)
src/maasserver/utils/tests/test_utils.py (+3/-3)
lp:~jtv/maas/retire-get_managed_interface
- Julian Edwards (community): Approve
-
Diff: 62 lines (+0/-41)2 files modifiedsrc/maasserver/models/nodegroup.py (+0/-17)
src/maasserver/models/tests/test_nodegroup.py (+0/-24)
lp:~jtv/maas/test-multi-zonegenerator
- Gavin Panella (community): Approve
-
Diff: 284 lines (+189/-22)2 files modifiedsrc/maasserver/dns.py (+15/-17)
src/maasserver/tests/test_dns.py (+174/-5)
lp:~rvb/maas/dhcp-multiple-intf
- Jeroen T. Vermeulen (community): Approve
-
Diff: 402 lines (+132/-95)7 files modifiedetc/maas/templates/dhcp/dhcpd.conf.template (+12/-9)
src/maasserver/dhcp.py (+24/-18)
src/maasserver/tests/test_dhcp.py (+53/-23)
src/provisioningserver/dhcp/config.py (+3/-19)
src/provisioningserver/dhcp/tests/test_config.py (+24/-20)
src/provisioningserver/dhcp/writer.py (+9/-3)
src/provisioningserver/tests/test_tasks.py (+7/-3)
lp:~jtv/maas/validate-against-conflicting-networks
- Raphaël Badin (community): Approve
-
Diff: 354 lines (+204/-50)3 files modifiedsrc/maasserver/forms.py (+56/-14)
src/maasserver/tests/test_api_register.py (+1/-31)
src/maasserver/tests/test_forms.py (+147/-5)
lp:~jtv/maas/retire-get_dns_managed_interface
- Raphaël Badin (community): Approve
-
Diff: 271 lines (+64/-77)6 files modifiedsrc/maasserver/dns.py (+5/-13)
src/maasserver/forms.py (+3/-10)
src/maasserver/models/node.py (+4/-8)
src/maasserver/models/nodegroup.py (+10/-4)
src/maasserver/models/tests/test_nodegroup.py (+42/-18)
src/maasserver/tests/test_dns.py (+0/-24)
lp:~jtv/maas/allow-multiple-managed-interfaces
- Raphaël Badin (community): Approve
-
Diff: 247 lines (+16/-101)7 files modifiedsrc/maasserver/forms.py (+1/-19)
src/maasserver/models/nodegroupinterface.py (+1/-23)
src/maasserver/tests/test_api_register.py (+1/-1)
src/maasserver/tests/test_dhcp.py (+0/-9)
src/maasserver/tests/test_dns.py (+0/-4)
src/maasserver/tests/test_forms.py (+12/-29)
src/maasserver/tests/test_views_settings_clusters.py (+1/-16)
lp:~rvb/maas/multiple-dhcp-intf2
- Jeroen T. Vermeulen (community): Approve
-
Diff: 105 lines (+12/-0)6 files modifiedetc/maas/templates/dhcp/dhcpd.conf.template (+1/-0)
src/maasserver/dhcp.py (+1/-0)
src/maasserver/tests/test_dhcp.py (+1/-0)
src/provisioningserver/dhcp/tests/test_config.py (+2/-0)
src/provisioningserver/dhcp/tests/test_writer.py (+4/-0)
src/provisioningserver/dhcp/writer.py (+3/-0)
lp:~jtv/maas/doc-multi-managed-networks
- Julian Edwards (community): Approve
-
Diff: 166 lines (+81/-30)2 files modifieddocs/cluster-configuration.rst (+59/-22)
docs/configure.rst (+22/-8)
tags: | added: provisioning |
description: | updated |
Changed in maas: | |
milestone: | none → 14.04 |
Changed in maas: | |
assignee: | nobody → Jeroen T. Vermeulen (jtv) |
status: | Triaged → In Progress |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
In a case of bonded interface, current behavior of MAAS is really problematic. Bonded interfaces can change hardware address on reboots and of course when NIC fail.
I came up with a 'concept' /workaround that links a node (and all its NICs) with an IP. So, after commissioning, I run this script, which collects IP addresses and creates a entries for dhcp template. It's not ideal, I know, but it might provide an angle to resolve this problem. If MAAS could inform maas-dhcp about the changes and generate dhcpd.conf on the fly, that would be awesome. 'maas.json' file is output of 'maas-cli maas nodes list'. Ideally, script would pull directly from MAAS, instead of reading the file (I was kind of short on time).
I think this could easily be transformed to a setup where specific NICs would be linked to specific Network or whatever is the idea in the end.