diff options
author | Yury Kylulin <yury.kylulin@intel.com> | 2019-12-03 18:29:00 +0300 |
---|---|---|
committer | Patrice Buriez <patrice.buriez@intel.com> | 2020-01-31 19:09:11 +0100 |
commit | 855816b08aaa8529dfcccef91890bbdae0a1dd3e (patch) | |
tree | 8db6b6982467011ddbb83e89d6a23c76e0f64cf1 /VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py | |
parent | 5d3bcf89c23b72fcdc0c32306a843bb3a0f64dcf (diff) |
Add support for kubernetes deployment in rapid scripts.
In case of kubernetes based deployments procedure for test environment
creation is different. Please refer to README.k8s file for more
details.
Dockerfile and dockerimage.sh files can be used to create a docker
image with prox.
There is separate createrapidk8s.py script which is used to create
appropriate number of PODs for testing based on the rapid.pods
configuration.
port_info is a helper application to identify port MAC address.
Change-Id: I73611f066ac54260aa11dd17c173379df06f46a5
Signed-off-by: Yury Kylulin <yury.kylulin@intel.com>
Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py')
-rwxr-xr-x | VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py b/VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py index 124a2342..62164c4b 100755 --- a/VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py +++ b/VNFs/DPPD-PROX/helper-scripts/rapid/runrapid.py @@ -978,6 +978,7 @@ vmDPIP =[] vmAdminIP =[] vmDPmac =[] hexDPIP =[] +vmDPPCIDEV =[] config_file =[] prox_socket =[] prox_launch_exit =[] @@ -1011,6 +1012,7 @@ config = ConfigParser.RawConfigParser() config.read(env) machine_map = ConfigParser.RawConfigParser() machine_map.read(machine_map_file) +vim_type = config.get('Varia', 'vim') key = config.get('ssh', 'key') user = config.get('ssh', 'user') total_number_of_machines = config.get('rapid', 'total_number_of_machines') @@ -1023,6 +1025,8 @@ for vm in range(1, int(total_number_of_machines)+1): vmDPIP.append(config.get('M%d'%vm, 'dp_ip')) ip = vmDPIP[-1].split('.') hexDPIP.append(hex(int(ip[0]))[2:].zfill(2) + ' ' + hex(int(ip[1]))[2:].zfill(2) + ' ' + hex(int(ip[2]))[2:].zfill(2) + ' ' + hex(int(ip[3]))[2:].zfill(2)) + if (vim_type == "kubernetes"): + vmDPPCIDEV.append(config.get('M%d'%vm, 'dp_pci_dev')) machine_index = [] for vm in range(1, int(required_number_of_test_machines)+1): machine_index.append(int(machine_map.get('TestM%d'%vm, 'machine_index'))-1) @@ -1040,6 +1044,10 @@ for vm in range(1, int(required_number_of_test_machines)+1): f.write('name="%s"\n'% testconfig.get('TestM%d'%vm, 'name')) f.write('local_ip="%s"\n'% vmDPIP[machine_index[vm-1]]) f.write('local_hex_ip="%s"\n'% hexDPIP[machine_index[vm-1]]) + if (vim_type == "kubernetes"): + f.write("eal=\"--socket-mem=512,0 --file-prefix %s-%s-%s --pci-whitelist %s\"\n" % (env, test_file, vm, vmDPPCIDEV[machine_index[vm-1]])) + else: + f.write("eal=\"\"\n") if testconfig.has_option('TestM%d'%vm, 'cores'): cores.append(ast.literal_eval(testconfig.get('TestM%d'%vm, 'cores'))) f.write('cores="%s"\n'% ','.join(map(str, cores[-1]))) @@ -1133,42 +1141,44 @@ for vm in range(0, int(required_number_of_test_machines)): if prox_socket[vm]: clients.append(prox_ctrl(vmAdminIP[machine_index[vm]], key,user)) connect_client(clients[-1]) + if (vim_type == "OpenStack"): # Creating script to bind the right network interface to the poll mode driver - devbindfile = '{}_{}_devbindvm{}.sh'.format(env,test_file, vm+1) - with open(devbindfile, "w") as f: - newText= 'link="$(ip -o link | grep '+vmDPmac[machine_index[vm]]+' |cut -d":" -f 2)"\n' - f.write(newText) - newText= 'if [ -n "$link" ];\n' - f.write(newText) - newText= 'then\n' - f.write(newText) - newText= ' echo Need to bind\n' - f.write(newText) - newText= ' sudo ' + rundir + '/dpdk/usertools/dpdk-devbind.py --force --bind igb_uio $('+rundir+'/dpdk/usertools/dpdk-devbind.py --status |grep $link | cut -d" " -f 1)\n' - f.write(newText) - newText= 'else\n' - f.write(newText) - newText= ' echo Assuming port is already bound to DPDK\n' - f.write(newText) - newText= 'fi\n' - f.write(newText) - newText= 'exit 0\n' - f.write(newText) - st = os.stat(devbindfile) - os.chmod(devbindfile, st.st_mode | stat.S_IEXEC) - clients[-1].scp_put('./%s'%devbindfile, rundir+'/devbind.sh') - cmd = 'sudo ' + rundir+ '/devbind.sh' - clients[-1].run_cmd(cmd) - log.debug("devbind.sh running on VM%d"%(vm+1)) + devbindfile = '{}_{}_devbindvm{}.sh'.format(env,test_file, vm+1) + with open(devbindfile, "w") as f: + newText= 'link="$(ip -o link | grep '+vmDPmac[machine_index[vm]]+' |cut -d":" -f 2)"\n' + f.write(newText) + newText= 'if [ -n "$link" ];\n' + f.write(newText) + newText= 'then\n' + f.write(newText) + newText= ' echo Need to bind\n' + f.write(newText) + newText= ' sudo ' + rundir + '/dpdk/usertools/dpdk-devbind.py --force --bind igb_uio $('+rundir+'/dpdk/usertools/dpdk-devbind.py --status |grep $link | cut -d" " -f 1)\n' + f.write(newText) + newText= 'else\n' + f.write(newText) + newText= ' echo Assuming port is already bound to DPDK\n' + f.write(newText) + newText= 'fi\n' + f.write(newText) + newText= 'exit 0\n' + f.write(newText) + st = os.stat(devbindfile) + os.chmod(devbindfile, st.st_mode | stat.S_IEXEC) + clients[-1].scp_put('./%s'%devbindfile, rundir+'/devbind.sh') + cmd = 'sudo ' + rundir+ '/devbind.sh' + clients[-1].run_cmd(cmd) + log.debug("devbind.sh running on VM%d"%(vm+1)) + clients[-1].scp_put('./%s'%config_file[vm], rundir+'/%s'%config_file[vm]) clients[-1].scp_put('./{}_{}_parameters{}.lua'.format(env,test_file, vm+1), rundir + '/parameters.lua') if not configonly: if prox_launch_exit[vm]: log.debug("Starting PROX on VM%d"%(vm+1)) if auto_start[vm]: - cmd = 'sudo ' +rundir + '/prox/build/prox -t -o cli -f ' + rundir + '/%s'%config_file[vm] + cmd = 'sudo ' + rundir + '/prox -t -o cli -f ' + rundir + '/%s'%config_file[vm] else: - cmd = 'sudo ' +rundir + '/prox/build/prox -e -t -o cli -f ' + rundir + '/%s'%config_file[vm] + cmd = 'sudo ' + rundir + '/prox -e -t -o cli -f ' + rundir + '/%s'%config_file[vm] clients[-1].fork_cmd(cmd, 'PROX Testing on TestM%d'%(vm+1)) socks_control.append(prox_launch_exit[vm]) socks.append(connect_socket(clients[-1])) |