aboutsummaryrefslogtreecommitdiffstats
path: root/deployment/PnP_PNF_sim_heat_template.yml
blob: 6f9b5f02fee535c494f52db4cdf0a73004c10664 (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
description: Heat template that deploys PnP PNF simulator
heat_template_version: '2013-05-23'
parameters:
  flavor_name: {description: Type of instance (flavor) to be used, label: Flavor,
                type: string}
  image_name: {description: Image to be used for compute instance, label: Image name
               or ID, type: string}
  key_name: {description: Public/Private key pair name, label: Key pair name, type: string}
  public_net_id: {description: Public network that enables remote connection to VNF,
                  label: Public network name or ID, type: string}
  private_net_id: {type: string, description: Private network id, label: Private network name or ID}
  private_subnet_id: {type: string, description: Private subnet id, label: Private subnetwork name or ID}
  proxy: {type: string, description: Proxy, label: Proxy, default: ""}
resources:
  PNF_PnP_simualtor:
    type: OS::Nova::Server
    properties:
      key_name: { get_param: key_name }
      image: { get_param: image_name }
      flavor: { get_param: flavor_name }
      networks:
      - port: { get_resource: PNF_PnP_simualtor_port0 }
      user_data_format: RAW
      user_data:
        str_replace:
          template: |
            #!/bin/bash

            set_versions () {
                    DOCKER_COMPOSE_VERSION=1.22.0
            }


            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 "arthur\narthur" | passwd root
            }

            update_os () {
                dnf -y install fedora-upgrade
            }

            docker_remove () {
                dnf -y remove docker \
                              docker-client \
                              docker-client-latest \
                              docker-common \
                              docker-latest \
                              docker-latest-logrotate \
                              docker-logrotate \
                              docker-selinux \
                              docker-engine-selinux \
                              docker-engine
            }

            docker_install_and_configure () {
                dnf -y install dnf-plugins-core
                dnf config-manager \
                 --add-repo \
                https://download.docker.com/linux/fedora/docker-ce.repo
                dnf -y install docker-ce
                systemctl start docker
                mkdir -p /etc/systemd/system/docker.service.d/
                cat > /etc/systemd/system/docker.service.d/override.conf<< EOF
            [Service]
            Environment="HTTP_PROXY=$proxy"
            Environment="HTTPS_PROXY=$proxy"
            EOF
                systemctl daemon-reload
                systemctl restart docker
            }
            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": "NOK6061ZW3",\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_remove
            docker_install_and_configure
            docker_compose_install
            pnf_sim_file_checkout
            start_simulator
          params:
            $proxy: { get_param: proxy }
  PNF_PnP_simualtor_port0:
    type: OS::Neutron::Port
    properties:
      network_id: { get_param: private_net_id }
      security_groups:
        - default
      fixed_ips:
        - subnet_id: { get_param: private_subnet_id }
  PNF_PnP_simualtor_public:
    type: OS::Neutron::FloatingIP
    properties:
      floating_network_id: { get_param: public_net_id }
      port_id: { get_resource: PNF_PnP_simualtor_port0 }
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 ] }