aboutsummaryrefslogtreecommitdiffstats
path: root/test/mocks/mass-pnf-sim/pnf-sim-lightweight/deployment/PnP_PNF_sim_heat_template_Ubuntu_16_04.yml
blob: cef9d42278d9154d103c9e5a5a47954d25d1e3e1 (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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
description: Heat template that deploys PnP PNF simulator
heat_template_version: '2013-05-23'
outputs:
  PNF_PnP_simualtor_private_ip:
    description: IP address of PNF_PnP_simualtor in private network
    value:
      get_attr: [PNF_PnP_simualtor, first_address]
  PNF_PnP_simualtor_public_ip:
    description: Floating IP address of PNF_PnP_simualtor in public network
    value:
      get_attr: [PNF_PnP_simualtor_public, floating_ip_address]
parameters:
  flavor_name:
    description: Type of instance (flavor) to be used
    label: Flavor
    type: string
  image_name:
    description: Ubuntu 16.04 image to be used
    label: Image name or ID
    type: string
  key_name:
    description: Public/Private key pair name
    label: Key pair name
    type: string
  private_net_id:
    description: Private network id
    label: Private network name or ID
    type: string
  private_subnet_id:
    description: Private subnet id
    label: Private subnetwork name or ID
    type: string
  public_net_id:
    description: Public network that enables remote connection to VNF
    label: Public network name or ID
    type: string
  security_group:
    default: default
    description: Security group to be used
    label: Security Groups
    type: string
  proxy:
    default: ''
    description: Proxy
    label: Proxy
    type: string
  correlation_id:
    default: 'someId'
    description: Correlation ID
    label: Correlation ID
    type: string
  VES-HOST:
    default: 'VES-HOST'
    description: VES collector host ip
    label: VES ip
    type: string
  VES-PORT:
    default: 'VES-PORT'
    description: VES collector host port
    label: VES port
    type: string
resources:
  PNF_PnP_simualtor:
    properties:
      flavor:
        get_param: flavor_name
      image:
        get_param: image_name
      key_name:
        get_param: key_name
      networks:
      - port:
          get_resource: PNF_PnP_simualtor_port0
      user_data:
        str_replace:
          params:
            $proxy:
              get_param: proxy
            $VES-PORT:
              get_param: VES-PORT
            $VES-HOST:
              get_param: VES-HOST
            $correlation_id:
              get_param: correlation_id
          template: |
            #!/bin/bash

            set_versions () {
                DOCKER_VERSION=17.03
                DOCKER_COMPOSE_VERSION=1.22.0
                PROTOBUF_VERSION=3.6.1
            }

            enable_root_ssh () {
                sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
                sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
                service sshd restart
                echo -e "onap\nonap" | passwd root
            }

            update_os () {
                rm -rf /var/lib/apt/lists/*
                apt-get clean
                apt-get update
            }

            docker_install_and_configure () {
                curl "https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh" | sh
                mkdir -p /etc/systemd/system/docker.service.d/
                cat > /etc/systemd/system/docker.service.d/docker.conf << EOF
            [Service]
            ExecStart=
            ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10003
            Environment="HTTP_PROXY=$proxy"
            Environment="HTTPS_PROXY=$proxy"
            EOF
                systemctl daemon-reload
                systemctl restart docker
                apt-mark hold docker-ce
                docker login -u docker -p docker nexus3.onap.org:10003
            }

            docker_compose_install () {
                curl -L "https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
                chmod +x /usr/local/bin/docker-compose
            }

            pnf_sim_file_checkout () {
                cd /root; git clone https://gerrit.onap.org/r/integration
                printf "{\n  \"simulatorParams\": {\n    \"vesServerUrl\": \"http://$VES-HOST:$VES-PORT/eventListener/v7\",\n    \"testDuration\": \"10\",\n    \"messageInterval\": \"1\"\n  },\n  \"commonEventHeaderParams\": {\n    \"eventName\": \"pnfRegistration_Nokia_5gDu\",\n    \"nfNamingCode\": \"gNB\",\n    \"nfcNamingCode\": \"oam\",\n    \"sourceName\": \"$correlation_id\",\n    \"sourceId\": \"val13\",\n    \"reportingEntityName\": \"NOK6061ZW3\"\n  },\n  \"pnfRegistrationParams\": {\n    \"serialNumber\": \"6061ZW3\",\n    \"vendorName\": \"Nokia\",\n    \"oamV4IpAddress\": \"val3\",\n    \"oamV6IpAddress\": \"val4\",\n    \"unitFamily\": \"BBU\",\n    \"modelNumber\": \"val6\",\n    \"softwareVersion\": \"val7\",\n    \"unitType\": \"val8\"\n  }\n}" > integration/test/mocks/pnfsimulator/config/config.json
            }

            start_simulator () {
               docker login -u docker -p docker nexus3.onap.org:10003
               cd ~/integration/test/mocks/pnfsimulator
               ./simulator.sh start
            }

            set_versions
            enable_root_ssh
            update_os
            docker_install_and_configure
            docker_compose_install
            pnf_sim_file_checkout
            start_simulator

    type: OS::Nova::Server
  PNF_PnP_simualtor_port0:
    properties:
      fixed_ips:
      - subnet_id:
          get_param: private_subnet_id
      network_id:
        get_param: private_net_id
      security_groups:
      - get_param: security_group
    type: OS::Neutron::Port
  PNF_PnP_simualtor_public:
    properties:
      floating_network_id:
        get_param: public_net_id
      port_id:
        get_resource: PNF_PnP_simualtor_port0
    type: OS::Neutron::FloatingIP