diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one index 5b8ee842f5aff0d8197d60e7e01bb71f17438701..16d04f6798794305338f65fcff2b52e44a666a36 100644 --- a/ansible/inventory/all-in-one +++ b/ansible/inventory/all-in-one @@ -6,9 +6,19 @@ localhost ansible_connection=local [network] localhost ansible_connection=local -[compute] +# inner-compute is the groups of compute nodes which do not have +# external reachability +[inner-compute] + +# external-compute is the groups of compute nodes which can reach +# outside +[external-compute] localhost ansible_connection=local +[compute:children] +inner-compute +external-compute + [storage] localhost ansible_connection=local diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode index 19674ff2257de69677854f50e316da65cc026446..9dd45d6bc74c1ae5a4c4383fe0169ad335e375c1 100644 --- a/ansible/inventory/multinode +++ b/ansible/inventory/multinode @@ -15,9 +15,19 @@ control03 network01 network02 -[compute] +# inner-compute is the groups of compute nodes which do not have +# external reachability +[inner-compute] + +# external-compute is the groups of compute nodes which can reach +# outside +[external-compute] compute01 +[compute:children] +inner-compute +external-compute + [monitoring] monitoring01 diff --git a/ansible/roles/neutron/templates/l3_agent.ini.j2 b/ansible/roles/neutron/templates/l3_agent.ini.j2 index 99282dee7bb429bd829e8877d3cbf8575c00701b..6d99f2f0eee1ff42ca3991730fd8c0bb0acef466 100644 --- a/ansible/roles/neutron/templates/l3_agent.ini.j2 +++ b/ansible/roles/neutron/templates/l3_agent.ini.j2 @@ -3,8 +3,10 @@ {% if enable_neutron_dvr | bool %} {% if inventory_hostname in groups['network'] %} agent_mode = dvr_snat -{% elif inventory_hostname in groups['compute'] %} +{% elif inventory_hostname in groups['external-compute'] %} agent_mode = dvr +{% elif inventory_hostname in groups['inner-compute'] %} +agent_mode = dvr_no_external {% endif %} {% else %} agent_mode = legacy diff --git a/releasenotes/notes/add-neutron-dvr-no-external-0a8e0f2d967cf078.yaml b/releasenotes/notes/add-neutron-dvr-no-external-0a8e0f2d967cf078.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2d96c31b9642ff36887f5f19c2b2395bf0802612 --- /dev/null +++ b/releasenotes/notes/add-neutron-dvr-no-external-0a8e0f2d967cf078.yaml @@ -0,0 +1,6 @@ +--- +features: + - Add dvr_no_external l3 dvr agent mode. + Introduce inner-compute and external-compute nodes group in inventory + file to distinguish compute nodes which do not have external reachability + from compute nodes which can reach outside.