diff options
Diffstat (limited to 'deploy')
16 files changed, 421 insertions, 92 deletions
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 |