)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":19,"context_line":"in large deployments."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"There are multiple projects which will need to be enhanced to add features"},{"line_number":22,"context_line":"for routed newtorks. The DHCP services provided by both Neutron and Ironic"},{"line_number":23,"context_line":"Inspector need to be enhanced to provide routers for each subnet. The use"},{"line_number":24,"context_line":"of Neutron as an IP address management (IPAM) backend will need to be"},{"line_number":25,"context_line":"evaluated, to determine if we need features that were added to support"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa31d9ce_790e05e6","line":22,"updated":"2017-02-15 13:31:07.000000000","message":"Typo: \"networks\"","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This spec attempts to break down the overall goals by the problem set as"},{"line_number":31,"context_line":"it applies to each project. Separate specs will be used"},{"line_number":32,"context_line":"for each separate project or dependency, all depenent on this one."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This spec is dependent on the following:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa31d9ce_d9cc518b","line":32,"updated":"2017-02-15 13:31:07.000000000","message":"Typo: \"dependent\"","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"}],"specs/pike/tripleo-routed-networks-deployment.rst":[{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":8,"context_line":"TripleO Routed Networks Deployment (Spine-and-Leaf Clos)"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-deployment"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TripleO uses shared L2 networks today, so each node is attached to the"},{"line_number":14,"context_line":"provisioning network, and any other networks are also shared. This"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_9fb523d2","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":81},"updated":"2017-02-09 17:28:37.000000000","message":"Not sure if need this link.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":8,"context_line":"TripleO Routed Networks Deployment (Spine-and-Leaf Clos)"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-deployment"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TripleO uses shared L2 networks today, so each node is attached to the"},{"line_number":14,"context_line":"provisioning network, and any other networks are also shared. This"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_391d3b10","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":81},"in_reply_to":"1a430d35_9fb523d2","updated":"2017-02-14 23:16:08.000000000","message":"It was in the template, so I think it may be expected.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":94,"context_line":"As this is a complex topic, it will be easier to break the problems down into"},{"line_number":95,"context_line":"the constituent parts, based on which part of TripleO they affect:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"**Problem #1: TripleO uses DHCP/PXE on the Underlcoud provisioning net (ctlplane).**"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Neutron on the undercloud does not yet support DHCP relays and multiple L2"},{"line_number":100,"context_line":"subnets."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_7fd8771e","line":97,"range":{"start_line":97,"start_character":43,"end_line":97,"end_character":53},"updated":"2017-02-09 17:28:37.000000000","message":"nit: typo","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Possible Solutions, Ideas, or Approaches:"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"1. Modify Ironic and/or Neutron to support multiple DHCP ranges in the dnsmasq"},{"line_number":105,"context_line":"   configuration, use DHCP relay running on top-of-rack switches which"},{"line_number":106,"context_line":"   receives DHCP requests and forwards them to dnsmasq on the Undercloud."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"2. Use an alternate method to DHCP/PXE boot, then provide routes back to the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_eb5d917a","line":105,"range":{"start_line":105,"start_character":18,"end_line":105,"end_character":64},"updated":"2017-02-09 17:28:37.000000000","message":"Just a question - will we have any issues relying on TOR switches to do DHCP relay, i.e. will all switches support this and allow it to be configured?","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Possible Solutions, Ideas, or Approaches:"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"1. Modify Ironic and/or Neutron to support multiple DHCP ranges in the dnsmasq"},{"line_number":105,"context_line":"   configuration, use DHCP relay running on top-of-rack switches which"},{"line_number":106,"context_line":"   receives DHCP requests and forwards them to dnsmasq on the Undercloud."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"2. Use an alternate method to DHCP/PXE boot, then provide routes back to the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_19e79713","line":105,"range":{"start_line":105,"start_character":18,"end_line":105,"end_character":64},"in_reply_to":"1a430d35_eb5d917a","updated":"2017-02-14 23:16:08.000000000","message":"I have a lot of experience with this. Pretty much every layer3-capable switch supports some form of DHCP relay, but they aren\u0027t all implemented the same. Some of them implement DHCP relay, and some implement DHCP proxy. I\u0027m relying on dnsmasq to handle the details of switch-specific implementations. If we find a bug, it will have to be fixed in dnsmasq.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":105,"context_line":"   configuration, use DHCP relay running on top-of-rack switches which"},{"line_number":106,"context_line":"   receives DHCP requests and forwards them to dnsmasq on the Undercloud."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"2. Use an alternate method to DHCP/PXE boot, then provide routes back to the"},{"line_number":109,"context_line":"   ironic-conductor and metadata server."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Currently, if one adds a subnet to a network, Neutron DHCP agent will pick up"},{"line_number":112,"context_line":"the changes and configure separate subnets correctly in ``dnsmasq``. For instance,"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_771a65c7","line":109,"range":{"start_line":108,"start_character":3,"end_line":109,"end_character":40},"updated":"2017-02-09 17:28:37.000000000","message":"Discussion below seems to just be for Solution 1, maybe move this to after the discussion below?  Also curious as to what alternatives we\u0027d have to DHCP/PXE boot?","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":105,"context_line":"   configuration, use DHCP relay running on top-of-rack switches which"},{"line_number":106,"context_line":"   receives DHCP requests and forwards them to dnsmasq on the Undercloud."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"2. Use an alternate method to DHCP/PXE boot, then provide routes back to the"},{"line_number":109,"context_line":"   ironic-conductor and metadata server."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Currently, if one adds a subnet to a network, Neutron DHCP agent will pick up"},{"line_number":112,"context_line":"the changes and configure separate subnets correctly in ``dnsmasq``. For instance,"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_1995d73f","line":109,"range":{"start_line":108,"start_character":3,"end_line":109,"end_character":40},"in_reply_to":"1a430d35_771a65c7","updated":"2017-02-14 23:16:08.000000000","message":"I\u0027ll move this to the workarounds section.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":146,"context_line":"multiple subnets. If multiple subnets are entered in ``undercloud.conf``, the"},{"line_number":147,"context_line":"dnsmasq server should be configured for all subnets. The Undercloud puppet"},{"line_number":148,"context_line":"module puppet-ironic contains the logic for writing the ``dnsmasq.conf`` for"},{"line_number":149,"context_line":"ironic-inspector [0]."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"**Potential Workaround**"},{"line_number":152,"context_line":"It is not always feasible for groups doing testing or development to configure"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_ae02b707","line":149,"range":{"start_line":149,"start_character":17,"end_line":149,"end_character":20},"updated":"2017-02-09 17:28:37.000000000","message":"Nit - would be helpful if link here.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Undercloud would act as a router between subnets/VLANs. This should be"},{"line_number":158,"context_line":"considered a small-scale solution, as this is not as scalable as DHCP relay."},{"line_number":159,"context_line":"The configuration for dnsmasq is the same whether all subnets are local or"},{"line_number":160,"context_line":"remote, but dnsmasq may have to listen on multiple interfaces (today it only"},{"line_number":161,"context_line":"listens on br-ctlplane)."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Another option is to configure dedicated hosts or VMs to be used as DHCP relay"},{"line_number":164,"context_line":"and router for subnets on multiple VLANs, all of which would be trunked to the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_cbfc5575","line":161,"range":{"start_line":160,"start_character":62,"end_line":161,"end_character":24},"updated":"2017-02-09 17:28:37.000000000","message":"Seems like we\u0027d have to remove the \"--bind-interface\u003dtap-XXX\" in this case as we are listening on all interfaces (\" --except-interface\u003dlo\") but only bound to the namespace.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":176,"context_line":"1. Wait for Neutron to support routed networks"},{"line_number":177,"context_line":"2. Multiple Neutron networks (1 set per rack), to model all L2 segments"},{"line_number":178,"context_line":"3. Multiple subnets per Neutron network"},{"line_number":179,"context_line":"4. Use another system for IPAM, instead of Neutron"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"A spec [1] has been submitted for Mitaka to implement \"routed network segments\"."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_4b578526","line":179,"range":{"start_line":179,"start_character":3,"end_line":179,"end_character":50},"updated":"2017-02-09 17:28:37.000000000","message":"Wondering is this is really an option?","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":176,"context_line":"1. Wait for Neutron to support routed networks"},{"line_number":177,"context_line":"2. Multiple Neutron networks (1 set per rack), to model all L2 segments"},{"line_number":178,"context_line":"3. Multiple subnets per Neutron network"},{"line_number":179,"context_line":"4. Use another system for IPAM, instead of Neutron"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"A spec [1] has been submitted for Mitaka to implement \"routed network segments\"."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_59766f3f","line":179,"range":{"start_line":179,"start_character":3,"end_line":179,"end_character":50},"in_reply_to":"1a430d35_4b578526","updated":"2017-02-14 23:16:08.000000000","message":"It has been discussed as an option, and if we don\u0027t mention it, someone is bound to bring it up as a possible solution. We got this same argument from all sides when we implemented network isolation, and it turns out that there are advanat.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":176,"context_line":"1. Wait for Neutron to support routed networks"},{"line_number":177,"context_line":"2. Multiple Neutron networks (1 set per rack), to model all L2 segments"},{"line_number":178,"context_line":"3. Multiple subnets per Neutron network"},{"line_number":179,"context_line":"4. Use another system for IPAM, instead of Neutron"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"A spec [1] has been submitted for Mitaka to implement \"routed network segments\"."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_55b11946","line":179,"range":{"start_line":179,"start_character":3,"end_line":179,"end_character":50},"in_reply_to":"fa31d9ce_59766f3f","updated":"2018-01-17 19:01:55.000000000","message":"I meant to say there were advantages to using Neutron, and those advantages are only going to increase as Ironic/Neutron integration continues.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":179,"context_line":"4. Use another system for IPAM, instead of Neutron"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"A spec [1] has been submitted for Mitaka to implement \"routed network segments\"."},{"line_number":183,"context_line":"Although the goal is slightly different, I believe that the schema in that spec"},{"line_number":184,"context_line":"would allow us to model the L3 Clos architecture. We still need to solve the DHCP"},{"line_number":185,"context_line":"assignment problem, but at least we can store the right data in IPAM (Neutron)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_0b249dc4","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":10},"updated":"2017-02-09 17:28:37.000000000","message":"Nit - would be helpful if this were a link.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":179,"context_line":"4. Use another system for IPAM, instead of Neutron"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"A spec [1] has been submitted for Mitaka to implement \"routed network segments\"."},{"line_number":183,"context_line":"Although the goal is slightly different, I believe that the schema in that spec"},{"line_number":184,"context_line":"would allow us to model the L3 Clos architecture. We still need to solve the DHCP"},{"line_number":185,"context_line":"assignment problem, but at least we can store the right data in IPAM (Neutron)."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_6ed7efed","line":182,"range":{"start_line":182,"start_character":34,"end_line":182,"end_character":40},"updated":"2017-02-09 17:28:37.000000000","message":"Seems to have landed under specs/newton now -\nhttps://specs.openstack.org/openstack/neutron-specs/specs/newton/routed-networks.html\n\nThis newton spec may also be relevant:https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/neutron-routed-networks.html","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":188,"context_line":"specification. It did go through significant revisions through the Mitaka cycle"},{"line_number":189,"context_line":"as schema and features were evolving, but it didn\u0027t get anywhere close to being"},{"line_number":190,"context_line":"implemented in Mitaka. As of Ocata M3, there are still aspects of routed"},{"line_number":191,"context_line":"networks segments under development."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"**Alternative approaches to Problem #2:**"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_2ef40786","line":191,"updated":"2017-02-09 17:28:37.000000000","message":"Would be good to get update from Neutron team here regarding state at end of Ocata cycle.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Since we control addresses and routes on the host nodes using a"},{"line_number":229,"context_line":"combination of Heat templates and os-net-config, it may be possible to use"},{"line_number":230,"context_line":"static routes to supernets to provide L2 adjacency."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"To avoid using supernets, we could require that the networking configuration"},{"line_number":233,"context_line":"be redeployed for all existing nodes whenever a new set of subnets were added"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_3488d1c6","line":230,"updated":"2017-02-09 17:28:37.000000000","message":"Is link for static routing in os_net_config blueprint needed here?https://blueprints.launchpad.net/tripleo/+spec/tripleo-os-net-config-source-routing","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Since we control addresses and routes on the host nodes using a"},{"line_number":229,"context_line":"combination of Heat templates and os-net-config, it may be possible to use"},{"line_number":230,"context_line":"static routes to supernets to provide L2 adjacency."},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"To avoid using supernets, we could require that the networking configuration"},{"line_number":233,"context_line":"be redeployed for all existing nodes whenever a new set of subnets were added"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_3aa814db","line":230,"in_reply_to":"1a430d35_3488d1c6","updated":"2017-02-14 23:16:08.000000000","message":"No, because we don\u0027t need source routing for this, the existing routing functions in os-net-config should work fine. We\u0027ll just use a static route to the network supernet on each network interface.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":242,"context_line":"hosts to point toward the Internal API gateway instead of the default gateway."},{"line_number":243,"context_line":"This can be provided by a supernet route to 172.19.x.x pointing to the local"},{"line_number":244,"context_line":"gateway on each subnet (e.g. 172.19.1.1 and 172.19.2.1 on the respective"},{"line_number":245,"context_line":"subnets). This could be represented in an os-net-config with the following::"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    -"},{"line_number":248,"context_line":"      type: interface"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_9f11a3b2","line":245,"range":{"start_line":245,"start_character":36,"end_line":245,"end_character":41},"updated":"2017-02-09 17:28:37.000000000","message":"nit: s/in an/in","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":311,"context_line":"2. Use remote DHCP/PXE boot but provide L3 routes back to the introspection server"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"For more information about solutions, please refer to the"},{"line_number":314,"context_line":"tripleo-routed-networks-ironic-inspector blueprint [5] and spec [6]."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"-------"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_00eb94b1","line":314,"range":{"start_line":314,"start_character":52,"end_line":314,"end_character":67},"updated":"2017-02-09 17:28:37.000000000","message":"Nit - would be useful to have links here.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":311,"context_line":"2. Use remote DHCP/PXE boot but provide L3 routes back to the introspection server"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"For more information about solutions, please refer to the"},{"line_number":314,"context_line":"tripleo-routed-networks-ironic-inspector blueprint [5] and spec [6]."},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"-------"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_39a0db90","line":314,"range":{"start_line":314,"start_character":52,"end_line":314,"end_character":67},"in_reply_to":"1a430d35_00eb94b1","updated":"2017-02-14 23:16:08.000000000","message":"Yes, and it would also make the formatting flow not as well. I considered doing links inline, but there are so many that the document would get cluttered I think.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Possible Solutions, Ideas, or Approaches:"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"1. Dan Prince wrote a patch in progress to convert the ctlplane network"},{"line_number":324,"context_line":"   addresses to static addresses post-deployment. This will need to be"},{"line_number":325,"context_line":"   refactored to support multiple provisioning subnets across routers."},{"line_number":326,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_4022fc02","line":323,"range":{"start_line":323,"start_character":2,"end_line":323,"end_character":39},"updated":"2017-02-09 17:28:37.000000000","message":"Could you provide link to patch please? (I haven\u0027t been able to locate it)","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":320,"context_line":""},{"line_number":321,"context_line":"Possible Solutions, Ideas, or Approaches:"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"1. Dan Prince wrote a patch in progress to convert the ctlplane network"},{"line_number":324,"context_line":"   addresses to static addresses post-deployment. This will need to be"},{"line_number":325,"context_line":"   refactored to support multiple provisioning subnets across routers."},{"line_number":326,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_dad1b858","line":323,"range":{"start_line":323,"start_character":2,"end_line":323,"end_character":39},"in_reply_to":"1a430d35_4022fc02","updated":"2017-02-14 23:16:08.000000000","message":"Oh, this was merged a long time ago, so I\u0027ll add a link to the merged patch.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":400,"context_line":"   mapping of role to node to subnet. In order to do this, additional"},{"line_number":401,"context_line":"   integration would be required between Ironic and Neutron (to make Ironic"},{"line_number":402,"context_line":"   aware of multiple subnets per network, and to add the ability to make"},{"line_number":403,"context_line":"   that association during introspection."},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"------"},{"line_number":406,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_540f1d2e","line":403,"updated":"2017-02-09 17:28:37.000000000","message":"nit - missing \u0027)\u0027","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"We will need to associate a given node with the IP subnets that are appropriate"},{"line_number":481,"context_line":"for that node. It probably makes sense to store this data in Ironic, but there"},{"line_number":482,"context_line":"is some question how to populate this data."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"Possible Solutions, Ideas or Approaches:"},{"line_number":485,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_771c1b6b","line":482,"updated":"2017-02-09 17:28:37.000000000","message":"This is the same as Problem #5/Possible solution #6 right?  Or do we need to solve this for other reasons?  If not, recommend not having separate problem for this.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"We will need to associate a given node with the IP subnets that are appropriate"},{"line_number":481,"context_line":"for that node. It probably makes sense to store this data in Ironic, but there"},{"line_number":482,"context_line":"is some question how to populate this data."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"Possible Solutions, Ideas or Approaches:"},{"line_number":485,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_59dbcf1b","line":482,"in_reply_to":"1a430d35_771c1b6b","updated":"2017-02-14 23:16:08.000000000","message":"No, these are separate. Problem #5 is that Heat doesn\u0027t support the Neutron Routed Network objects (segments and adjacencies), so if we want to utilize the routed networks work to model spine/leaf in Neutron we need to add that support to Heat. Otherwise we have to create our own model in Heat for representing the various subnets (such as a JSON map).\n\nProblem #6 is about creating a mechanism for assigning addresses from the correct subnet. This assumes that we know which subnets apply to a given node.\n\nProblem #9 (this one), is about how we figure out which subnets to use for each host (how do we figure out which subnet is the right one for a given host). That requires either topology awareness in Ironic that is aware of subnet-to-host mapping, or we need to supply the data on a per-role basis and use one role per layer 2 domain. Initially we might provide a map, but eventually I would like Ironic to figure out these relationships as part of introspection.\n\nI\u0027ll try to clarify the difference between these in the next revision.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":632,"context_line":"7. Modify Isolated Networking model in Heat to support multiple subnets, as"},{"line_number":633,"context_line":"   described in Problem #8."},{"line_number":634,"context_line":"8. Add support for setting routes to supernets in os-net-config NIC templates,"},{"line_number":635,"context_line":"   as described in the proposed solution to Problem #2."},{"line_number":636,"context_line":"9. Implement support for iptables on the Controller, in order to mitigate"},{"line_number":637,"context_line":"   the APIs potentially being reachable via remote routes. Alternatively,"},{"line_number":638,"context_line":"   document the mitigation procedure using ACLs on the routers."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_d7bdcfd8","line":635,"updated":"2017-02-09 17:28:37.000000000","message":"8a. Finish change to allow os-net-config changes without bouncing interfaces -https://review.openstack.org/#/c/152732/","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":632,"context_line":"7. Modify Isolated Networking model in Heat to support multiple subnets, as"},{"line_number":633,"context_line":"   described in Problem #8."},{"line_number":634,"context_line":"8. Add support for setting routes to supernets in os-net-config NIC templates,"},{"line_number":635,"context_line":"   as described in the proposed solution to Problem #2."},{"line_number":636,"context_line":"9. Implement support for iptables on the Controller, in order to mitigate"},{"line_number":637,"context_line":"   the APIs potentially being reachable via remote routes. Alternatively,"},{"line_number":638,"context_line":"   document the mitigation procedure using ACLs on the routers."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_9a53c0e1","line":635,"in_reply_to":"1a430d35_d7bdcfd8","updated":"2017-02-14 23:16:08.000000000","message":"Actually, I\u0027m not sure that we need that patch if we are using static supernets. That patch proves to be problematic, because we moved to a mechanism where os-net-config is called by Heat, but I\u0027d like to finish it at some point, I just don\u0027t think it\u0027s a requirement for spine/leaf.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":633,"context_line":"   described in Problem #8."},{"line_number":634,"context_line":"8. Add support for setting routes to supernets in os-net-config NIC templates,"},{"line_number":635,"context_line":"   as described in the proposed solution to Problem #2."},{"line_number":636,"context_line":"9. Implement support for iptables on the Controller, in order to mitigate"},{"line_number":637,"context_line":"   the APIs potentially being reachable via remote routes. Alternatively,"},{"line_number":638,"context_line":"   document the mitigation procedure using ACLs on the routers."},{"line_number":639,"context_line":"10. Document the testing procedures."},{"line_number":640,"context_line":"11. Modify the documentation in tripleo-docs to cover the spine-and-leaf case."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_b78da32c","line":637,"range":{"start_line":636,"start_character":3,"end_line":637,"end_character":58},"updated":"2017-02-09 17:28:37.000000000","message":"Seems like would need more discussion on this and perhaps list as one of the problems above, unless it is just being documented.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":633,"context_line":"   described in Problem #8."},{"line_number":634,"context_line":"8. Add support for setting routes to supernets in os-net-config NIC templates,"},{"line_number":635,"context_line":"   as described in the proposed solution to Problem #2."},{"line_number":636,"context_line":"9. Implement support for iptables on the Controller, in order to mitigate"},{"line_number":637,"context_line":"   the APIs potentially being reachable via remote routes. Alternatively,"},{"line_number":638,"context_line":"   document the mitigation procedure using ACLs on the routers."},{"line_number":639,"context_line":"10. Document the testing procedures."},{"line_number":640,"context_line":"11. Modify the documentation in tripleo-docs to cover the spine-and-leaf case."}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_1a0d10e8","line":637,"range":{"start_line":636,"start_character":3,"end_line":637,"end_character":58},"in_reply_to":"1a430d35_b78da32c","updated":"2017-02-14 23:16:08.000000000","message":"Yeah, this should probably be recorded in at least an [RFE] bug for eventual implementation.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":650,"context_line":"3. When introspection or deployment is run, the DHCP server receives the DHCP"},{"line_number":651,"context_line":"   request from the baremetal host via DHCP relay"},{"line_number":652,"context_line":"4. If the node has not been introspected, reply with an IP address from the"},{"line_number":653,"context_line":"   introspection pool* and the inspector PXE boot image"},{"line_number":654,"context_line":"5. If the node already has been introspected, then the server assumes this is"},{"line_number":655,"context_line":"   a deployment attempt, and replies with the Neutron port IP address and the"},{"line_number":656,"context_line":"   overcloud-full deployment image"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_77fb3b48","line":653,"range":{"start_line":653,"start_character":21,"end_line":653,"end_character":22},"updated":"2017-02-09 17:28:37.000000000","message":"nit - * (can\u0027t find reference to it below)","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":721,"context_line":"* [0] - Source Code: inspector_dnsmasq_http.erb"},{"line_number":722,"context_line":"  https://github.com/openstack/puppet-ironic/blob/master/templates/inspector_dnsmasq_http.erb"},{"line_number":723,"context_line":"* [1] - Spec: Routed Networks for Neutron"},{"line_number":724,"context_line":"  https://review.openstack.org/#/c/225384/6/specs/mitaka/routed-networks.rst"},{"line_number":725,"context_line":"* [2] - Spec: Override Network Names in TripleO Isolated Networking"},{"line_number":726,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/override-network-name"},{"line_number":727,"context_line":"* [3] - Review: Modify os-net-config to make changes without bouncing interface"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_ae92b749","line":724,"range":{"start_line":724,"start_character":2,"end_line":724,"end_character":76},"updated":"2017-02-09 17:28:37.000000000","message":"Please update link, this is now under specs/newton and has merged -https://specs.openstack.org/openstack/neutron-specs/specs/newton/routed-networks.html","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":721,"context_line":"* [0] - Source Code: inspector_dnsmasq_http.erb"},{"line_number":722,"context_line":"  https://github.com/openstack/puppet-ironic/blob/master/templates/inspector_dnsmasq_http.erb"},{"line_number":723,"context_line":"* [1] - Spec: Routed Networks for Neutron"},{"line_number":724,"context_line":"  https://review.openstack.org/#/c/225384/6/specs/mitaka/routed-networks.rst"},{"line_number":725,"context_line":"* [2] - Spec: Override Network Names in TripleO Isolated Networking"},{"line_number":726,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/override-network-name"},{"line_number":727,"context_line":"* [3] - Review: Modify os-net-config to make changes without bouncing interface"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_3a12d409","line":724,"range":{"start_line":724,"start_character":2,"end_line":724,"end_character":76},"in_reply_to":"1a430d35_ae92b749","updated":"2017-02-14 23:16:08.000000000","message":"Thanks, will do.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"42114a523992c47943692edd6c57afc0392b6783","unresolved":false,"context_lines":[{"line_number":728,"context_line":"  https://review.openstack.org/#/c/152732/"},{"line_number":729,"context_line":"* [4] - Review: Add LLDP processing hook and new CLI commands"},{"line_number":730,"context_line":"  https://review.openstack.org/#/c/374381/"},{"line_number":731,"context_line":"* [5] - Blueprint: Modify TripleO Ironic Inspector to PXE Boot Via DHCP Relay"},{"line_number":732,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-ironic-inspector"},{"line_number":733,"context_line":"* [6] - Spec: Modify TripleO Ironic Inspector to PXE Boot Via DHCP Relay"},{"line_number":734,"context_line":"  https://review.openstack.org/#/c/421011"},{"line_number":735,"context_line":"* [7] - Blueprint: User-specifiable Control Plane IP on TripleO Routed Isolated"},{"line_number":736,"context_line":"  Networks"},{"line_number":737,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-deployment"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a430d35_a0b480d4","line":734,"range":{"start_line":731,"start_character":2,"end_line":734,"end_character":41},"updated":"2017-02-09 17:28:37.000000000","message":"Seems like should just have link to spec here (#6)?  The blueprint just points to the spec and back to this spec.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"f06b4668ed773580dafb285eb424543dc20ffbae","unresolved":false,"context_lines":[{"line_number":728,"context_line":"  https://review.openstack.org/#/c/152732/"},{"line_number":729,"context_line":"* [4] - Review: Add LLDP processing hook and new CLI commands"},{"line_number":730,"context_line":"  https://review.openstack.org/#/c/374381/"},{"line_number":731,"context_line":"* [5] - Blueprint: Modify TripleO Ironic Inspector to PXE Boot Via DHCP Relay"},{"line_number":732,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-ironic-inspector"},{"line_number":733,"context_line":"* [6] - Spec: Modify TripleO Ironic Inspector to PXE Boot Via DHCP Relay"},{"line_number":734,"context_line":"  https://review.openstack.org/#/c/421011"},{"line_number":735,"context_line":"* [7] - Blueprint: User-specifiable Control Plane IP on TripleO Routed Isolated"},{"line_number":736,"context_line":"  Networks"},{"line_number":737,"context_line":"  https://blueprints.launchpad.net/tripleo/+spec/tripleo-routed-networks-deployment"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa31d9ce_fa32fca5","line":734,"range":{"start_line":731,"start_character":2,"end_line":734,"end_character":41},"in_reply_to":"1a430d35_a0b480d4","updated":"2017-02-14 23:16:08.000000000","message":"Good point.","commit_id":"8db7344884c57dbdd6e10c5e18b75b1884011124"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Problem Description"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Modern high-performance datacenter neworks typically use a Clos, or"},{"line_number":36,"context_line":"spine-and-leaf architecture where possible for scalability::"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  ,\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d.                        ,\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_64565807","line":35,"updated":"2017-02-15 13:31:07.000000000","message":"Typo: \"networks\".\n\nWritten like this, it\u0027s not totally clear that \"Clos\" and \"spine-and-leaf\" are synonyms. I\u0027d reword this sentence as \u0027Where possible, modern high-performance datacenter networks typically use a Clos (also known as \"spine-and-leaf\") architecture for scalability.\u0027","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Problem Description"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Modern high-performance datacenter neworks typically use a Clos, or"},{"line_number":36,"context_line":"spine-and-leaf architecture where possible for scalability::"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  ,\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d.                        ,\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba2be162_19722cae","line":35,"in_reply_to":"fa31d9ce_64565807","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"52dcafd1db92fd30e5afbfbd1e51e77ffd6b979a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"     |            |             |            |"},{"line_number":49,"context_line":"     |-[serv-A1]\u003d-|             |-[serv-B1]\u003d-|"},{"line_number":50,"context_line":"     |-[serv-A2]\u003d-|             |-[serv\u003dB2]\u003d-|"},{"line_number":51,"context_line":"     |-[serv-A3]\u003d-|             |-[serv\u003dB3]\u003d-|"},{"line_number":52,"context_line":"         Rack A                     Rack B"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_a68f36cb","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":40},"updated":"2017-02-27 22:08:15.000000000","message":"s/\u003d/-","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"     |            |             |            |"},{"line_number":49,"context_line":"     |-[serv-A1]\u003d-|             |-[serv-B1]\u003d-|"},{"line_number":50,"context_line":"     |-[serv-A2]\u003d-|             |-[serv\u003dB2]\u003d-|"},{"line_number":51,"context_line":"     |-[serv-A3]\u003d-|             |-[serv\u003dB3]\u003d-|"},{"line_number":52,"context_line":"         Rack A                     Rack B"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba2be162_5964a4e4","line":51,"range":{"start_line":51,"start_character":39,"end_line":51,"end_character":40},"in_reply_to":"da36d5c6_a68f36cb","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":92,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"As this is a complex topic, it will be easier to break the problems down into"},{"line_number":95,"context_line":"the constituent parts, based on which part of TripleO they affect:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"**Problem #1: TripleO uses DHCP/PXE on the Undercloud provisioning net (ctlplane).**"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_0ac3e557","line":95,"updated":"2017-02-15 13:31:07.000000000","message":"s/the/their","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":92,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"As this is a complex topic, it will be easier to break the problems down into"},{"line_number":95,"context_line":"the constituent parts, based on which part of TripleO they affect:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"**Problem #1: TripleO uses DHCP/PXE on the Undercloud provisioning net (ctlplane).**"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba2be162_3967f0eb","line":95,"in_reply_to":"fa31d9ce_0ac3e557","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":159,"context_line":"for all networks without special switch configuration. In this case, the"},{"line_number":160,"context_line":"Undercloud would act as a router between subnets/VLANs. This should be"},{"line_number":161,"context_line":"considered a small-scale solution, as this is not as scalable as DHCP relay."},{"line_number":162,"context_line":"The configuration for dnsmasq is the same whether all subnets are local or"},{"line_number":163,"context_line":"remote, but dnsmasq may have to listen on multiple interfaces (today it only"},{"line_number":164,"context_line":"listens on br-ctlplane). The dnsmasq process currently runs with"},{"line_number":165,"context_line":"``--bind-interface\u003dtap-XXX``, but the process will need to be run with either"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_ca00ed36","line":162,"updated":"2017-02-15 13:31:07.000000000","message":"It looks like you\u0027re using \"configuration\" here to mean \"contents of config files but not command-line options\", but above you\u0027re using it to include command-line options. AIUI dnsmasq doesn\u0027t care, and will accept the same options from both places.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":159,"context_line":"for all networks without special switch configuration. In this case, the"},{"line_number":160,"context_line":"Undercloud would act as a router between subnets/VLANs. This should be"},{"line_number":161,"context_line":"considered a small-scale solution, as this is not as scalable as DHCP relay."},{"line_number":162,"context_line":"The configuration for dnsmasq is the same whether all subnets are local or"},{"line_number":163,"context_line":"remote, but dnsmasq may have to listen on multiple interfaces (today it only"},{"line_number":164,"context_line":"listens on br-ctlplane). The dnsmasq process currently runs with"},{"line_number":165,"context_line":"``--bind-interface\u003dtap-XXX``, but the process will need to be run with either"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba2be162_f97ab876","line":162,"in_reply_to":"fa31d9ce_ca00ed36","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"52dcafd1db92fd30e5afbfbd1e51e77ffd6b979a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Undercloud would act as a router between subnets/VLANs. This should be"},{"line_number":161,"context_line":"considered a small-scale solution, as this is not as scalable as DHCP relay."},{"line_number":162,"context_line":"The configuration for dnsmasq is the same whether all subnets are local or"},{"line_number":163,"context_line":"remote, but dnsmasq may have to listen on multiple interfaces (today it only"},{"line_number":164,"context_line":"listens on br-ctlplane). The dnsmasq process currently runs with"},{"line_number":165,"context_line":"``--bind-interface\u003dtap-XXX``, but the process will need to be run with either"},{"line_number":166,"context_line":"binding to multiple interfaces, or with ``--except-interface\u003dlo`` and multiple"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_c6934aff","line":163,"range":{"start_line":163,"start_character":12,"end_line":163,"end_character":61},"updated":"2017-02-27 22:08:15.000000000","message":"We could also configure DHCP-relay agent on the undercloud node to solve this for the proof-of-concept usecase? e.g trunk back to undercloud, have dhcp-relay agents on interfaces on undercloud relay to the br-ctrlplane?","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Undercloud would act as a router between subnets/VLANs. This should be"},{"line_number":161,"context_line":"considered a small-scale solution, as this is not as scalable as DHCP relay."},{"line_number":162,"context_line":"The configuration for dnsmasq is the same whether all subnets are local or"},{"line_number":163,"context_line":"remote, but dnsmasq may have to listen on multiple interfaces (today it only"},{"line_number":164,"context_line":"listens on br-ctlplane). The dnsmasq process currently runs with"},{"line_number":165,"context_line":"``--bind-interface\u003dtap-XXX``, but the process will need to be run with either"},{"line_number":166,"context_line":"binding to multiple interfaces, or with ``--except-interface\u003dlo`` and multiple"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba2be162_d985f459","line":163,"range":{"start_line":163,"start_character":12,"end_line":163,"end_character":61},"in_reply_to":"da36d5c6_c6934aff","updated":"2018-01-17 19:01:55.000000000","message":"Yes, I discussed this elsewhere, but it warrants a mention here as a possibility.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"This is probably the best approach, since Neutron is already able to handle"},{"line_number":211,"context_line":"DHCP relay with multiple subnets as part of the same network. Additionally,"},{"line_number":212,"context_line":"this allows a clean separation between local subnets with are part of the"},{"line_number":213,"context_line":"same network, and networks which are separate (or non-local implemntations"},{"line_number":214,"context_line":"of the same network, such as External networks in two different datacenters)."},{"line_number":215,"context_line":"This is covered in more detail in alternative approach #2 below."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_8a6fd5fa","line":212,"updated":"2017-02-15 13:31:07.000000000","message":"s/with/which","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"This is probably the best approach, since Neutron is already able to handle"},{"line_number":211,"context_line":"DHCP relay with multiple subnets as part of the same network. Additionally,"},{"line_number":212,"context_line":"this allows a clean separation between local subnets with are part of the"},{"line_number":213,"context_line":"same network, and networks which are separate (or non-local implemntations"},{"line_number":214,"context_line":"of the same network, such as External networks in two different datacenters)."},{"line_number":215,"context_line":"This is covered in more detail in alternative approach #2 below."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_eabae76d","line":212,"in_reply_to":"fa31d9ce_8a6fd5fa","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Although we could use a database, flat file, or some other method to keep"},{"line_number":220,"context_line":"track of IP addresses, Neutron as an IPAM back-end provides many integration"},{"line_number":221,"context_line":"benefits. Neutron integrates DHCP, hardware switch port configuration (throuh"},{"line_number":222,"context_line":"the use of plugins), upcoming support in Ironic, and other features such as"},{"line_number":223,"context_line":"IPv6 support. This is covered in more detail in alternative approach #3 below."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_8a46f578","line":221,"updated":"2017-02-15 13:31:07.000000000","message":"s/throuh/through","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Although we could use a database, flat file, or some other method to keep"},{"line_number":220,"context_line":"track of IP addresses, Neutron as an IPAM back-end provides many integration"},{"line_number":221,"context_line":"benefits. Neutron integrates DHCP, hardware switch port configuration (throuh"},{"line_number":222,"context_line":"the use of plugins), upcoming support in Ironic, and other features such as"},{"line_number":223,"context_line":"IPv6 support. This is covered in more detail in alternative approach #3 below."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_0ab01b8b","line":221,"in_reply_to":"fa31d9ce_8a46f578","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Approach 1:"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"We could use multiple networks, one set of isolated networks per rack. Each set"},{"line_number":235,"context_line":"of isolated subnets would have their own set of Neutron networks. This presents"},{"line_number":236,"context_line":"a challenge due to the way we use Heat to process templates. Heat doesn\u0027t deal"},{"line_number":237,"context_line":"well with arbitrary numbers of resources. You really have to define your network"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_c5c8de57","line":234,"updated":"2017-02-15 13:31:07.000000000","message":"What exactly do you mean by \"networks\" here? The Neutron docs seem to use \"network\" pretty consistently to mean \"L2 domain, possibly virtual\", and I thought we were having exactly one L2 domain per rack?","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ddbb9dc637909ee06528a57812de109e966f3aee","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Approach 1:"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"We could use multiple networks, one set of isolated networks per rack. Each set"},{"line_number":235,"context_line":"of isolated subnets would have their own set of Neutron networks. This presents"},{"line_number":236,"context_line":"a challenge due to the way we use Heat to process templates. Heat doesn\u0027t deal"},{"line_number":237,"context_line":"well with arbitrary numbers of resources. You really have to define your network"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_7824f8c5","line":234,"in_reply_to":"fa31d9ce_c5c8de57","updated":"2017-02-21 18:20:47.000000000","message":"No, a Neutron Network no longer means \"L2 domain\". In the new model, there can be multiple Segments in one Network, and the physical_network attribute is associated with the Segment. In this proposed model, instead of using Segments, we would have a 1:1 mapping of Subnet to physical network. I\u0027ll make that more clear.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":234,"context_line":"We could use multiple networks, one set of isolated networks per rack. Each set"},{"line_number":235,"context_line":"of isolated subnets would have their own set of Neutron networks. This presents"},{"line_number":236,"context_line":"a challenge due to the way we use Heat to process templates. Heat doesn\u0027t deal"},{"line_number":237,"context_line":"well with arbitrary numbers of resources. You really have to define your network"},{"line_number":238,"context_line":"resources up front. Using multiple subnets may provide us with the flexibility"},{"line_number":239,"context_line":"we need without creating exponentially more resources. We would create the same"},{"line_number":240,"context_line":"isolated networks that we do today, but populate each network with an arbitrary"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_65d012ca","line":237,"updated":"2017-02-15 13:31:07.000000000","message":"Does the \"arbitrary numbers\" problem arise because we don\u0027t know how many racks we\u0027re deploying to at the time we\u0027re writing the templates?","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":234,"context_line":"We could use multiple networks, one set of isolated networks per rack. Each set"},{"line_number":235,"context_line":"of isolated subnets would have their own set of Neutron networks. This presents"},{"line_number":236,"context_line":"a challenge due to the way we use Heat to process templates. Heat doesn\u0027t deal"},{"line_number":237,"context_line":"well with arbitrary numbers of resources. You really have to define your network"},{"line_number":238,"context_line":"resources up front. Using multiple subnets may provide us with the flexibility"},{"line_number":239,"context_line":"we need without creating exponentially more resources. We would create the same"},{"line_number":240,"context_line":"isolated networks that we do today, but populate each network with an arbitrary"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_0d4bd52c","line":237,"in_reply_to":"fa31d9ce_65d012ca","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ddbb9dc637909ee06528a57812de109e966f3aee","unresolved":false,"context_lines":[{"line_number":234,"context_line":"We could use multiple networks, one set of isolated networks per rack. Each set"},{"line_number":235,"context_line":"of isolated subnets would have their own set of Neutron networks. This presents"},{"line_number":236,"context_line":"a challenge due to the way we use Heat to process templates. Heat doesn\u0027t deal"},{"line_number":237,"context_line":"well with arbitrary numbers of resources. You really have to define your network"},{"line_number":238,"context_line":"resources up front. Using multiple subnets may provide us with the flexibility"},{"line_number":239,"context_line":"we need without creating exponentially more resources. We would create the same"},{"line_number":240,"context_line":"isolated networks that we do today, but populate each network with an arbitrary"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_13511d0f","line":237,"in_reply_to":"fa31d9ce_65d012ca","updated":"2017-02-21 18:20:47.000000000","message":"Yes, will clarify","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":243,"context_line":"static IPs are assigned when we create the Neutron port, so we would have to"},{"line_number":244,"context_line":"pass the subnet along with the port request to get an IP on the correct subnet."},{"line_number":245,"context_line":"The disadvantage to this approach is that it makes it impossible to represent"},{"line_number":246,"context_line":"network VLANs with more than one IP subnet, which is exactly the problem that"},{"line_number":247,"context_line":"the Neutron routed networks are supposed to solve."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Approach 2:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_05011606","line":246,"updated":"2017-02-15 13:31:07.000000000","message":"It looks like you can specify multiple subnets for an OS::Neutron::Port resource - what am I missing? https://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::Port-attr-subnets","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ddbb9dc637909ee06528a57812de109e966f3aee","unresolved":false,"context_lines":[{"line_number":243,"context_line":"static IPs are assigned when we create the Neutron port, so we would have to"},{"line_number":244,"context_line":"pass the subnet along with the port request to get an IP on the correct subnet."},{"line_number":245,"context_line":"The disadvantage to this approach is that it makes it impossible to represent"},{"line_number":246,"context_line":"network VLANs with more than one IP subnet, which is exactly the problem that"},{"line_number":247,"context_line":"the Neutron routed networks are supposed to solve."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"Approach 2:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_93642de6","line":246,"in_reply_to":"fa31d9ce_05011606","updated":"2017-02-21 18:20:47.000000000","message":"We would not be using the Neutron schema exactly as designed, instead using a 1:1 mapping of Subnet to physical network. I\u0027ll clarify that point.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":262,"context_line":"static routes to supernets to provide L2 adjacency."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"To avoid using supernets, we could require that the networking configuration"},{"line_number":265,"context_line":"be redeployed for all existing nodes whenever a new set of subnets were added"},{"line_number":266,"context_line":"or removed from the existing networks, but we will need to make route updates"},{"line_number":267,"context_line":"a non-impacting change (should be possible with a patch to os-net-config)."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_17adcd87","line":265,"updated":"2017-02-15 13:31:07.000000000","message":"s/were/is","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":262,"context_line":"static routes to supernets to provide L2 adjacency."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"To avoid using supernets, we could require that the networking configuration"},{"line_number":265,"context_line":"be redeployed for all existing nodes whenever a new set of subnets were added"},{"line_number":266,"context_line":"or removed from the existing networks, but we will need to make route updates"},{"line_number":267,"context_line":"a non-impacting change (should be possible with a patch to os-net-config)."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_1bddcb70","line":265,"in_reply_to":"fa31d9ce_17adcd87","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"0110cad5a4060111b049b366421bdcfecde29a16","unresolved":false,"context_lines":[{"line_number":357,"context_line":"   refactored to support multiple provisioning subnets across routers."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"Solution Implementation"},{"line_number":360,"context_line":"This work is done and merged for the legacy use case. During the"},{"line_number":361,"context_line":"initial deployment, the nodes receive their IP address via DHCP, but during"},{"line_number":362,"context_line":"Heat deployment the os-net-config script is called, which writes static"},{"line_number":363,"context_line":"configuration files for the NICs with static IPs."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa31d9ce_d74255ad","line":360,"updated":"2017-02-15 13:31:07.000000000","message":"Blank line needed here?","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":357,"context_line":"   refactored to support multiple provisioning subnets across routers."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"Solution Implementation"},{"line_number":360,"context_line":"This work is done and merged for the legacy use case. During the"},{"line_number":361,"context_line":"initial deployment, the nodes receive their IP address via DHCP, but during"},{"line_number":362,"context_line":"Heat deployment the os-net-config script is called, which writes static"},{"line_number":363,"context_line":"configuration files for the NICs with static IPs."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_7bbb270f","line":360,"in_reply_to":"fa31d9ce_d74255ad","updated":"2018-01-17 19:01:55.000000000","message":"Done","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"52dcafd1db92fd30e5afbfbd1e51e77ffd6b979a","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"**Problem #5: Heat Does Not Yet Support Routed Networks**"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"The Neutron routed networks extensions were only added in recent releases, and"},{"line_number":379,"context_line":"have not yet been implemented in Heat Templates."},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"Possible Solutions, Ideas or Approaches:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_c677ca06","line":378,"range":{"start_line":378,"start_character":3,"end_line":378,"end_character":27},"updated":"2017-02-27 22:08:15.000000000","message":"I read trough this Neutron routed networks spec a few times. I don\u0027t see why we need it. Also AFAICT it expects to be able to schedule DHCP agents on each segment. Tripleo deployers is more likely to use a DHCP-relay agent on ToR switches.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"**Problem #5: Heat Does Not Yet Support Routed Networks**"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"The Neutron routed networks extensions were only added in recent releases, and"},{"line_number":379,"context_line":"have not yet been implemented in Heat Templates."},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"Possible Solutions, Ideas or Approaches:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_fb5c77ef","line":378,"range":{"start_line":378,"start_character":3,"end_line":378,"end_character":27},"in_reply_to":"da36d5c6_c677ca06","updated":"2018-01-17 19:01:55.000000000","message":"That\u0027s exactly right, and I will clarify.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"52dcafd1db92fd30e5afbfbd1e51e77ffd6b979a","unresolved":false,"context_lines":[{"line_number":565,"context_line":"known ahead of time, and the IP addresses must be selected from the appropriate"},{"line_number":566,"context_line":"pool. This is due to the reliance on static IP addresses provided by Heat."},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"One alternative approach is to use DHCP servers to assign IP addresses on all"},{"line_number":569,"context_line":"hosts on all interfaces. This would simplify configuration within the Heat"},{"line_number":570,"context_line":"templates and environment files. Unfortunately, this was the original approach"},{"line_number":571,"context_line":"of TripleO, and it was deemed insufficient by end-users, who wanted stability"},{"line_number":572,"context_line":"of IP addresses, and didn\u0027t want to have an external dependency on DHCP."},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"Another approach is to use the DHCP server functionality in the network switch"},{"line_number":575,"context_line":"infrastructure in order to PXE boot systems, then assign static IP addresses"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_2b878fd8","line":572,"range":{"start_line":568,"start_character":0,"end_line":572,"end_character":72},"updated":"2017-02-27 22:08:15.000000000","message":"Can we make os-net-config translate recived DHCP configuration to static configuration?","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":565,"context_line":"known ahead of time, and the IP addresses must be selected from the appropriate"},{"line_number":566,"context_line":"pool. This is due to the reliance on static IP addresses provided by Heat."},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"One alternative approach is to use DHCP servers to assign IP addresses on all"},{"line_number":569,"context_line":"hosts on all interfaces. This would simplify configuration within the Heat"},{"line_number":570,"context_line":"templates and environment files. Unfortunately, this was the original approach"},{"line_number":571,"context_line":"of TripleO, and it was deemed insufficient by end-users, who wanted stability"},{"line_number":572,"context_line":"of IP addresses, and didn\u0027t want to have an external dependency on DHCP."},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"Another approach is to use the DHCP server functionality in the network switch"},{"line_number":575,"context_line":"infrastructure in order to PXE boot systems, then assign static IP addresses"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a30ddce_db25f35c","line":572,"range":{"start_line":568,"start_character":0,"end_line":572,"end_character":72},"in_reply_to":"da36d5c6_2b878fd8","updated":"2018-01-17 19:01:55.000000000","message":"I\u0027ve thought about that, but it would be a pretty big departure from how we do things today. Furthermore, we really need to know what many of the IP addresses are in order to pass that information to Puppet. The entire Puppet mechanism would have to be refactored so that the Puppet hieradata was populated outside of Heat.","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"52dcafd1db92fd30e5afbfbd1e51e77ffd6b979a","unresolved":false,"context_lines":[{"line_number":672,"context_line":"1. Add static IP assignment to Control Plane [DONE]"},{"line_number":673,"context_line":"2. Modify Ironic Inspector ``dnsmasq.conf`` generation to allow export of"},{"line_number":674,"context_line":"   multiple DHCP ranges, as described in Problem #1 and Problem #3."},{"line_number":675,"context_line":"3. Evaluate the Routed Networks work in Neutron, to determine if it is required"},{"line_number":676,"context_line":"   for spine-and-leaf, as described in Problem #2."},{"line_number":677,"context_line":"4. Add OS::Neutron::Segment and l2-adjacency support to Heat, as described"},{"line_number":678,"context_line":"   in Problem #5. This may or may not be a dependency for spine-and-leaf, based"},{"line_number":679,"context_line":"   on the results of work item #3."}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_4b8843c7","line":676,"range":{"start_line":675,"start_character":3,"end_line":676,"end_character":50},"updated":"2017-02-27 22:08:15.000000000","message":"I think it is not.\nAll we need for triplo is the capability to disable \"on-link\"/\"link-local\" routes that dhcp agent insist on creating. I have suggested a \"big hammer\" approach to this in https://review.openstack.org/#/c/438171","commit_id":"afa025443a6b39e0d54dd5bfa54f35855640949c"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"dc62f2fc5ab75abe089df8c39bf1acfb72ad3201","unresolved":false,"context_lines":[{"line_number":149,"context_line":"option \"classless-static-route\" is given, with pointers to both the default"},{"line_number":150,"context_line":"route and the other subnet(s) on the same Neutron network."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"In order to modify Ironic-Inspector to use multiple subnets, we will need to"},{"line_number":153,"context_line":"modify or extend the format of ``undercloud.conf`` to include support for"},{"line_number":154,"context_line":"multiple subnets. If multiple subnets are entered in ``undercloud.conf``, the"},{"line_number":155,"context_line":"dnsmasq server should be configured for all subnets. The Undercloud puppet"},{"line_number":156,"context_line":"module puppet-ironic contains the logic for writing the ``dnsmasq.conf`` for"},{"line_number":157,"context_line":"ironic-inspector [0]_."}],"source_content_type":"text/x-rst","patch_set":18,"id":"ffe62b97_4699cdc1","line":154,"range":{"start_line":152,"start_character":0,"end_line":154,"end_character":18},"updated":"2017-03-28 20:55:39.000000000","message":"Add reference to patch https://review.openstack.org/#/c/437544/ ?","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"---------"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"**Problem #3: Ironic introspection DHCP doesn\u0027t yet support DHCP relay**"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"This makes it difficult to do introspection when the hosts are not on the same L2"},{"line_number":359,"context_line":"domain as the controllers."}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_2696fa94","line":356,"range":{"start_line":356,"start_character":0,"end_line":356,"end_character":72},"updated":"2018-01-17 10:53:06.000000000","message":"The tripleo code is up for review.\nhttps://review.openstack.org/#/c/533367/\n\nSupported in puppet modules for a while:\nhttps://review.openstack.org/#/c/436716/\n\nAlso this to not rely on mac filtering in firewall.\nhttps://review.openstack.org/#/c/466448","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"------"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"**Problem #5: Heat Does Not Yet Support Routed Networks**"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"The Neutron routed networks extensions were only added in recent releases, and"},{"line_number":401,"context_line":"have not yet been implemented in Heat Templates."},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Possible Solutions, Ideas or Approaches:"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"1. Add the required objects to Heat. At minimum, we will probably have to"},{"line_number":406,"context_line":"   add ``OS::Neutron::Segment``, which represents layer 2 segments, the"},{"line_number":407,"context_line":"   ``OS::Neutron::Network`` will be updated to support the ``l2-adjacency``"},{"line_number":408,"context_line":"   attribute, ``OS::Neutron::Subnet`` and ``OS::Neutron:port`` would be extended"},{"line_number":409,"context_line":"   to support the ``segment_id`` attribute."},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"There are multiple problems with trying to implement the routed networks at"},{"line_number":412,"context_line":"this time. First and foremost, Neutron is only capable of scheduling one"},{"line_number":413,"context_line":"DHCP server per network segment, it doesn\u0027t support DHCP relay at this time."},{"line_number":414,"context_line":"For these reasons, we are not able to use the Neutron routed networks in"},{"line_number":415,"context_line":"TripleO for now."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"------"},{"line_number":418,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_3bb5b77e","line":415,"range":{"start_line":398,"start_character":0,"end_line":415,"end_character":16},"updated":"2018-01-17 10:53:06.000000000","message":"These are all solved?\nhttps://docs.openstack.org/heat/latest/template_guide/openstack.html#OS::Neutron::Segment\n\nhttps://review.openstack.org/#/c/468744/","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":430,"context_line":"order for Heat to assign ports from the correct subnets, we will need to have a"},{"line_number":431,"context_line":"host-to-subnets mapping."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Possible Solutions, Ideas or Approaches:"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"1. The simplest implementation of this would probably be a mapping of role/index"},{"line_number":436,"context_line":"   to a set of subnets, so that it is known to Heat that Controller-1 is in"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_74fd7e6c","line":433,"range":{"start_line":433,"start_character":0,"end_line":433,"end_character":39},"updated":"2018-01-17 10:53:06.000000000","message":"I think the way to do this in the future is to use the host to segment mapping neutron creates in nova. Either via host-aggregate or placement. There is pataches and spec in the works https://review.openstack.org/#/c/526753/ and https://review.openstack.org/#/c/529135/.\n\nFor now I belive we can do 2 with roles and composable networks.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":430,"context_line":"order for Heat to assign ports from the correct subnets, we will need to have a"},{"line_number":431,"context_line":"host-to-subnets mapping."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Possible Solutions, Ideas or Approaches:"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"1. The simplest implementation of this would probably be a mapping of role/index"},{"line_number":436,"context_line":"   to a set of subnets, so that it is known to Heat that Controller-1 is in"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_a0240e5f","line":433,"range":{"start_line":433,"start_character":0,"end_line":433,"end_character":39},"in_reply_to":"7f96bb07_74fd7e6c","updated":"2018-01-17 19:01:55.000000000","message":"I agree that is a better way to do it in the long run. Switching methods may not be trivial, however, considering the need to support upgrades. I do hope that we will have more flexibility to support changes to the network during upgrades in the future, but for now we face some Heat limitations on what can be updated without rebuilding the node.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":464,"context_line":""},{"line_number":465,"context_line":"------"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"**Problem #7: Isolated Networking Requires Static Routes to Ensure Correct VLAN"},{"line_number":468,"context_line":"is Used**"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"In order to continue using the Isolated Networks model, routes will need to be"},{"line_number":471,"context_line":"in place on each node, to steer traffic to the correct VLAN interfaces. The"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_3405b646","line":468,"range":{"start_line":467,"start_character":0,"end_line":468,"end_character":9},"updated":"2018-01-17 10:53:06.000000000","message":"In downstream docs there is examples on how to do this using roles and composable networks.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":483,"context_line":"   as /24. This would simplify the routes, since only a single route for"},{"line_number":484,"context_line":"   172.17.0.0/16 would be required pointing to the local router on the"},{"line_number":485,"context_line":"   172.17.x.0/24 network."},{"line_number":486,"context_line":"2. Modify os-net-config so that routes can be updated without bouncing"},{"line_number":487,"context_line":"   interfaces, and then run os-net-config on all nodes when scaling occurs."},{"line_number":488,"context_line":"   A review for this functionality is in progress [3]_. However, this may lead"},{"line_number":489,"context_line":"   to instability, and may not be compatible with the newer model of running"},{"line_number":490,"context_line":"   os-net-config from a script written by Heat, so this review will likely"},{"line_number":491,"context_line":"   have to be refactored."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"os-net-config configures static routes for each interface. If we can keep the"},{"line_number":494,"context_line":"routing simple (one route per functional network), then we would be able to"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_545e4244","line":491,"range":{"start_line":486,"start_character":3,"end_line":491,"end_character":25},"updated":"2018-01-17 10:53:06.000000000","message":"Was this ever implemented? The referenced patch was abandoned.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":483,"context_line":"   as /24. This would simplify the routes, since only a single route for"},{"line_number":484,"context_line":"   172.17.0.0/16 would be required pointing to the local router on the"},{"line_number":485,"context_line":"   172.17.x.0/24 network."},{"line_number":486,"context_line":"2. Modify os-net-config so that routes can be updated without bouncing"},{"line_number":487,"context_line":"   interfaces, and then run os-net-config on all nodes when scaling occurs."},{"line_number":488,"context_line":"   A review for this functionality is in progress [3]_. However, this may lead"},{"line_number":489,"context_line":"   to instability, and may not be compatible with the newer model of running"},{"line_number":490,"context_line":"   os-net-config from a script written by Heat, so this review will likely"},{"line_number":491,"context_line":"   have to be refactored."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"os-net-config configures static routes for each interface. If we can keep the"},{"line_number":494,"context_line":"routing simple (one route per functional network), then we would be able to"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_20923e4d","line":491,"range":{"start_line":486,"start_character":3,"end_line":491,"end_character":25},"in_reply_to":"7f96bb07_545e4244","updated":"2018-01-17 19:01:55.000000000","message":"No, the initial patch was intended to support any changes that could reasonably be made without restarting the interface, including not only routes but also MTU, some IP changes, etc. As far as changing only static routes without restarting the interface, that would probably be a fairly small patch if we want to implement that. However, we don\u0027t currently re-run os-net-config on deployed nodes when we deploy new nodes. I worry that doing so might have unintended consequences when using exotic interface types such as SR-IOV or when using 3rd-party Neutron plugins.\n\nWith this in mind, I do think the supernet model provides better future-proofing, since nothing needs to change on deployed nodes to add nodes on new subnets. I would like to see some user interface improvements to make that easier, such as configuration of supernets within network_data.yaml, so less template customization would be required.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"------"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"**Problem #8: Isolated Networking in TripleO Heat Templates Needs to be"},{"line_number":509,"context_line":"Refactored**"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"The current isolated networking templates use parameters in nested stacks to"},{"line_number":512,"context_line":"define the IP information for each nework. There is no room in the current"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_2f147f43","line":509,"range":{"start_line":508,"start_character":0,"end_line":509,"end_character":12},"updated":"2018-01-17 10:53:06.000000000","message":"I think composable networks implementation address this.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"9e213b6a91ab498fc3d9a9eac378c2e1f63d86a6","unresolved":false,"context_lines":[{"line_number":505,"context_line":""},{"line_number":506,"context_line":"------"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"**Problem #8: Isolated Networking in TripleO Heat Templates Needs to be"},{"line_number":509,"context_line":"Refactored**"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"The current isolated networking templates use parameters in nested stacks to"},{"line_number":512,"context_line":"define the IP information for each nework. There is no room in the current"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_009b8265","line":509,"range":{"start_line":508,"start_character":0,"end_line":509,"end_character":12},"in_reply_to":"7f96bb07_2f147f43","updated":"2018-01-17 19:01:55.000000000","message":"Agreed.","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":580,"context_line":"In order to provide spine-and-leaf networking for deployments, several changes"},{"line_number":581,"context_line":"will have to be made to TripleO:"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"1. Support for DHCP relay in Ironic and Neutron DHCP servers."},{"line_number":584,"context_line":"2. Refactoring of TripleO Heat Templates network isolation to support multiple"},{"line_number":585,"context_line":"   subnets per isolated network, as well as per-subnet and supernet routes."},{"line_number":586,"context_line":"3. Changes to Infra CI to support testing."}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_af63af41","line":583,"range":{"start_line":583,"start_character":3,"end_line":583,"end_character":61},"updated":"2018-01-17 10:53:06.000000000","message":"Neutron support is there, since https://review.openstack.org/#/c/468744/.\nIronic patches in review:\nhttps://review.openstack.org/#/q/project:openstack/networking-baremetal+committer:hjensas%2540redhat.com","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"16ee3288d798c37400ed8b3c214b53c460837ee6","unresolved":false,"context_lines":[{"line_number":581,"context_line":"will have to be made to TripleO:"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"1. Support for DHCP relay in Ironic and Neutron DHCP servers."},{"line_number":584,"context_line":"2. Refactoring of TripleO Heat Templates network isolation to support multiple"},{"line_number":585,"context_line":"   subnets per isolated network, as well as per-subnet and supernet routes."},{"line_number":586,"context_line":"3. Changes to Infra CI to support testing."},{"line_number":587,"context_line":"4. Documentation updates."},{"line_number":588,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"7f96bb07_4f878bb6","line":585,"range":{"start_line":584,"start_character":0,"end_line":585,"end_character":75},"updated":"2018-01-17 10:53:06.000000000","message":"Mostly complete with composable networks.\nThis THT patch on review: https://review.openstack.org/#/c/473817/","commit_id":"1d52834fb9a4d5fc5063727596bca108fb9dccd0"}]}
