aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/group_vars/all.yml1
-rw-r--r--ansible/roles/neutron/defaults/main.yml4
-rw-r--r--ansible/roles/neutron/templates/neutron.conf.j27
-rw-r--r--ansible/roles/prechecks/tasks/service_checks.yml8
-rw-r--r--etc/kolla/globals.yml1
-rw-r--r--releasenotes/notes/bp-support-network-ha-1a771d735a268219.yaml5
6 files changed, 26 insertions, 0 deletions
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index eb588fac2..449cf0e2c 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -236,6 +236,7 @@ enable_multipathd: "no"
enable_murano: "no"
enable_neutron_lbaas: "no"
enable_neutron_qos: "no"
+enable_neutron_agent_ha: "no"
enable_swift: "no"
enable_tempest: "no"
enable_watcher: "no"
diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml
index 80c6ed43e..21ef9a49f 100644
--- a/ansible/roles/neutron/defaults/main.yml
+++ b/ansible/roles/neutron/defaults/main.yml
@@ -52,6 +52,10 @@ openvswitch_vswitchd_image_full: "{{ openvswitch_vswitchd_image }}:{{ openvswitc
####################
# OpenStack
####################
+dhcp_agents_per_network: 2
+min_l3_agents_per_router: 2
+max_l3_agents_per_router: 3
+
neutron_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ neutron_server_port }}"
neutron_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ neutron_server_port }}"
neutron_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ neutron_server_port }}"
diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2
index 16f0b8b31..fe8ed1029 100644
--- a/ansible/roles/neutron/templates/neutron.conf.j2
+++ b/ansible/roles/neutron/templates/neutron.conf.j2
@@ -37,6 +37,13 @@ allow_overlapping_ips = true
core_plugin = ml2
service_plugins = router{% if enable_neutron_lbaas | bool %},neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2{% endif %}{% if enable_neutron_qos | bool %},qos{% endif %}
+{% if enable_neutron_agent_ha | bool %}
+dhcp_agents_per_network = {{ dhcp_agents_per_network }}
+l3_ha = true
+max_l3_agents_per_router = {{ max_l3_agents_per_router }}
+min_l3_agents_per_router = {{ min_l3_agents_per_router }}
+{% endif %}
+
{% if enable_neutron_lbaas | bool %}
[service_providers]
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
diff --git a/ansible/roles/prechecks/tasks/service_checks.yml b/ansible/roles/prechecks/tasks/service_checks.yml
index b275fd4c2..1faa83185 100644
--- a/ansible/roles/prechecks/tasks/service_checks.yml
+++ b/ansible/roles/prechecks/tasks/service_checks.yml
@@ -48,3 +48,11 @@
register: result
changed_when: false
failed_when: result.stdout | regex_replace('(60|120|180|240|300|360|600|720|900|1200|1800|3600|7200|10800|14400|21600|28800|43200|86400|604800)', '') | search(".+")
+
+- name: Checking number of network agents
+ local_action: fail msg="Number of network agents are less than two when enabling agent ha"
+ changed_when: false
+ when:
+ - enable_neutron_agent_ha | bool
+ - groups['neutron-dhcp-agent'] | length < 2
+ or groups['neutron-l3-agent'] | length < 2
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index e0de59849..e3776775e 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -138,6 +138,7 @@ kolla_internal_vip_address: "10.10.10.254"
#enable_multipathd: "no"
#enable_neutron_lbaas: "no"
#enable_neutron_qos: "no"
+#enable_neutron_agent_ha: "no"
#enable_swift: "no"
#enable_tempest: "no"
#enable_watcher: "no"
diff --git a/releasenotes/notes/bp-support-network-ha-1a771d735a268219.yaml b/releasenotes/notes/bp-support-network-ha-1a771d735a268219.yaml
new file mode 100644
index 000000000..0e73f5d30
--- /dev/null
+++ b/releasenotes/notes/bp-support-network-ha-1a771d735a268219.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - New option enable_neutron_agent_ha added to enable/disable dhcp/l3 agent
+ high availability, dhcp_agents_per_network is default to 2 and it's
+ configurable for user.