summaryrefslogtreecommitdiffstats
path: root/tools/dpdk_install.yml
blob: 09898fd67d958a5d46211b779ebc2567842b1990 (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
133
134
135
136
137
138
139
140
##############################################################################
# Copyright 2018 EuropeanSoftwareMarketingLtd.
# ===================================================================
#  Licensed under the ApacheLicense, Version2.0 (the"License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#  http://www.apache.org/licenses/LICENSE-2.0
#
# software distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and limitations under
# the License
##############################################################################
# vnftest comment: this is a modified copy of
# yardstick/tools/dpdk_install.yml

heat_template_version: 2015-04-30

description: >
  Used to run VMs with DPDK pktgen

parameters:
  image:
    type: string
    description: Name of the image
    default: vnftest-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: vnftest-key
      public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0RkXfW6pksd1cZmXuvXZF/Mlqqq3ahIGcGoULOC97XMpu0vdxMpcUwdjwGqMwEXTVyfHidu0l99bLqOCpSUKCmbWx3ONJ+1kqFx4HwsKEWLiyDYqsuMrDeZT1eFjC5avCoTcrIw2wq5NaBb00lDGagNZOeopaL5YIa4+PizEY23+cir24D67NU21Fg3JE92AIeGlNa4j66L3a+lL0hZq74Dilmp42wm4GsbplRO6KJfyaraowHb1X+TmhCjBgHk6M/OJ9yPAroZyJNcwjMAuuxhAYWRuT3SdbnoUR0RG2VhfDh0qNid7vOqLbhKPeaLLFmzkN+9w3WdCp6LbSYt87 vnftest@vnftest.onap.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 ] }