summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2016-07-21 23:00:21 -0400
committerTim Rozet <trozet@redhat.com>2016-08-03 11:35:48 -0400
commit0cf5b3770e33ed1168e98d557a6dc212ca57f970 (patch)
tree14acd0ec6e6344b5df81989018ef3e3f4b6667d4 /lib
parent66f4a30987f870d5a6416b2c46c7dfb95130b4d9 (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>
Diffstat (limited to 'lib')
-rwxr-xr-xlib/overcloud-deploy-functions.sh17
-rwxr-xr-xlib/parse-functions.sh14
-rw-r--r--lib/python/apex/common/constants.py4
-rw-r--r--lib/python/apex/network_environment.py15
-rwxr-xr-xlib/python/apex_python_utils.py15
5 files changed, 59 insertions, 6 deletions
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',