blob: 6216713f48f453ef5b58aeadcf34a0ce1bd08e1c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
##############################################################################
# Copyright (c) 2017 ZTE corporation 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
##############################################################################
heat_template_version: 2015-04-30
description: >
Used to run VMs with DPDK pktgen
parameters:
image:
type: string
description: Name of the image
default: yardstick-wily-server
timeout:
type: number
description: Timeout in seconds for WaitCondition, depends on your image and environment
default: 900
external_net_name:
type: string
description: Name of the external network which management network will connect to
default: admin_floating_net
resources:
flavor:
type: OS::Nova::Flavor
properties:
ram: 4096
vcpus: 4
disk: 4
network:
type: OS::Neutron::Net
properties:
name: dpdk_net
subnet:
type: OS::Neutron::Subnet
properties:
name: dpdk_subnet
ip_version: 4
cidr: 192.168.0.0/24
network: { get_resource: network }
management_router:
type: OS::Neutron::Router
properties:
name: management_router
external_gateway_info:
network: { get_param: external_net_name }
management_router_interface:
type: OS::Neutron::RouterInterface
properties:
router: { get_resource: management_router }
subnet: { get_resource: subnet }
floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: external_net_name }
floating_ip_association:
type: OS::Nova::FloatingIPAssociation
properties:
floating_ip: { get_resource: floating_ip }
server_id: {get_resource: dpdk_vm}
keypair:
type: OS::Nova::KeyPair
properties:
name: yardstick-key
public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0RkXfW6pksd1cZmXuvXZF/Mlqqq3ahIGcGoULOC97XMpu0vdxMpcUwdjwGqMwEXTVyfHidu0l99bLqOCpSUKCmbWx3ONJ+1kqFx4HwsKEWLiyDYqsuMrDeZT1eFjC5avCoTcrIw2wq5NaBb00lDGagNZOeopaL5YIa4+PizEY23+cir24D67NU21Fg3JE92AIeGlNa4j66L3a+lL0hZq74Dilmp42wm4GsbplRO6KJfyaraowHb1X+TmhCjBgHk6M/OJ9yPAroZyJNcwjMAuuxhAYWRuT3SdbnoUR0RG2VhfDh0qNid7vOqLbhKPeaLLFmzkN+9w3WdCp6LbSYt87 yardstick@yardstick.opnfv.org
wait_handle:
type: OS::Heat::WaitConditionHandle
wait_condition:
type: OS::Heat::WaitCondition
properties:
handle: { get_resource: wait_handle }
count: 1
timeout: { get_param: timeout }
dpdk_vm:
type: OS::Nova::Server
depends_on: [subnet, keypair, flavor]
properties:
name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_resource: flavor }
key_name: {get_resource: keypair}
networks:
- network: { get_resource: network }
config_drive: True
user_data_format : RAW
user_data:
str_replace:
template: |
#!/bin/sh
cat <<'CEOF' > /tmp/dpdk_post_build.sh
export RTE_SDK=/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc
cd /dpdk
make install T=x86_64-native-linuxapp-gcc DESTDIR=destdir
modprobe uio
insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
insmod /dpdk/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko
cd /pktgen-dpdk
make RTE_SDK=/dpdk
echo "PCKTGEN BUILT"
rm -rf /var/lib/cloud/instances
echo "rm succesfull"
ls /dpdk/x86_64-native-linuxapp-gcc/kmod/
$NOTIFY --data-binary '{"status": "SUCCESS"}'
CEOF
chmod +x /tmp/dpdk_post_build.sh
echo "chmod"
nohup /tmp/dpdk_post_build.sh &
params:
$NOTIFY: { get_attr: ['wait_handle', 'curl_cli'] }
outputs:
vm_uuid:
description: uuid of the VM
value: { get_attr: [ dpdk_vm, show,id ] }
|