diff options
author | Tim Rozet <trozet@redhat.com> | 2016-07-21 23:00:21 -0400 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2016-08-03 11:35:48 -0400 |
commit | 0cf5b3770e33ed1168e98d557a6dc212ca57f970 (patch) | |
tree | 14acd0ec6e6344b5df81989018ef3e3f4b6667d4 | |
parent | 66f4a30987f870d5a6416b2c46c7dfb95130b4d9 (diff) |
Adds configuring vpp/hc on all nodes
Changes include:
- starting vpp with pci addr of tenant nic
- setting performance options for fdio scenario
- creates nosdn fdio scenario (needs newtorking-vpp, etc)
- starts HC if ODL is used
opnfv-tht-pr: 46
JIRA: APEX-133
Change-Id: Ie7a7f1418b94dfb82255ec9aebc550a955dd696a
Signed-off-by: Tim Rozet <trozet@redhat.com>
-rw-r--r-- | build/build_perf_image.sh | 2 | ||||
-rw-r--r-- | build/network-environment.yaml | 1 | ||||
-rw-r--r-- | build/opnfv-apex-common.spec | 4 | ||||
-rw-r--r-- | config/deploy/os-nosdn-fdio-noha.yaml | 25 | ||||
-rw-r--r-- | config/deploy/os-odl_l2-fdio-ha.yaml | 14 | ||||
-rw-r--r-- | config/deploy/os-odl_l2-fdio-noha.yaml | 16 | ||||
-rwxr-xr-x | lib/overcloud-deploy-functions.sh | 17 | ||||
-rwxr-xr-x | lib/parse-functions.sh | 14 | ||||
-rw-r--r-- | lib/python/apex/common/constants.py | 4 | ||||
-rw-r--r-- | lib/python/apex/network_environment.py | 15 | ||||
-rwxr-xr-x | lib/python/apex_python_utils.py | 15 | ||||
-rw-r--r-- | tests/test_apex_network_environment.py | 4 |
12 files changed, 121 insertions, 10 deletions
diff --git a/build/build_perf_image.sh b/build/build_perf_image.sh index c91b563d..a6ca066b 100644 --- a/build/build_perf_image.sh +++ b/build/build_perf_image.sh @@ -27,8 +27,6 @@ fi if [ "$CATEGORY" == "nova" ]; then if [ "$KEY" == "libvirtpin" ]; then sudo sed -i "s/#LibvirtCPUPinSet:.*/LibvirtCPUPinSet: '${VALUE}'/" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml - sudo sed -i "s/^#resource_registry:/resource_registry:/" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml - sudo sed -i "s/# {numa}/ OS::TripleO::ComputeExtraConfigPre: ..\/puppet\/extraconfig\/pre_deploy\/compute\/numa.yaml/" /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml fi fi diff --git a/build/network-environment.yaml b/build/network-environment.yaml index 84bb5cef..bbd0796f 100644 --- a/build/network-environment.yaml +++ b/build/network-environment.yaml @@ -39,7 +39,6 @@ resource_registry: OS::TripleO::Compute::Net::SoftwareConfig: nics/compute.yaml OS::TripleO::Controller::Net::SoftwareConfig: nics/controller.yaml - parameter_defaults: NeutronExternalNetworkBridge: 'br-ex' ControlPlaneSubnetCidr: "24" diff --git a/build/opnfv-apex-common.spec b/build/opnfv-apex-common.spec index 854fbbb6..6b86bf87 100644 --- a/build/opnfv-apex-common.spec +++ b/build/opnfv-apex-common.spec @@ -35,6 +35,7 @@ install ci/util.sh %{buildroot}%{_bindir}/opnfv-util mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/ install config/deploy/os-nosdn-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml +install config/deploy/os-nosdn-fdio-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml install config/deploy/os-nosdn-ovs-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml install config/deploy/os-nosdn-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml install config/deploy/os-nosdn-performance-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml @@ -104,6 +105,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %{_var}/opt/opnfv/lib/installer/onos/onos_gw_mac_update.sh %{_var}/opt/opnfv/lib/installer/domain.xml %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml +%{_sysconfdir}/opnfv-apex/os-nosdn-fdio-noha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml %{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml @@ -129,6 +131,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/ %doc %{_docdir}/opnfv/inventory.yaml.example %changelog +* Thu Aug 1 2016 Tim Rozet <trozet@redhat.com> - 3.0-11 +- Add nosdn fdio scenarios. * Tue Jul 5 2016 Dan Radez <dradez@redhat.com> - 3.0-10 - Adding functions.sh files * Thu Jun 15 2016 Tim Rozet <trozet@redhat.com> - 3.0-9 diff --git a/config/deploy/os-nosdn-fdio-noha.yaml b/config/deploy/os-nosdn-fdio-noha.yaml new file mode 100644 index 00000000..057177f6 --- /dev/null +++ b/config/deploy/os-nosdn-fdio-noha.yaml @@ -0,0 +1,25 @@ +global_params: + ha_enabled: false + +deploy_options: + sdn_controller: false + sdn_l3: false + tacker: false + congress: false + sfc: false + vpn: false + vpp: true + dataplane: fdio + performance: + Controller: + kernel: + hugepages: 1024 + hugepagesz: 2M + Compute: + nova: + libvirtpin: 1 + kernel: + hugepagesz: 2M + hugepages: 4096 + intel_iommu: 'on' + iommu: pt diff --git a/config/deploy/os-odl_l2-fdio-ha.yaml b/config/deploy/os-odl_l2-fdio-ha.yaml index e0f26696..c7a9d8e0 100644 --- a/config/deploy/os-odl_l2-fdio-ha.yaml +++ b/config/deploy/os-odl_l2-fdio-ha.yaml @@ -10,3 +10,17 @@ deploy_options: sfc: false vpn: false vpp: true + dataplane: fdio + performance: + Controller: + kernel: + hugepages: 1024 + hugepagesz: 2M + Compute: + nova: + libvirtpin: 1 + kernel: + hugepagesz: 2M + hugepages: 4096 + intel_iommu: 'on' + iommu: pt diff --git a/config/deploy/os-odl_l2-fdio-noha.yaml b/config/deploy/os-odl_l2-fdio-noha.yaml index 9fc896b5..ca090154 100644 --- a/config/deploy/os-odl_l2-fdio-noha.yaml +++ b/config/deploy/os-odl_l2-fdio-noha.yaml @@ -10,3 +10,19 @@ deploy_options: sfc: false vpn: false vpp: true + dataplane: fdio + performance: + Controller: + kernel: + hugepages: 1024 + hugepagesz: 2M + intel_iommu: 'on' + iommu: pt + Compute: + nova: + libvirtpin: 1 + kernel: + hugepagesz: 2M + hugepages: 4096 + intel_iommu: 'on' + iommu: pt diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh index 14c37247..5b0e1aca 100755 --- a/lib/overcloud-deploy-functions.sh +++ b/lib/overcloud-deploy-functions.sh @@ -71,7 +71,7 @@ function overcloud_deploy { scp ${SSH_OPTIONS[@]} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 "stack@$UNDERCLOUD":overcloud-full.qcow2 # Install ovs-dpdk inside the overcloud image if it is enabled. - if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then + if [[ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' || "${deploy_options_array['dataplane']}" == 'fdio' ]]; then # install dpdk packages before ovs echo -e "${blue}INFO: Enabling kernel modules for dpdk inside overcloud image${reset}" @@ -90,9 +90,16 @@ EOF --upload uio_pci_generic.modules:/etc/sysconfig/modules/ \ --run-command "chmod 0755 /etc/sysconfig/modules/vfio_pci.modules" \ --run-command "chmod 0755 /etc/sysconfig/modules/uio_pci_generic.modules" \ - --run-command "yum install -y /root/dpdk_rpms/*" \ -a overcloud-full.qcow2 + + if [ "${deploy_options_array['dataplane']}" == 'fdio' ]; then + sed -i '/FdioEnabled:/c\ FdioEnabled: true' opnfv-environment.yaml + else + LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/dpdk_rpms/*" \ + -a overcloud-full.qcow2 + fi EOI + elif [ "${deploy_options_array['dataplane']}" != 'ovs' ]; then echo "${red}${deploy_options_array['dataplane']} not supported${reset}" exit 1 @@ -150,6 +157,12 @@ popd /bin/rm -rf ipa/ EOI + # set NIC heat params and resource registry + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI +sed -i '/TenantNIC:/c\ TenantNIC: '${private_network_compute_interface} opnfv-environment.yaml +sed -i '/PublicNIC:/c\ PublicNIC: '${public_network_compute_interface} opnfv-environment.yaml +EOI + DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/numa.yaml" fi diff --git a/lib/parse-functions.sh b/lib/parse-functions.sh index dde9041a..e8dd982d 100755 --- a/lib/parse-functions.sh +++ b/lib/parse-functions.sh @@ -52,8 +52,18 @@ parse_setting_value() { ##parses network settings yaml into globals parse_network_settings() { - local output - if output=$(python3.4 -B $LIB/python/apex_python_utils.py parse-net-settings -s $NETSETS -i $net_isolation_enabled -e $CONFIG/network-environment.yaml); then + local output parse_ext + parse_ext='' + + for val in ${performance_roles[@]}; do + if [ "$val" == "Compute" ]; then + parse_ext="${parse_ext} --compute-pre-config " + elif [ "$val" == "Controller" ]; then + parse_ext="${parse_ext} --controller-pre-config " + fi + done + + if output=$(python3.4 -B $LIB/python/apex_python_utils.py parse-net-settings -s $NETSETS -i $net_isolation_enabled -e $CONFIG/network-environment.yaml $parse_ext); then echo -e "${blue}${output}${reset}" eval "$output" else diff --git a/lib/python/apex/common/constants.py b/lib/python/apex/common/constants.py index 996ef2f0..ae8ffe31 100644 --- a/lib/python/apex/common/constants.py +++ b/lib/python/apex/common/constants.py @@ -17,3 +17,7 @@ OPNFV_NETWORK_TYPES = [ADMIN_NETWORK, PRIVATE_NETWORK, PUBLIC_NETWORK, DNS_SERVERS = ["8.8.8.8", "8.8.4.4"] ROLES = ['compute', 'controller'] DOMAIN_NAME = 'localdomain.com' +COMPUTE_PRE = "OS::TripleO::ComputeExtraConfigPre" +CONTROLLER_PRE = "OS::TripleO::ControllerExtraConfigPre" +PRE_CONFIG_DIR = "/usr/share/openstack-tripleo-heat-templates/puppet/" \ + "extraconfig/pre_deploy/" diff --git a/lib/python/apex/network_environment.py b/lib/python/apex/network_environment.py index 981c8f1c..bf81b98d 100644 --- a/lib/python/apex/network_environment.py +++ b/lib/python/apex/network_environment.py @@ -15,6 +15,9 @@ from .common.constants import ( STORAGE_NETWORK, PUBLIC_NETWORK, API_NETWORK, + CONTROLLER_PRE, + COMPUTE_PRE, + PRE_CONFIG_DIR ) PORTS = '/ports' @@ -48,8 +51,11 @@ class NetworkEnvironment: The class builds upon an existing network-environment file and modifies based on a NetworkSettings object. """ - def __init__(self, net_settings, filename): + def __init__(self, net_settings, filename, compute_pre_config=False, + controller_pre_config=False): with open(filename, 'r') as net_env_fh: + self.compute_pre = compute_pre_config + self.controller_pre = controller_pre_config self.netenv_obj = yaml.load(net_env_fh) self._update_net_environment(net_settings) @@ -185,6 +191,13 @@ class NetworkEnvironment: prefix = '' self.netenv_obj[reg][key] = tht_dir + prefix + postfix + if self.compute_pre: + self.netenv_obj[reg][COMPUTE_PRE] = PRE_CONFIG_DIR + \ + "compute/numa.yaml" + if self.controller_pre: + self.netenv_obj[reg][CONTROLLER_PRE] = PRE_CONFIG_DIR + \ + "controller/numa.yaml" + # Set IPv6 related flags to True. Not that we do not set those to False # when IPv4 is configured, we'll use the default or whatever the user # may have set. diff --git a/lib/python/apex_python_utils.py b/lib/python/apex_python_utils.py index bc9bc56f..c548437d 100755 --- a/lib/python/apex_python_utils.py +++ b/lib/python/apex_python_utils.py @@ -38,7 +38,9 @@ def parse_net_settings(args): """ settings = NetworkSettings(args.net_settings_file, args.network_isolation) - net_env = NetworkEnvironment(settings, args.net_env_file) + net_env = NetworkEnvironment(settings, args.net_env_file, + args.compute_pre_config, + args.controller_pre_config) dump_yaml(net_env.get_netenv_settings(), '/tmp/network-environment.yaml') settings.dump_bash() @@ -136,6 +138,17 @@ def get_parser(): default="network-environment.yaml", dest='net_env_file', help='path to network environment file') + net_settings.add_argument('--compute-pre-config', + default=False, + action='store_true', + dest='compute_pre_config', + help='Boolean to enable Compute Pre Config') + net_settings.add_argument('--controller-pre-config', + action='store_true', + default=False, + dest='controller_pre_config', + help='Boolean to enable Controller Pre Config') + net_settings.set_defaults(func=parse_net_settings) get_int_ip = subparsers.add_parser('find-ip', diff --git a/tests/test_apex_network_environment.py b/tests/test_apex_network_environment.py index 2a8438fa..97bdd370 100644 --- a/tests/test_apex_network_environment.py +++ b/tests/test_apex_network_environment.py @@ -38,6 +38,8 @@ class TestNetworkEnvironment(object): def test_get_netenv_settings(self): ns = NetworkSettings('../config/network/network_settings.yaml', True) - ne = NetworkEnvironment(ns, '../build/network-environment.yaml') + ne = NetworkEnvironment(ns, '../build/network-environment.yaml', + compute_pre_config=True, + controller_pre_config=True) assert_is_instance(ne.get_netenv_settings(), dict) assert_not_equal(ne.get_netenv_settings(), {}) |