blob: 6ec4b0be074da4e56e6ecc41ea1e8d984e8c376c (
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
|
heat_template_version: 2013-05-23
description: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario)
parameters:
vlb_image_name:
type: string
label: Image name or ID
description: Image to be used for compute instance
vlb_flavor_name:
type: string
label: Flavor
description: Type of instance (flavor) to be used
public_net_id:
type: string
label: Public network name or ID
description: Public network that enables remote connection to VNF
vlb_private_net_id:
type: string
label: vLoadBalancer private network name or ID
description: Private network that connects vLoadBalancer with vDNSs
ecomp_private_net_id:
type: string
label: ECOMP management network name or ID
description: Private network that connects ECOMP component and the VNF
vlb_private_ip_0:
type: string
label: vLoadBalancer private IP address towards the private network
description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs
vdns_private_ip_0:
type: string
label: vDNS private IP address towards the private network
description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer
vdns_private_ip_1:
type: string
label: vDNS private IP address towards the ECOMP management network
description: Private IP address that is assigned to the vDNS to communicate with ECOMP components
vdsn_name_0:
type: string
label: vDNS name
description: Name of the vDNS
vnf_id:
type: string
label: VNF ID
description: The VNF ID is provided by ECOMP
vf_module_id:
type: string
label: vFirewall module ID
description: The vLoadBalancer Module ID is provided by ECOMP
webserver_ip:
type: string
label: Webserver IP address
description: IP address of the webserver that hosts the source code and binaries
dcae_collector_ip:
type: string
label: DCAE collector IP address
description: IP address of the DCAE collector
key_name:
type: string
label: Key pair name
description: Public/Private key pair name
pub_key:
type: string
label: Public key
description: Public key to be installed on the compute instance
resources:
my_keypair:
type: OS::Nova::KeyPair
properties:
name: { get_param: key_name }
public_key: { get_param: pub_key }
save_private_key: false
vdns_0:
type: OS::Nova::Server
properties:
image: { get_param: vlb_image_name }
flavor: { get_param: vlb_flavor_name }
name: { get_param: vdsn_name_0 }
key_name: { get_resource: my_keypair }
networks:
- network: { get_param: public_net_id }
- port: { get_resource: vdns_private_0_port }
- port: { get_resource: vdns_private_1_port }
metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
user_data_format: RAW
user_data:
str_replace:
params:
__webserver__: { get_param: webserver_ip }
__fw_ipaddr__: { get_param: vlb_private_ip_0 }
template: |
#!/bin/bash
WEBSERVER_IP=__webserver__
LB_IPADDR=__lb_ipaddr__
mkdir /opt/config
cd /opt
wget http://$WEBSERVER_IP/demo_repo/v_dns_init.sh
chmod +x v_dns_init.sh
echo $WEBSERVER_IP > config/webserver_ip.txt
echo $LB_IPADDR > config/lb_ipaddr.txt
./v_dns_init.sh
vdns_private_0_port:
type: OS::Neutron::Port
properties:
network: { get_param: vlb_private_net_id }
fixed_ips: [{"subnet": { get_param: vlb_private_net_id }, "ip_address": { get_param: vdns_private_ip_0 }}]
vdns_private_1_port:
type: OS::Neutron::Port
properties:
network: { get_param: ecomp_private_net_id }
fixed_ips: [{"subnet": { get_param: ecomp_private_net_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
|