aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliyingjun <yingjun.li@kylin-cloud.com>2016-08-08 09:17:10 +0800
committerliyingjun <yingjun.li@kylin-cloud.com>2016-08-31 16:31:07 +0800
commitc5668bd50aa6f2fa885be45a28c04648a1f6a53e (patch)
treed5da199c58c3802a36bc73a205afa0fc7ecb3dff
parentcb32b2b8d9c9aaae2ce08a58ebce37f7cad8224e (diff)
downloadkolla-c5668bd50aa6f2fa885be45a28c04648a1f6a53e.tar.gz
kolla-c5668bd50aa6f2fa885be45a28c04648a1f6a53e.zip
Add option to support dhcp/l3 agent ha
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. Implement blueprint: support-network-ha Change-Id: Id4742aa67c80584634b923195545bf2b654172f3
-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 d6e25ad77..d925d9876 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -231,6 +231,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 e6d37bd0e..abd3f5e5d 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -132,6 +132,7 @@ neutron_external_interface: "eth1"
#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.