From c5668bd50aa6f2fa885be45a28c04648a1f6a53e Mon Sep 17 00:00:00 2001 From: liyingjun Date: Mon, 8 Aug 2016 09:17:10 +0800 Subject: [PATCH] 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 --- ansible/group_vars/all.yml | 1 + ansible/roles/neutron/defaults/main.yml | 4 ++++ ansible/roles/neutron/templates/neutron.conf.j2 | 7 +++++++ ansible/roles/prechecks/tasks/service_checks.yml | 8 ++++++++ etc/kolla/globals.yml | 1 + .../notes/bp-support-network-ha-1a771d735a268219.yaml | 5 +++++ 6 files changed, 26 insertions(+) create mode 100644 releasenotes/notes/bp-support-network-ha-1a771d735a268219.yaml diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index d6e25ad773..d925d98760 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 80c6ed43ea..21ef9a49f9 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 16f0b8b315..fe8ed1029b 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 b275fd4c2d..1faa83185f 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 e6d37bd0e2..abd3f5e5d0 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 0000000000..0e73f5d303 --- /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.