summaryrefslogtreecommitdiffstats
path: root/ansible/roles/copy_L4Replay
AgeCommit message (Expand)AuthorFilesLines
2017-08-08yardstick setup ansible, including load_imagesMalanik Jan1-0/+14
id='n76' href='#n76'>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 ] }