)]}'
{"migration/README.rst":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e3a3ac296aa780d9f3d791f55b754f18a5e1ddb5","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"2. Run the playbook::"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"   $ ansible-playbook migrate-to-ovn.yml -f 10 -i hosts"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Testing Status:"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f0e0f27_b6a88177","line":20,"range":{"start_line":20,"start_character":41,"end_line":20,"end_character":46},"updated":"2017-06-09 14:04:36.000000000","message":"nit: Let\u0027s use the long \"--forks\" parameter here so people know what it does.\n\nAlternatively, we can get rid of this option for this example command and just use the default number of forks.","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4bc7d89d94f4f21d0d87b92431f3352bb2169d5e","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"2. Run the playbook::"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"   $ ansible-playbook migrate-to-ovn.yml -f 10 -i hosts"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Testing Status:"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f231b9d_dee1a000","line":20,"range":{"start_line":20,"start_character":41,"end_line":20,"end_character":46},"in_reply_to":"9f0e0f27_b6a88177","updated":"2017-06-12 19:58:21.000000000","message":"Removing it sounds good.  I\u0027ll just add it as a note in the \"Testing status\" section.  The important bit was that we used a \"--forks\" value large enough to have all hosts running in parallel.","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7679e1d30de013f3abd0f22e9855d04c82c6a8eb","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  the updated MTU value through DHCP before the migration can take"},{"line_number":38,"context_line":"  place.  For testing purposes, we\u0027ve just hacked the Neutron code"},{"line_number":39,"context_line":"  to indicate that the VXLAN overhead was 38 bytes instead of 30,"},{"line_number":40,"context_line":"  bypassing the issue at migration time."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f231b9d_7e2e0ca6","line":40,"updated":"2017-06-12 20:06:12.000000000","message":"In addition to the VXLAN overhead there is the lower-layer overhead - 20 for IPv4, 40 for IPv6.  Neutron will typically inform VMs the mtu is 1450 (v4) or 1430 (v6) depending on what \u0027local_ip\u0027 is set to in ml2_conf.ini","commit_id":"e5fb48caf5e33ab037c377c0b2db4e3562557331"}],"migration/hosts-sample":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e3a3ac296aa780d9f3d791f55b754f18a5e1ddb5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All controller nodes running OpenStack control services, particularly"},{"line_number":2,"context_line":"# neutron-api.  Also indicate which controller you\u0027d like to have run"},{"line_number":3,"context_line":"# the OVN central control services."},{"line_number":4,"context_line":"[controller]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9f0e0f27_569ec507","line":1,"updated":"2017-06-09 14:04:36.000000000","message":"nit: we probably should name this file hosts.sample (instead of having a dash).\n\nJust to conform with all other sample files we have:\n\n./devstack/vtep-local.conf.sample\n./devstack/computenode-local.conf.sample\n./devstack/db-local.conf.sample\n./devstack/local.conf.sample","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4bc7d89d94f4f21d0d87b92431f3352bb2169d5e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All controller nodes running OpenStack control services, particularly"},{"line_number":2,"context_line":"# neutron-api.  Also indicate which controller you\u0027d like to have run"},{"line_number":3,"context_line":"# the OVN central control services."},{"line_number":4,"context_line":"[controller]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7f231b9d_be94a445","line":1,"in_reply_to":"9f0e0f27_569ec507","updated":"2017-06-12 19:58:21.000000000","message":"sounds good to me","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"}],"migration/migrate-to-ovn.yml":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"7d13fe18e68c0fe6e105ead7ca8c2086bdab1054","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Migrate a Neutron deployment using ML2/OVS to OVN."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# See hosts-sample for expected contents of the ansible inventory."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1a430d35_7aa8d7db","line":1,"updated":"2017-02-08 06:12:25.000000000","message":"Can this script also set \u0027force_config_drive \u003d true\u0027 in nova.conf ?","commit_id":"77e38f730304948195030e21afe34346e80c2a42"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"8ca9cd4c1d63b8992e9f1d5757f4112f48653af2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Migrate a Neutron deployment using ML2/OVS to OVN."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# See hosts-sample for expected contents of the ansible inventory."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"fa31d9ce_2257c958","line":1,"in_reply_to":"1a430d35_7aa8d7db","updated":"2017-02-16 06:47:44.000000000","message":"Ah yes, good idea.  I\u0027ll add that.","commit_id":"77e38f730304948195030e21afe34346e80c2a42"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e3a3ac296aa780d9f3d791f55b754f18a5e1ddb5","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  - name: Open OVN database ports."},{"line_number":66,"context_line":"    command: \"iptables -I INPUT 10 -m state --state NEW -p tcp --dport {{ item }} -j ACCEPT\""},{"line_number":67,"context_line":"    with_items: [ 6641, 6642 ]"},{"line_number":68,"context_line":"  - name: Persist our iptables changes after a reboot"},{"line_number":69,"context_line":"    shell: iptables-save \u003e /etc/sysconfig/iptables.save"},{"line_number":70,"context_line":"  # TODO Integrate HA support for the OVN control services."},{"line_number":71,"context_line":"  - name: Start ovn-northd and the OVN databases."},{"line_number":72,"context_line":"    when: ovn_central is defined"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f0e0f27_b9fe32ac","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":55},"updated":"2017-06-09 14:04:36.000000000","message":"I see we have the same block of code at L37,38. Maybe we can just declare it once and reuse it ?\n\n(Pardon my ansible-fu, it\u0027s pretty low)","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4bc7d89d94f4f21d0d87b92431f3352bb2169d5e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  - name: Open OVN database ports."},{"line_number":66,"context_line":"    command: \"iptables -I INPUT 10 -m state --state NEW -p tcp --dport {{ item }} -j ACCEPT\""},{"line_number":67,"context_line":"    with_items: [ 6641, 6642 ]"},{"line_number":68,"context_line":"  - name: Persist our iptables changes after a reboot"},{"line_number":69,"context_line":"    shell: iptables-save \u003e /etc/sysconfig/iptables.save"},{"line_number":70,"context_line":"  # TODO Integrate HA support for the OVN control services."},{"line_number":71,"context_line":"  - name: Start ovn-northd and the OVN databases."},{"line_number":72,"context_line":"    when: ovn_central is defined"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7f231b9d_1e7ef8e3","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":55},"in_reply_to":"9f0e0f27_b9fe32ac","updated":"2017-06-12 19:58:21.000000000","message":"My ansible-fu is also quite low.\n\nI know this could be refactored using Ansible roles, but I was hoping to put that off to a later stage since this was just a start (a POC).","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e3a3ac296aa780d9f3d791f55b754f18a5e1ddb5","unresolved":false,"context_lines":[{"line_number":150,"context_line":"      state: started"},{"line_number":151,"context_line":"      enabled: yes"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"- hosts: controller"},{"line_number":154,"context_line":"  remote_user: \"{{ remote_user }}\""},{"line_number":155,"context_line":"  become: true"},{"line_number":156,"context_line":"  tasks:"},{"line_number":157,"context_line":"  # TODO The sync util scheduling gateway routers depends on this patch:"},{"line_number":158,"context_line":"  # https://review.openstack.org/#/c/427020/"},{"line_number":159,"context_line":"  # If the patch is not merged, this command is harmless, but the gateway"},{"line_number":160,"context_line":"  # routers won\u0027t get scheduled until later when neutron-server starts."},{"line_number":161,"context_line":"  - name: Schedule gateway routers by running the sync util."},{"line_number":162,"context_line":"    when: ovn_central is defined"},{"line_number":163,"context_line":"    command: neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- hosts: overcloud"},{"line_number":166,"context_line":"  remote_user: \"{{ remote_user }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f0e0f27_798e5a2f","line":163,"range":{"start_line":153,"start_character":0,"end_line":163,"end_character":129},"updated":"2017-06-09 14:04:36.000000000","message":"This whole block seems to be (essentially, diff \"-name\") the same as the L111-117, do we need to run the db-sync twice on the ovn_central controller ?\n\nEven so, maybe we can declare it only once and just reuse it ?","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4bc7d89d94f4f21d0d87b92431f3352bb2169d5e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"      state: started"},{"line_number":151,"context_line":"      enabled: yes"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"- hosts: controller"},{"line_number":154,"context_line":"  remote_user: \"{{ remote_user }}\""},{"line_number":155,"context_line":"  become: true"},{"line_number":156,"context_line":"  tasks:"},{"line_number":157,"context_line":"  # TODO The sync util scheduling gateway routers depends on this patch:"},{"line_number":158,"context_line":"  # https://review.openstack.org/#/c/427020/"},{"line_number":159,"context_line":"  # If the patch is not merged, this command is harmless, but the gateway"},{"line_number":160,"context_line":"  # routers won\u0027t get scheduled until later when neutron-server starts."},{"line_number":161,"context_line":"  - name: Schedule gateway routers by running the sync util."},{"line_number":162,"context_line":"    when: ovn_central is defined"},{"line_number":163,"context_line":"    command: neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- hosts: overcloud"},{"line_number":166,"context_line":"  remote_user: \"{{ remote_user }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7f231b9d_ded520bb","line":163,"range":{"start_line":153,"start_character":0,"end_line":163,"end_character":129},"in_reply_to":"9f0e0f27_798e5a2f","updated":"2017-06-12 19:58:21.000000000","message":"Based on the comment, it sounds like running it a second time after neutron-server starts was required.  It\u0027s not clear if it\u0027s still needed or not.  It would probably require testing.\n\nagree on the re-use bit ... as mentioned before, I think this could be improved with roles if we move beyond this as a POC","commit_id":"7797a1de07980fae0b7c074c6aa702ebcf5258c5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"81207d7c2db75b4b2750338b5018f7f8d78b8d16","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    ini_file:"},{"line_number":43,"context_line":"      dest: /etc/nova/nova.conf"},{"line_number":44,"context_line":"      section: DEFAULT"},{"line_number":45,"context_line":"      option: force_config_drive"},{"line_number":46,"context_line":"      value: true"},{"line_number":47,"context_line":"  - name: Restart nova-compute service to reflect force_config_drive value."},{"line_number":48,"context_line":"    systemd:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f1d235d_6243a66d","line":45,"updated":"2017-07-05 12:15:27.000000000","message":"could this be a degradation for existing instances that pull information from the metadata service?","commit_id":"e5fb48caf5e33ab037c377c0b2db4e3562557331"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"d61818bf1ea73eb2cdf23262a59c2e5c316fb013","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    ini_file:"},{"line_number":43,"context_line":"      dest: /etc/nova/nova.conf"},{"line_number":44,"context_line":"      section: DEFAULT"},{"line_number":45,"context_line":"      option: force_config_drive"},{"line_number":46,"context_line":"      value: true"},{"line_number":47,"context_line":"  - name: Restart nova-compute service to reflect force_config_drive value."},{"line_number":48,"context_line":"    systemd:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f1d235d_7f084327","line":45,"in_reply_to":"3f1d235d_6243a66d","updated":"2017-07-10 20:38:17.000000000","message":"Yes, good point.  We\u0027ll have to remove this and add starting the metadata agent once those patches merge.","commit_id":"e5fb48caf5e33ab037c377c0b2db4e3562557331"}]}
