aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INFO2
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/kargo/tasks/main.yml6
-rw-r--r--deploy/adapters/ansible/kubernetes/roles/kargo/vars/main.yml2
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml7
-rw-r--r--deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt6
-rwxr-xr-xdeploy/adapters/ansible/roles/config-osa/tasks/main.yml18
-rwxr-xr-xdeploy/adapters/ansible/roles/post-osa/tasks/Ubuntu.yml23
-rw-r--r--deploy/adapters/ansible/roles/post-osa/tasks/main.yml20
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml16
-rw-r--r--deploy/adapters/ansible/roles/storage/tasks/ceph.yml7
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/main.yml66
-rwxr-xr-xdeploy/adapters/ansible/roles/storage/tasks/storage.yml68
-rw-r--r--deploy/conf/cluster.conf4
-rw-r--r--deploy/conf/hardware_environment/huawei-pod1/network_dpdk.yml132
-rw-r--r--deploy/conf/hardware_environment/huawei-pod1/os-nosdn-ovs_dpdk-ha.yml1
-rw-r--r--deploy/conf/hardware_environment/huawei-pod2/network_dpdk.yml132
-rw-r--r--deploy/conf/hardware_environment/huawei-pod2/os-nosdn-ovs_dpdk-ha.yml5
-rw-r--r--plugins/dpdk/roles/config-dpdk/files/openvswitch-switch.service17
-rw-r--r--plugins/dpdk/roles/config-dpdk/handlers/main.yml28
-rw-r--r--plugins/dpdk/roles/config-dpdk/tasks/compute.yml82
-rw-r--r--plugins/dpdk/roles/config-dpdk/tasks/config-dpdk.yml16
-rw-r--r--plugins/dpdk/roles/config-dpdk/tasks/main.yml11
-rw-r--r--plugins/dpdk/roles/config-dpdk/tasks/neutron_agent.yml15
-rw-r--r--plugins/dpdk/roles/config-dpdk/vars/Ubuntu.yml14
-rw-r--r--plugins/dpdk/roles/config-dpdk/vars/main.yml10
-rw-r--r--plugins/dpdk/roles/ins_dpdk/vars/main.yml2
-rw-r--r--plugins/dpdk/roles/ins_ovs/tasks/ovs.yml12
-rw-r--r--plugins/dpdk/roles/ins_ovs/templates/start_ovs_vswitchd.sh.j24
-rw-r--r--plugins/dpdk/roles/ins_ovs/templates/start_ovsdb_server.sh.j24
29 files changed, 625 insertions, 105 deletions
diff --git a/INFO b/INFO
index 3bca70c2..d30db1d9 100644
--- a/INFO
+++ b/INFO
@@ -15,6 +15,8 @@ Prakash Ramchandran (Prakash.Ramchandran@huawei.com)
Justin chi (chigang@huawei.com)
Chenshuai (chenshuai@huawei.com)
Ashlee Young (ashlee@yunify.com)
+Yifei Xue (xueyifei@huawei.com)
+Xinhui Hu (xinhui_hu@foxmail.com)
Link to TSC approval: http://ircbot.wl.linuxfoundation.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-21-14.02.html
diff --git a/deploy/adapters/ansible/kubernetes/roles/kargo/tasks/main.yml b/deploy/adapters/ansible/kubernetes/roles/kargo/tasks/main.yml
index d3dcb878..16d0b2c0 100644
--- a/deploy/adapters/ansible/kubernetes/roles/kargo/tasks/main.yml
+++ b/deploy/adapters/ansible/kubernetes/roles/kargo/tasks/main.yml
@@ -83,6 +83,12 @@
tags:
- ansible
+- name: enable helm
+ lineinfile:
+ dest: /opt/kargo_k8s/inventory/group_vars/k8s-cluster.yml
+ regexp: '^helm_enabled:'
+ line: 'helm_enabled: {{ helm_flag }}'
+
- name: run kargo playbook
shell: |
cd /opt/kargo_k8s
diff --git a/deploy/adapters/ansible/kubernetes/roles/kargo/vars/main.yml b/deploy/adapters/ansible/kubernetes/roles/kargo/vars/main.yml
new file mode 100644
index 00000000..2d396d06
--- /dev/null
+++ b/deploy/adapters/ansible/kubernetes/roles/kargo/vars/main.yml
@@ -0,0 +1,2 @@
+---
+helm_flag: true
diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
index 2e4afc09..ef7128c5 100644
--- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
+++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
@@ -46,6 +46,13 @@
roles:
- post-osa
+- hosts:
+ - neutron_openvswitch_agent
+ - compute
+ remote_user: root
+ roles:
+ - config-dpdk
+
- hosts: neutron_openvswitch_agent
remote_user: root
roles:
diff --git a/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt b/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt
index 56067a6c..c850b564 100644
--- a/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt
+++ b/deploy/adapters/ansible/roles/config-osa/files/requirements_absolute_requirements.txt
@@ -61,6 +61,7 @@ gnocchiclient==3.0.0
google_api_python_client==1.6.1
greenlet==0.4.11
heat==8.0.2.dev4
+heat_translator==0.7.0
horizon==11.0.2.dev21
httplib2==0.9.2
idna==2.2
@@ -102,6 +103,7 @@ ndg_httpsclient==0.4.2
netaddr==0.7.19
netifaces==0.10.5
networking_calico==1.3.2.dev3
+networking_sfc==4.0.0
networkx==1.11
neutron==10.0.2.dev45
neutron_dynamic_routing==10.0.1.dev8
@@ -137,6 +139,7 @@ oslo.reports==1.17.0
oslo.rootwrap==5.4.0
oslo.serialization==2.16.0
oslo.service==1.19.0
+oslosphinx==4.10.0
oslo.utils==3.22.0
oslo.versionedobjects==1.21.0
oslo.vmware==2.17.0
@@ -210,6 +213,7 @@ python_saharaclient==1.1.0
python_senlinclient==1.2.0
python_subunit==1.2.0
python_swiftclient==3.3.0
+python_tackerclient==0.9.0
python_troveclient==2.8.0
python_watcherclient==1.0.0
python_zaqarclient==1.4.0
@@ -251,6 +255,7 @@ sqlparse==0.2.2
statsd==3.2.1
stevedore==1.20.0
suds_jurko==0.6
+tacker==0.7.1.dev7
taskflow==2.9.0
tempest==14.0.1.dev142
tempita==0.5.2
@@ -259,6 +264,7 @@ testrepository==0.0.20
testtools==2.2.0
tinyrpc==0.5
tooz==1.48.0
+tosca_parser==0.7.0
traceback2==1.4.0
trollius==2.1
trove_dashboard==8.0.1.dev1
diff --git a/deploy/adapters/ansible/roles/config-osa/tasks/main.yml b/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
index d2ce5c38..d96a83da 100755
--- a/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/config-osa/tasks/main.yml
@@ -235,24 +235,30 @@
src: user_ceph.yml
dest: /etc/openstack_deploy/user_ceph.yml
when:
- - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
- - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
- name: render ceph.yml.j2
template:
src: ceph.yml.j2
dest: /etc/openstack_deploy/conf.d/ceph.yml
when:
- - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
- - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
- name: render user_variables_ceph.yml.j2
template:
src: user_variables_ceph.yml.j2
dest: /etc/openstack_deploy/user_variables_ceph.yml
when:
- - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
- - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
- name: adapt no ha scenario
include: noha.yml
diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/Ubuntu.yml b/deploy/adapters/ansible/roles/post-osa/tasks/Ubuntu.yml
new file mode 100755
index 00000000..5d53d234
--- /dev/null
+++ b/deploy/adapters/ansible/roles/post-osa/tasks/Ubuntu.yml
@@ -0,0 +1,23 @@
+---
+- name: remove bridge ubuntu
+ template:
+ src: compute.j2
+ dest: /etc/network/interfaces
+ notify:
+ - restart network service
+
+- name: fix mapping in compute
+ shell: |
+ {% set compute_mappings = [] %}
+ {% for key, value in compu_prv_mappings.iteritems() %}
+ {% set mapping = key + ":" + value["bridge"] %}
+ {% set _ = compute_mappings.append(mapping) %}
+ {% endfor %}
+ {% if compute_mappings | length != 0 %}
+ sed -i "s/^\(bridge_mappings\).*/\1 = {{ ','.join(compute_mappings) }}/g" \
+ /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ {% else %}
+ sed -i "/bridge_mappings/d" /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ {% endif %}
+
+- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/main.yml b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
index cf157d74..c48a5d1a 100644
--- a/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
@@ -1,12 +1,10 @@
+#############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
---
-- name: remove bridge ubuntu
- template:
- src: compute.j2
- dest: /etc/network/interfaces
- notify:
- - restart network service
- when: ansible_distribution == 'Ubuntu'
-
-# TODO
-# - name: remove bridge centos
-# when: ansible_distribution == 'CentOS'
+- include: "{{ ansible_distribution }}.yml"
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
index 62edd34b..b7a8fbcb 100644
--- a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
@@ -22,22 +22,6 @@
notify:
- restart neutron-openvswitch-agent
-- name: fix mapping in compute
- shell: |
- {% set compute_mappings = [] %}
- {% for key, value in compu_prv_mappings.iteritems() %}
- {% set mapping = key + ":" + value["bridge"] %}
- {% set _ = compute_mappings.append(mapping) %}
- {% endfor %}
- {% if compute_mappings | length != 0 %}
- sed -i "s/^\(bridge_mappings\).*/\1 = {{ ','.join(compute_mappings) }}/g" \
- /etc/neutron/plugins/ml2/openvswitch_agent.ini
- {% else %}
- sed -i "/bridge_mappings/d" /etc/neutron/plugins/ml2/openvswitch_agent.ini
- {% endif %}
- notify:
- - restart neutron-openvswitch-agent
-
- name: create compute bridges
openvswitch_bridge:
bridge: "{{ item['name'] }}"
diff --git a/deploy/adapters/ansible/roles/storage/tasks/ceph.yml b/deploy/adapters/ansible/roles/storage/tasks/ceph.yml
index e024c671..50476c7b 100644
--- a/deploy/adapters/ansible/roles/storage/tasks/ceph.yml
+++ b/deploy/adapters/ansible/roles/storage/tasks/ceph.yml
@@ -43,3 +43,10 @@
line: "losetup -f /var/{{ item }}.img"
insertbefore: "{{ rc_local_insert_before }}"
with_items: "{{ ceph_osd_images }}"
+
+- name: Create ceph partitions at boot time
+ lineinfile:
+ dest: "{{ rc_local }}"
+ line: "partprobe -s {{ item }}"
+ insertbefore: "{{ rc_local_insert_before }}"
+ with_items: "{{ ceph_loopback.results | map(attribute='stdout') | list }}"
diff --git a/deploy/adapters/ansible/roles/storage/tasks/main.yml b/deploy/adapters/ansible/roles/storage/tasks/main.yml
index 3d9635cc..e04019ae 100755
--- a/deploy/adapters/ansible/roles/storage/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/storage/tasks/main.yml
@@ -7,69 +7,21 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
---
-- name: check if physical device exists
- stat: path={{ physical_device }}
- register: status
- tags:
- - storage
-
-- name: load loop.yml
- include: loop.yml
- when: status.stat.exists == False or status.stat.isblk == False
- tags:
- - storage
-
-- name: load real.yml
- include: real.yml
- when: status.stat.exists == True and status.stat.isblk == True
- tags:
- - storage
-
-- name: make setup_storage directory
- file: path=/opt/setup_storage state=directory mode=0755
- tags:
- - storage
-
-- name: copy setup storage scripts
- copy: src={{ item }} dest=/opt/setup_storage mode=0755
- with_items:
- - losetup.sh
- tags:
- - storage
-
-- name: set autostart file
- copy: src=storage dest=/etc/init.d/storage mode=0755
- tags:
- - storage
-
-- name: set autostart file for centos
- copy:
- src: storage.service
- dest: /usr/lib/systemd/system/storage.service
- mode: 0755
- when: ansible_os_family == "RedHat"
- tags:
- - storage
-
-- name: add to boot scripts
- shell: update-rc.d storage defaults
- when: ansible_os_family == "Debian"
- tags:
- - storage
-
-- name: add to boot scripts
- shell: |
- chkconfig --add storage;
- chkconfig --level 2345 storage on;
- when: ansible_os_family == 'RedHat'
+- name: load storage.yml
+ include: storage.yml
+ when:
+ - hostvars[inventory_hostname]['groups']['ceph_mon'] is not defined
+ - hostvars[inventory_hostname]['groups']['ceph_osd'] is not defined
tags:
- storage
- name: load ceph.yml
include: ceph.yml
when:
- - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] |length > 0 }}"
- - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+ - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+ "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
tags:
- storage
diff --git a/deploy/adapters/ansible/roles/storage/tasks/storage.yml b/deploy/adapters/ansible/roles/storage/tasks/storage.yml
new file mode 100755
index 00000000..b054be9e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/storage/tasks/storage.yml
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: check if physical device exists
+ stat: path={{ physical_device }}
+ register: status
+ tags:
+ - storage
+
+- name: load loop.yml
+ include: loop.yml
+ when: status.stat.exists == False or status.stat.isblk == False
+ tags:
+ - storage
+
+- name: load real.yml
+ include: real.yml
+ when: status.stat.exists == True and status.stat.isblk == True
+ tags:
+ - storage
+
+- name: make setup_storage directory
+ file: path=/opt/setup_storage state=directory mode=0755
+ tags:
+ - storage
+
+- name: copy setup storage scripts
+ copy: src={{ item }} dest=/opt/setup_storage mode=0755
+ with_items:
+ - losetup.sh
+ tags:
+ - storage
+
+- name: set autostart file
+ copy: src=storage dest=/etc/init.d/storage mode=0755
+ tags:
+ - storage
+
+- name: set autostart file for centos
+ copy:
+ src: storage.service
+ dest: /usr/lib/systemd/system/storage.service
+ mode: 0755
+ when: ansible_os_family == "RedHat"
+ tags:
+ - storage
+
+- name: add to boot scripts
+ shell: update-rc.d storage defaults
+ when: ansible_os_family == "Debian"
+ tags:
+ - storage
+
+- name: add to boot scripts
+ shell: |
+ chkconfig --add storage;
+ chkconfig --level 2345 storage on;
+ when: ansible_os_family == 'RedHat'
+ tags:
+ - storage
+
+- meta: flush_handlers
diff --git a/deploy/conf/cluster.conf b/deploy/conf/cluster.conf
index ddcbb6c3..c9e565ad 100644
--- a/deploy/conf/cluster.conf
+++ b/deploy/conf/cluster.conf
@@ -8,8 +8,8 @@ else
export ADAPTER_OS_PATTERN=${ADAPTER_OS_PATTERN:-'(?i)CentOS-7.*16.*'}
fi
-# newton
-export OPENSTACK_VERSION=${OPENSTACK_VERSION:-"newton"}
+# ocata
+export OPENSTACK_VERSION=${OPENSTACK_VERSION:-"ocata"}
# don't touch this
export ADAPTER_TARGET_SYSTEM_PATTERN="^openstack$"
diff --git a/deploy/conf/hardware_environment/huawei-pod1/network_dpdk.yml b/deploy/conf/hardware_environment/huawei-pod1/network_dpdk.yml
new file mode 100644
index 00000000..03483629
--- /dev/null
+++ b/deploy/conf/hardware_environment/huawei-pod1/network_dpdk.yml
@@ -0,0 +1,132 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+ - name: br-provider
+ network: physnet
+ interface: eth10
+ type: ovs
+ role:
+ - controller
+
+sys_intf_mappings:
+ - name: mgmt
+ interface: eth0
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ interface: eth2
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+
+ - name: tenant
+ interface: eth2
+ type: dpdk
+ vlan_tag: None
+ role:
+ - compute
+
+ - name: storage
+ interface: eth1
+ type: normal
+ vlan_tag: 102
+ role:
+ - controller
+ - compute
+
+ - name: external
+ interface: eth1
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ip_settings:
+ - name: mgmt
+ ip_ranges:
+ - - "10.1.0.50"
+ - "10.1.0.100"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
+ - - "172.16.1.1"
+ - "172.16.1.50"
+ cidr: "172.16.1.0/24"
+ role:
+ - controller
+ - compute
+
+ - name: storage
+ ip_ranges:
+ - - "172.16.2.1"
+ - "172.16.2.50"
+ cidr: "172.16.2.0/24"
+ role:
+ - controller
+ - compute
+
+ - name: external
+ ip_ranges:
+ - - "192.168.10.10"
+ - "192.168.10.50"
+ cidr: "192.168.10.0/24"
+ gw: "192.168.10.1"
+ role:
+ - controller
+ - compute
+
+internal_vip:
+ ip: 10.1.0.222
+ netmask: "24"
+ interface: mgmt
+
+public_vip:
+ ip: 192.168.10.222
+ netmask: "24"
+ interface: external
+
+onos_nic: eth2
+tenant_net_info:
+ type: vxlan
+ range: "1:1000"
+ provider_network: None
+
+public_net_info:
+ enable: "True"
+ network: ext-net
+ type: flat
+ segment_id: 1000
+ subnet: ext-subnet
+ provider_network: physnet
+ router: router-ext
+ enable_dhcp: "False"
+ no_gateway: "False"
+ external_gw: "192.168.10.1"
+ floating_ip_cidr: "192.168.10.0/24"
+ floating_ip_start: "192.168.10.100"
+ floating_ip_end: "192.168.10.200"
diff --git a/deploy/conf/hardware_environment/huawei-pod1/os-nosdn-ovs_dpdk-ha.yml b/deploy/conf/hardware_environment/huawei-pod1/os-nosdn-ovs_dpdk-ha.yml
index 34640ac1..5b9d1c09 100644
--- a/deploy/conf/hardware_environment/huawei-pod1/os-nosdn-ovs_dpdk-ha.yml
+++ b/deploy/conf/hardware_environment/huawei-pod1/os-nosdn-ovs_dpdk-ha.yml
@@ -23,6 +23,7 @@ hosts:
mac: 'F8:4A:BF:55:A2:8D'
interfaces:
- eth1: 'F8:4A:BF:55:A2:8E'
+ - eth1: 'F8:4A:BF:55:A2:8E'
ipmiIp: 172.16.130.26
ipmiPass: Opnfv@pod1
roles:
diff --git a/deploy/conf/hardware_environment/huawei-pod2/network_dpdk.yml b/deploy/conf/hardware_environment/huawei-pod2/network_dpdk.yml
new file mode 100644
index 00000000..b357a6e1
--- /dev/null
+++ b/deploy/conf/hardware_environment/huawei-pod2/network_dpdk.yml
@@ -0,0 +1,132 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+ - name: br-provider
+ network: physnet
+ interface: eth10
+ type: ovs
+ role:
+ - controller
+
+sys_intf_mappings:
+ - name: mgmt
+ interface: eth0
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ interface: eth2
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+
+ - name: tenant
+ interface: eth2
+ type: dpdk
+ vlan_tag: None
+ role:
+ - compute
+
+ - name: storage
+ interface: eth1
+ type: normal
+ vlan_tag: 102
+ role:
+ - controller
+ - compute
+
+ - name: external
+ interface: eth1
+ type: normal
+ vlan_tag: None
+ role:
+ - controller
+ - compute
+
+ip_settings:
+ - name: mgmt
+ ip_ranges:
+ - - "10.1.0.50"
+ - "10.1.0.100"
+ dhcp_ranges:
+ - - "10.1.0.2"
+ - "10.1.0.49"
+ cidr: "10.1.0.0/24"
+ gw: "10.1.0.1"
+ role:
+ - controller
+ - compute
+
+ - name: tenant
+ ip_ranges:
+ - - "172.16.1.1"
+ - "172.16.1.50"
+ cidr: "172.16.1.0/24"
+ role:
+ - controller
+ - compute
+
+ - name: storage
+ ip_ranges:
+ - - "172.16.2.1"
+ - "172.16.2.50"
+ cidr: "172.16.2.0/24"
+ role:
+ - controller
+ - compute
+
+ - name: external
+ ip_ranges:
+ - - "192.168.11.10"
+ - "192.168.11.50"
+ cidr: "192.168.11.0/24"
+ gw: "192.168.11.1"
+ role:
+ - controller
+ - compute
+
+internal_vip:
+ ip: 10.1.0.222
+ netmask: "24"
+ interface: mgmt
+
+public_vip:
+ ip: 192.168.11.222
+ netmask: "24"
+ interface: external
+
+onos_nic: eth2
+tenant_net_info:
+ type: vxlan
+ range: "1:1000"
+ provider_network: None
+
+public_net_info:
+ enable: "True"
+ network: ext-net
+ type: flat
+ segment_id: 1000
+ subnet: ext-subnet
+ provider_network: physnet
+ router: router-ext
+ enable_dhcp: "False"
+ no_gateway: "False"
+ external_gw: "192.168.11.1"
+ floating_ip_cidr: "192.168.11.0/24"
+ floating_ip_start: "192.168.11.100"
+ floating_ip_end: "192.168.11.200"
diff --git a/deploy/conf/hardware_environment/huawei-pod2/os-nosdn-ovs_dpdk-ha.yml b/deploy/conf/hardware_environment/huawei-pod2/os-nosdn-ovs_dpdk-ha.yml
index 85dd4570..3fdfe6b7 100644
--- a/deploy/conf/hardware_environment/huawei-pod2/os-nosdn-ovs_dpdk-ha.yml
+++ b/deploy/conf/hardware_environment/huawei-pod2/os-nosdn-ovs_dpdk-ha.yml
@@ -26,6 +26,7 @@ hosts:
ipmiIp: 172.16.130.20
interfaces:
- eth1: 'EC:38:8F:79:0C:2D'
+ - eth2: 'EC:38:8F:79:0C:2E'
roles:
- controller
- ha
@@ -39,6 +40,7 @@ hosts:
ipmiPass: Opnfv@pod2
interfaces:
- eth1: 'EC:38:8F:79:0C:49'
+ - eth2: 'EC:38:8F:79:0C:4A'
roles:
- controller
- ha
@@ -51,6 +53,7 @@ hosts:
ipmiPass: Opnfv@pod2
interfaces:
- eth1: 'EC:38:8F:79:10:CD'
+ - eth2: 'EC:38:8F:79:10:CE'
roles:
- controller
- ha
@@ -63,6 +66,7 @@ hosts:
ipmiPass: Opnfv@pod2
interfaces:
- eth1: 'EC:38:8F:79:0C:6D'
+ - eth2: 'EC:38:8F:79:0C:6E'
roles:
- compute
- ceph-osd
@@ -74,6 +78,7 @@ hosts:
ipmiPass: Opnfv@pod2
interfaces:
- eth1: 'EC:38:8F:7A:E6:EE'
+ - eth2: 'EC:38:8F:7A:E6:EF'
roles:
- compute
- ceph-osd
diff --git a/plugins/dpdk/roles/config-dpdk/files/openvswitch-switch.service b/plugins/dpdk/roles/config-dpdk/files/openvswitch-switch.service
new file mode 100644
index 00000000..cb46c341
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/files/openvswitch-switch.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=openvswitch-switch
+
+[Service]
+User=root
+Group=root
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/opt/start_ovs_vswitchd.sh
+
+TimeoutSec=120
+#Restart=on-failure
+#RestartSec=2
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/plugins/dpdk/roles/config-dpdk/handlers/main.yml b/plugins/dpdk/roles/config-dpdk/handlers/main.yml
new file mode 100644
index 00000000..b1a62327
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/handlers/main.yml
@@ -0,0 +1,28 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: service openvswitch restart
+ systemd:
+ name: "{{ item }}"
+ state: restarted
+ daemon_reload: "yes"
+ enabled: "yes"
+ with_items: "{{ openvswitch_service }}"
+
+- name: service libvirtd restart
+ service:
+ name: "{{ item }}"
+ state: restarted
+ with_items: "{{ libvirtd_service }}"
+
+- name: service neutron-openvswitch-agent restart
+ service:
+ name: "{{ item }}"
+ state: restarted
+ with_items: "{{ ovs_agent_service }}"
diff --git a/plugins/dpdk/roles/config-dpdk/tasks/compute.yml b/plugins/dpdk/roles/config-dpdk/tasks/compute.yml
new file mode 100644
index 00000000..b5285d79
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/tasks/compute.yml
@@ -0,0 +1,82 @@
+#############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: get dpdk interface device name
+ command: echo "{{ compu_sys_mappings['tenant']['interface'] }}"
+ register: dpdk_device_name
+
+- name: get dpdk interface ip
+ shell: >
+ ip a show "{{ dpdk_device_name.stdout }}" | grep -E "\<inet\>" |
+ awk '{print $2}'
+ register: dpdk_device_ip
+
+- debug:
+ msg: "{{ dpdk_device_ip.stdout }}"
+
+- name: get dpdk interface device pci
+ shell: >
+ {{ devbind_script }} -s | grep {{ dpdk_device_name.stdout }} |
+ awk '{print $1}'
+ register: dpdk_device_pci
+
+- name: switch dpdk interface driver
+ shell: "{{ switch_driver_script }}"
+ notify: service openvswitch restart
+
+- name: kill ovs process
+ shell: >
+ ps aux | grep ovs | grep -v grep | awk '{print $2}' | xargs kill -9 |
+ true
+ notify: service openvswitch restart
+
+- name: copy service file
+ copy:
+ src: openvswitch-switch.service
+ dest: /lib/systemd/system/openvswitch-switch.service
+ notify: service openvswitch restart
+
+- name: config libvirtd
+ shell: echo 'user = "root"' >> /etc/libvirt/qemu.conf
+ notify: service libvirtd restart
+
+- meta: flush_handlers
+
+- name: config neutron-openvswitch-agent
+ blockinfile:
+ dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ insertafter: '^\[ovs\]'
+ block: |
+ datapath_type=netdev
+ vhostuser_socket_dir=/usr/local/var/run/openvswitch
+
+- name: set ovs manager
+ shell: ovs-vsctl set-manager ptcp:6640:127.0.0.1
+ notify: service neutron-openvswitch-agent restart
+
+- name: config ovs to dpdk
+ shell: |
+ ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
+ ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="{{ dpdk_memory }}"
+ notify: service neutron-openvswitch-agent restart
+
+- name: add dpdk bridge
+ shell: |
+ ovs-vsctl add-br br-dpdk -- set bridge br-dpdk datapath_type=netdev
+ ovs-vsctl add-port br-dpdk dpdk0 -- set Interface dpdk0 \
+ type=dpdk options:dpdk-devargs="{{ dpdk_device_pci.stdout }}"
+ notify: service neutron-openvswitch-agent restart
+
+- name: bind ip on dpdk bridge
+ shell: |
+ ifconfig br-dpdk "{{ dpdk_device_ip.stdout }}"
+ ifconfig br-dpdk up
+ notify: service neutron-openvswitch-agent restart
+
+- meta: flush_handlers
diff --git a/plugins/dpdk/roles/config-dpdk/tasks/config-dpdk.yml b/plugins/dpdk/roles/config-dpdk/tasks/config-dpdk.yml
new file mode 100644
index 00000000..b0e1a1ed
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/tasks/config-dpdk.yml
@@ -0,0 +1,16 @@
+#############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- include_vars: "{{ ansible_distribution }}.yml"
+
+- include: neutron_agent.yml
+ when: inventory_hostname in groups['neutron_openvswitch_agent']
+
+- include: compute.yml
+ when: inventory_hostname in groups['compute']
diff --git a/plugins/dpdk/roles/config-dpdk/tasks/main.yml b/plugins/dpdk/roles/config-dpdk/tasks/main.yml
new file mode 100644
index 00000000..19fc66b7
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/tasks/main.yml
@@ -0,0 +1,11 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- include: config-dpdk.yml
+ when: dpdk is defined and dpdk == "Enable"
diff --git a/plugins/dpdk/roles/config-dpdk/tasks/neutron_agent.yml b/plugins/dpdk/roles/config-dpdk/tasks/neutron_agent.yml
new file mode 100644
index 00000000..aa65142b
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/tasks/neutron_agent.yml
@@ -0,0 +1,15 @@
+#############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: config neutron-openvswitch-agent
+ lineinfile:
+ dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini
+ regexp: '^firewall_driver'
+ line: "firewall_driver = openvswitch"
+ notify: service neutron-openvswitch-agent restart
diff --git a/plugins/dpdk/roles/config-dpdk/vars/Ubuntu.yml b/plugins/dpdk/roles/config-dpdk/vars/Ubuntu.yml
new file mode 100644
index 00000000..697785ad
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/vars/Ubuntu.yml
@@ -0,0 +1,14 @@
+#########################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##########################################################################
+---
+devbind_script: /root/dpdk/tools/dpdk-devbind.py
+switch_driver_script: /root/dpdk_uio.sh
+openvswitch_service: openvswitch-switch
+ovs_agent_service: neutron-openvswitch-agent
+libvirtd_service: libvirtd
diff --git a/plugins/dpdk/roles/config-dpdk/vars/main.yml b/plugins/dpdk/roles/config-dpdk/vars/main.yml
new file mode 100644
index 00000000..f6115b62
--- /dev/null
+++ b/plugins/dpdk/roles/config-dpdk/vars/main.yml
@@ -0,0 +1,10 @@
+##########################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##########################################################################
+---
+dpdk_memory: 128
diff --git a/plugins/dpdk/roles/ins_dpdk/vars/main.yml b/plugins/dpdk/roles/ins_dpdk/vars/main.yml
index 87e1026c..4bd4076e 100644
--- a/plugins/dpdk/roles/ins_dpdk/vars/main.yml
+++ b/plugins/dpdk/roles/ins_dpdk/vars/main.yml
@@ -8,7 +8,7 @@
##############################################################################
---
# yamllint disable rule:line-length
-grub_cmdline: GRUB_CMDLINE_LINUX_DEFAULT="hugepagesz=2M hugepages=2048 iommu=pt intel_iommu=on isolcpus=1,2"
+grub_cmdline: GRUB_CMDLINE_LINUX_DEFAULT="hugepagesz=2M hugepages=2048 iommu=pt intel_iommu=on"
# yamllint enable rule:line-length
dpdk_dir: /root/dpdk
diff --git a/plugins/dpdk/roles/ins_ovs/tasks/ovs.yml b/plugins/dpdk/roles/ins_ovs/tasks/ovs.yml
index 9f728696..64475c6a 100644
--- a/plugins/dpdk/roles/ins_ovs/tasks/ovs.yml
+++ b/plugins/dpdk/roles/ins_ovs/tasks/ovs.yml
@@ -1,11 +1,11 @@
-# #############################################################################
+##############################################################################
# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
-# #############################################################################
+##############################################################################
---
- name: install prerequisites package
apt:
@@ -64,11 +64,10 @@
- name: Create OVS scripts
template:
src: "templates/{{ item }}.j2"
- dest: "/root/{{ item }}"
+ dest: "/opt/{{ item }}"
mode: 0755
with_items:
- start_ovs_vswitchd.sh
- - start_ovsdb_server.sh
- name: Create folders
file: path={{ item }} state=directory
@@ -90,8 +89,5 @@
when: ovs_dbconfig_status.stat.exists == false
# yamllint enable rule:line-length
-- name: Start ovsdb Server
- command: /root/start_ovsdb_server.sh
-
- name: Start OVS vswitchd with DPDK support enabled
- command: /root/start_ovs_vswitchd.sh
+ command: /opt/start_ovs_vswitchd.sh
diff --git a/plugins/dpdk/roles/ins_ovs/templates/start_ovs_vswitchd.sh.j2 b/plugins/dpdk/roles/ins_ovs/templates/start_ovs_vswitchd.sh.j2
index c1504177..a96c8721 100644
--- a/plugins/dpdk/roles/ins_ovs/templates/start_ovs_vswitchd.sh.j2
+++ b/plugins/dpdk/roles/ins_ovs/templates/start_ovs_vswitchd.sh.j2
@@ -1,4 +1,8 @@
#!/bin/bash
+ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
+ --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
+ --pidfile --detach
+
export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
sudo ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
sudo ovs-vswitchd unix:$DB_SOCK --pidfile --detach
diff --git a/plugins/dpdk/roles/ins_ovs/templates/start_ovsdb_server.sh.j2 b/plugins/dpdk/roles/ins_ovs/templates/start_ovsdb_server.sh.j2
deleted file mode 100644
index 8bc408b6..00000000
--- a/plugins/dpdk/roles/ins_ovs/templates/start_ovsdb_server.sh.j2
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
- --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
- --pidfile --detach