summaryrefslogtreecommitdiffstats
path: root/tools/vsperf_install.yml
blob: 413171add610d32174aba9f1f33b59def70b154c (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
##############################################################################
# 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/vsperf_install.yml

heat_template_version: 2015-04-30

description: >
  Used to run VMs with Vsperf

parameters:
  image:
    type: string
    description: Name of the image
    default: vnftest-vsperf

  flavor:
    type: string
    default: vsperf-flavor

  timeout:
    type: number
    description: Timeout in seconds for WaitCondition, depends on your image and environment
    default: 6000

  external_net_name:
    type: string
    description: Name of the external network which management network will connect to
    default: ext-net1

resources:
  network:
    type: OS::Neutron::Net
    properties:
      name: vsperf_net

  subnet:
    type: OS::Neutron::Subnet
    properties:
      name: vsperf_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: vsperf_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 }

  vsperf_vm:
    type: OS::Nova::Server
    depends_on: [subnet, keypair]
    properties:
      name: { get_param: "OS::stack_name" }
      image: { get_param: image }
      flavor: { get_param: flavor }
      key_name: {get_resource: keypair}
      networks:
        - network: { get_resource: network }
      config_drive: True
      user_data_format : RAW
      user_data:
        str_replace:
          template: |
            #!/bin/bash
            cat <<'CEOF' > /tmp/vsperf_post_build.sh
            echo "Install vswitchperf"
            mv /root/vswitchperf /home/ubuntu
            chown -R ubuntu:ubuntu /home/ubuntu/vswitchperf
            cd /home/ubuntu/vswitchperf/systems
            sudo -H -u ubuntu ./build_base_machine.sh
            echo "Set password less access to MoonGen server"
            sudo -H -u ubuntu ssh-keygen -b 2048 -t rsa -f /home/ubuntu/.ssh/id_rsa -N ''
            sudo -H -u ubuntu touch /home/ubuntu/.cloud-warnings.skip
            echo "Enable 1GB huge pages"
            update-grub
            $NOTIFY --data-binary '{"status": "SUCCESS"}'
            CEOF
            chmod +x /tmp/vsperf_post_build.sh
            nohup /tmp/vsperf_post_build.sh &
          params:
            $NOTIFY: { get_attr: ['wait_handle', 'curl_cli'] }

outputs:
  vm_uuid:
    description: uuid of the VM
    value: { get_attr: [ vsperf_vm, show,id ] }