diff options
Diffstat (limited to 'asdc-controller/src/test/resources/resource-examples')
6 files changed, 3277 insertions, 0 deletions
diff --git a/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml b/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml new file mode 100644 index 0000000000..88eabb736e --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml @@ -0,0 +1,216 @@ +heat_template_version: 2013-05-23 +description: AutoScaling Wordpress +parameters: + image: + type: string + description: Image used for servers + key: + type: string + description: SSH key to connect to the servers + flavor: + type: string + description: flavor used by the web servers + database_flavor: + type: string + description: flavor used by the db server + network: + type: string + description: Network used by the server + subnet_id: + type: string + description: subnet on which the load balancer will be located + database_name: + type: string + description: Name of the wordpress DB + default: wordpress + database_user: + type: string + description: Name of the wordpress user + default: wordpress + external_network_id: + type: string + description: UUID of a Neutron external network +resources: + database_password: + type: OS::Heat::RandomString + database_root_password: + type: OS::Heat::RandomString + db: + type: OS::Nova::Server + properties: + flavor: {get_param: database_flavor} + image: {get_param: image} + key_name: {get_param: key} + networks: [{network: {get_param: network} }] + user_data_format: RAW + user_data: + str_replace: + template: | + #!/bin/bash -v + yum -y install mariadb mariadb-server + systemctl enable mariadb.service + systemctl start mariadb.service + mysqladmin -u root password $db_rootpassword + cat << EOF | mysql -u root --password=$db_rootpassword + CREATE DATABASE $db_name; + GRANT ALL PRIVILEGES ON $db_name.* TO "$db_user"@"%" + IDENTIFIED BY "$db_password"; + FLUSH PRIVILEGES; + EXIT + EOF + params: + $db_rootpassword: {get_attr: [database_root_password, value]} + $db_name: {get_param: database_name} + $db_user: {get_param: database_user} + $db_password: {get_attr: [database_password, value]} + asg: + type: OS::Heat::AutoScalingGroup + properties: + min_size: 1 + max_size: 3 + resource: + type: lb_server.yaml + properties: + flavor: {get_param: flavor} + image: {get_param: image} + key_name: {get_param: key} + network: {get_param: network} + pool_id: {get_resource: pool} + metadata: {"metering.stack": {get_param: "OS::stack_id"}} + user_data: + str_replace: + template: | + #!/bin/bash -v + yum -y install httpd wordpress + systemctl enable httpd.service + systemctl start httpd.service + setsebool -P httpd_can_network_connect_db=1 + + sed -i "/Deny from All/d" /etc/httpd/conf.d/wordpress.conf + sed -i "s/Require local/Require all granted/" /etc/httpd/conf.d/wordpress.conf + sed -i s/database_name_here/$db_name/ /etc/wordpress/wp-config.php + sed -i s/username_here/$db_user/ /etc/wordpress/wp-config.php + sed -i s/password_here/$db_password/ /etc/wordpress/wp-config.php + sed -i s/localhost/$db_host/ /etc/wordpress/wp-config.php + + systemctl restart httpd.service + params: + $db_name: {get_param: database_name} + $db_user: {get_param: database_user} + $db_password: {get_attr: [database_password, value]} + $db_host: {get_attr: [db, first_address]} + web_server_scaleup_policy: + type: OS::Heat::ScalingPolicy + properties: + adjustment_type: change_in_capacity + auto_scaling_group_id: {get_resource: asg} + cooldown: 60 + scaling_adjustment: 1 + web_server_scaledown_policy: + type: OS::Heat::ScalingPolicy + properties: + adjustment_type: change_in_capacity + auto_scaling_group_id: {get_resource: asg} + cooldown: 60 + scaling_adjustment: -1 + cpu_alarm_high: + type: OS::Ceilometer::Alarm + properties: + description: Scale-up if the average CPU > 50% for 1 minute + meter_name: cpu_util + statistic: avg + period: 60 + evaluation_periods: 1 + threshold: 50 + alarm_actions: + - {get_attr: [web_server_scaleup_policy, alarm_url]} + matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}} + comparison_operator: gt + cpu_alarm_low: + type: OS::Ceilometer::Alarm + properties: + description: Scale-down if the average CPU < 15% for 10 minutes + meter_name: cpu_util + statistic: avg + period: 600 + evaluation_periods: 1 + threshold: 15 + alarm_actions: + - {get_attr: [web_server_scaledown_policy, alarm_url]} + matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}} + comparison_operator: lt + monitor: + type: OS::Neutron::HealthMonitor + properties: + type: TCP + delay: 5 + max_retries: 5 + timeout: 5 + pool: + type: OS::Neutron::Pool + properties: + protocol: HTTP + monitors: [{get_resource: monitor}] + subnet_id: {get_param: subnet_id} + lb_method: ROUND_ROBIN + vip: + protocol_port: 80 + lb: + type: OS::Neutron::LoadBalancer + properties: + protocol_port: 80 + pool_id: {get_resource: pool} + + # assign a floating ip address to the load balancer + # pool. + lb_floating: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: external_network_id} + port_id: {get_attr: [pool, vip, port_id]} + + outputs: + scale_up_url: + description: > + This URL is the webhook to scale up the autoscaling group. You + can invoke the scale-up operation by doing an HTTP POST to this + URL; no body nor extra headers are needed. + value: {get_attr: [web_server_scaleup_policy, alarm_url]} + scale_dn_url: + description: > + This URL is the webhook to scale down the autoscaling group. + You can invoke the scale-down operation by doing an HTTP POST to + this URL; no body nor extra headers are needed. + value: {get_attr: [web_server_scaledown_policy, alarm_url]} + pool_ip_address: + value: {get_attr: [pool, vip, address]} + description: The IP address of the load balancing pool + website_url: + value: + str_replace: + template: http://host/wordpress/ + params: + host: { get_attr: [lb_floating, floating_ip_address] } + description: > + This URL is the "external" URL that can be used to access the + Wordpress site. + ceilometer_query: + value: + str_replace: + template: > + ceilometer statistics -m cpu_util + -q metadata.user_metadata.stack=stackval -p 600 -a avg + params: + stackval: { get_param: "OS::stack_id" } + description: > + This is a Ceilometer query for statistics on the cpu_util meter + Samples about OS::Nova::Server instances in this stack. The -q + parameter selects Samples according to the subject's metadata. + When a VM's metadata includes an item of the form metering.X=Y, + the corresponding Ceilometer resource has a metadata item of the + form user_metadata.X=Y and samples about resources so tagged can + be queried with a Ceilometer query term of the form + metadata.user_metadata.X=Y. In this case the nested stacks give + their VMs metadata that is passed as a nested stack parameter, + and this stack passes a metadata of the form metering.stack=Y, + where Y is this stack's ID. diff --git a/asdc-controller/src/test/resources/resource-examples/mixed.yaml b/asdc-controller/src/test/resources/resource-examples/mixed.yaml new file mode 100644 index 0000000000..9dc4a4208f --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/mixed.yaml @@ -0,0 +1,1523 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template that creates internal networks, load balancers and servers for vMMSC. + +parameters: + oam_net_name: + type: string + description: UID of OAM network + oam_network_netmask: + type: string + label: oam network netmask + description: oam network gateway + oam_network_gateway: + type: string + label: oam network gateway + description: oam network gateway + oam_network_route_1: + type: string + label: oam network route 1 + description: oam network route 1 + oam_network_route_2: + type: string + label: oam network route 2 + description: oam network route 2 + external_dns: + type: string + label: dns server + description: dns server for MMSC + external_ntp: + type: string + label: ntp server + description: ntp server for MMSC + lb1_oam_net_ip: + type: string + label: management network ip for mmsc + description: the ip of the management network for mmsc + lb2_oam_net_ip: + type: string + label: management network ip for mmsc + description: the ip of the management network for mmsc + dmz_protected_net: + type: string + description: UID of dmz_protected network + dmz_protected_net_local_ip1: + type: string + label: mmsc dmz protected network local ip1 + description: the local ip1 of the mmsc dmz protected network + dmz_protected_net_local_ip2: + type: string + label: mmsc dmz protected network local ip2 + description: the local ip2 of the mmsc dmz protected network + dmz_protected_net_floating_ip: + type: string + label: mmsc dmz protected floating ip + description: mmsc dmz direct floating ip + cor_direct_net: + type: string + label: cor direct net UID + description: cor direct net + cor_direct_net_local_ip1: + type: string + label: mmsc cor direct network local ip1 + description: the local ip1 of the mmsc cor direct network + cor_direct_net_local_ip2: + type: string + label: mmsc cor direct network local ip2 + description: the local ip2 of the mmsc cor direct network + cor_direct_net_floating_ip: + type: string + label: mmsc cor direct floating ip + description: mmsc cor direct floating ip + mms_traffic_net_name: + type: string + description: Name of MMS traffic network + mms_traffic_net_cidr: + type: string + description: MMS traffic network address (CIDR notation) + mms_traffic_netmask: + type: string + description: MMS traffic network subnet mask + mms_traffic_net_gateway: + type: string + description: MMS traffic network gateway address + mms_traffic_start: + type: string + label: mmsc traffic start IP + description: mmsc traffic start IP + mms_traffic_end: + type: string + label: mmsc traffic end IP + description: mmsc traffic end IP + mms_traffic_net_cidr: + type: string + label: mmsc traffic cidr + description: mmsc traffic cidr + mms_traffic_net_local_ip1: + type: string + label: mmsc traffic network local ip1 + description: the local ip1 of the mmsc traffic network + mms_traffic_net_local_ip2: + type: string + label: mmsc traffic network local ip2 + description: the local ip2 of the mmsc traffic network + mms_traffic_net_floating_ip: + type: string + label: mmsc traffic floating ip + description: mmsc traffic floating ip + nems_internal_name: + type: string + label: nems internal network name + description: nems internal network name + nems_internal_start: + type: string + label: nems internal start + description: nems internal start + nems_internal_end: + type: string + label: nems internal end + description: nems internal end + nems_internal_cidr: + type: string + label: nems ineternal cidr + description: nems internal cidr + nems_internal_netmask: + type: string + description: NEMS internal network subnet mask + nems_internal_gateway: + type: string + label: nems internal gw + description: nems internal gw + nems_traffic_name: + type: string + label: nems traffic name + description: nems traffic name + nems_traffic_start: + type: string + label: nems traffic start + description: nems traffic start + nems_traffic_end: + type: string + label: nems traffic end + description: nems traffic end + nems_traffic_cidr: + type: string + label: nems traffic cidr + description: nems traffic cidr + nems_traffic_netmask: + type: string + description: NEMS traffic network subnet mask + nems_traffic_gateway: + type: string + description: NEMS traffic network gateway + nems_traffic_net_local_ip1: + type: string + label: nems traffic network local ip1 + description: the local ip1 of the nems traffic network + nems_traffic_net_local_ip2: + type: string + label: nems traffic network local ip2 + description: the local ip2 of the nems traffic network + nems_traffic_net_floating_ip: + type: string + label: nems traffic floating ip + description: nems traffic floating ip + nems_user_web_name: + type: string + label: nems user web name + description: nems user web name + nems_user_web_start: + type: string + label: nems user web start + description: nems user web end + nems_user_web_end: + type: string + label: nems user web end + description: nems user web end + nems_user_web_cidr: + type: string + label: nems user web cidr + description: nems user web cidr + nems_user_web_netmask: + type: string + description: NEMS user web network subnet mask + nems_user_web_gateway: + type: string + description: NEMS user web network gateway + nems_user_web_net_local_ip1: + type: string + label: nems user web network local ip1 + description: the local ip1 of the nems user web network + nems_user_web_net_local_ip2: + type: string + label: nems user web network local ip2 + description: the local ip2 of the nems user web network + nems_user_web_net_floating_ip: + type: string + label: nems user web floating ip + description: nems user web floating ip + nems_imap_name: + type: string + label: nems imap name + description: nems imap name + nems_imap_netmask: + type: string + label: nems imap subnet mask + description: nems imap subnet mask + nems_imap_start: + type: string + label: nems imap start + description: nems imap start + nems_imap_end: + type: string + label: nems imap end + description: nems imap end + nems_imap_cidr: + type: string + label: nems imap cidr + description: nems imap cidr + nems_imap_gateway: + type: string + label: nems imap gateway + description: nems imap gateway + eca_traffic_name: + type: string + label: eca traffic name + description: eca traffic name + eca_traffic_start: + type: string + label: eca traffic start + description: eca traffic start + eca_traffic_end: + type: string + label: eca traffic end + description: eca traffic end + eca_traffic_cidr: + type: string + label: eca traffic cidr + description: eca traffic cidr + eca_traffic_netmask: + type: string + description: ECA traffic network subnet mask + eca_traffic_net_local_ip1: + type: string + label: eca traffic network local ip1 + description: the local ip1 of the eca traffic network + eca_traffic_net_local_ip2: + type: string + label: eca traffic network local ip2 + description: the local ip2 of the eca traffic network + eca_traffic_net_floating_ip: + type: string + label: eca traffic floating ip + description: eca traffic floating ip + eca_mgmt_name: + type: string + label: eca management name + description: eca management name + eca_mgmt_start: + type: string + label: eca management start + description: eca management start + eca_mgmt_end: + type: string + label: eca management end + description: eca management end + eca_mgmt_cidr: + type: string + label: eca management cidr + description: eca management cidr + eca_mgmt_netmask: + type: string + description: ECA mgmt network subnet mask + ha_net_name: + type: string + label: ha_failover network name + description: ha_failover network name + ha_net_start: + type: string + label: ha net start + description: ha net start + ha_net_end: + type: string + label: ha net end + description: ha net end + ha_net_cidr: + type: string + label: ha net cidr + description: ha net cidr + ha_net_local_ip1: + type: string + label: ha net network local ip1 + description: the local ip1 of the ha network + ha_net_local_ip2: + type: string + label: ha net network local ip2 + description: the local ip2 of the ha network + lb1_name: + type: string + label: MMSC load balancer instance name + description: MMSC load balancer instance name + lb_image_name: + type: string + label: MMSC load balancer image name + description: MMSC load balancer image name + lb_flavor_name: + type: string + label: Load balancer flavor name + description: the flavor name of MMSC load balancer instance + lb1_name: + type: string + label: MMSC load balancer1 instance name + description: MMSC load balancer1 instance name + lb2_name: + type: string + label: MMSC load balancer2 instance name + description: MMSC load balancer2 instance name + availabilityzone_name: + type: string + label: MMSC availabilityzone name + description: MMSC availabilityzone name + security_group_name: + type: string + label: MMSC security group name + description: MMSC security group name + mmsc_image: + type: string + description: Image for MMSC server + mmsc_flavor: + type: string + description: Flavor for MMSC server +# mmsc_cinder_volume_size: +# type: number +# label: MMSC Cinder volume size +# description: the size of the MMSC Cinder volume + nems_fe_image: + type: string + description: Image for NEMS FE server + nems_fe_flavor: + type: string + description: Flavor for NEMS FE server + nems_be_image: + type: string + description: Image for NEMS BE server + nems_be_flavor: + type: string + description: Flavor for NEMS BE server + eca_trx_image: + type: string + description: Image for ECA TRX server + eca_trx_flavor: + type: string + description: Flavor for ECA TRX server + eca_oam_image: + type: string + description: Image for ECA OAM server + eca_oam_flavor: + type: string + description: Flavor for ECA OAM server + mmsc1_name: + type: string + description: MMSC1 server name + mmsc1_oam_net_ip: + type: string + description: OAM_net IP for MMSC1 + mmsc1_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC1 + mmsc2_name: + type: string + description: MMSC2 server name + mmsc2_oam_net_ip: + type: string + description: OAM_net IP for MMSC2 + mmsc2_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC2 + mmsc3_name: + type: string + description: MMSC3 server name + mmsc3_oam_net_ip: + type: string + description: OAM_net IP for MMSC3 + mmsc3_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC3 + mmsc4_name: + type: string + description: MMSC4 server name + mmsc4_oam_net_ip: + type: string + description: OAM_net IP for MMSC4 + mmsc4_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC4 + mmsc5_name: + type: string + description: MMSC5 server name + mmsc5_oam_net_ip: + type: string + description: OAM_net IP for MMSC5 + mmsc5_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC5 + nems_fe1_name: + type: string + description: NEMS_FE1 server name + nems_fe1_node_role: + type: string + label: nems node role + description: nems node role + nems_fe1_oam_net_ip: + type: string + description: OAM_net IP for NEMS_FE1 + nems_fe1_nems_traffic_net_ip: + type: string + description: nems_traffic_net IP for NEMS_FE1 + nems_fe1_nems_user_web_net_ip: + type: string + description: nems_web_user_net IP for NEMS_FE1 + nems_fe1_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE1 + nems_fe1_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_FE1 + nems_fe2_name: + type: string + description: NEMS_FE2 server name + nems_fe2_node_role: + type: string + label: nems node role + description: nems node role + nems_fe2_oam_net_ip: + type: string + description: OAM_net IP for NEMS_FE2 + nems_fe2_nems_traffic_net_ip: + type: string + description: nems_traffic_net IP for NEMS_FE2 + nems_fe2_nems_user_web_net_ip: + type: string + description: nems_web_user_net IP for NEMS_FE2 + nems_fe2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE2 + nems_fe2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE2 + nems_fe2_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_FE2 + nems_be1_name: + type: string + description: NEMS_BE2 server name + nems_be1_node_role: + type: string + label: nems node role + description: nems node role + nems_be1_oam_net_ip: + type: string + description: OAM_net IP for NEMS_BE1 + nems_be1_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_BE1 + nems_be1_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_BE1 + nems_be2_name: + type: string + description: NEMS_BE2 server name + nems_be2_node_role: + type: string + label: nems node role + description: nems node role + nems_be2_oam_net_ip: + type: string + description: OAM_net IP for NEMS_BE2 + nems_be2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_BE2 + nems_be2_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_BE2 + eca_oam1_name: + type: string + description: ECA_OAM1 server name + eca_oam1_oam_net_ip: + type: string + description: OAM_net IP for ECA_OAM1 + eca_oam1_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_OAM1 + eca_oam2_name: + type: string + description: ECA_OAM2 server name + eca_oam2_oam_net_ip: + type: string + description: OAM_net IP for ECA_OAM2 + eca_oam2_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_OAM2 + eca_trx1_name: + type: string + description: ECA_TRX1 server name + eca_trx1_oam_net_ip: + type: string + description: OAM_net IP for ECA_TRX1 + eca_trx1_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_TRX1 + eca_trx1_eca_traffic_net_ip: + type: string + description: eca_traffic_net IP for ECA_TRX1 + +resources: + mms_security_group: + type: OS::Neutron::SecurityGroup + properties: + description: mmsc security group + name: {get_param: security_group_name} + rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0} + ] + + mms_traffic_net: + type: OS::Contrail::VirtualNetwork + properties: + name: { get_param: mms_traffic_net_name } + + mms_traffic_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: mms_traffic_net_name} + network_id: { get_resource: mms_traffic_net } + cidr: { get_param: mms_traffic_net_cidr } + allocation_pools: [{"start": {get_param: mms_traffic_start}, "end": {get_param: mms_traffic_end}}] + gateway_ip: { get_param: mms_traffic_net_gateway } + enable_dhcp: false + + nems_internal_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: nems_internal_name} + + nems_internal_network_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: nems_internal_name} + allocation_pools: [{"start": {get_param: nems_internal_start}, "end": {get_param: nems_internal_end}}] + cidr: {get_param: nems_internal_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: nems_internal_net} + + nems_traffic_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: nems_traffic_name} + + nems_traffic_network_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: nems_traffic_name} + allocation_pools: [{"start": {get_param: nems_traffic_start}, "end": {get_param: nems_traffic_end}}] + cidr: {get_param: nems_traffic_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: nems_traffic_net} + + nems_user_web_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: nems_user_web_name} + + nems_user_web_network_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: nems_user_web_name} + allocation_pools: [{"start": {get_param: nems_user_web_start}, "end": {get_param: nems_user_web_end}}] + cidr: {get_param: nems_user_web_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: nems_user_web_net} + + nems_imap_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: nems_imap_name} + + nems_imap_network_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: nems_imap_name} + allocation_pools: [{"start": {get_param: nems_imap_start}, "end": {get_param: nems_imap_end}}] + cidr: {get_param: nems_imap_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: nems_imap_net} + + eca_traffic_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: eca_traffic_name} + + eca_traffic_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: eca_traffic_name} + allocation_pools: [{"start": {get_param: eca_traffic_start}, "end": {get_param: eca_traffic_end}}] + cidr: {get_param: eca_traffic_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: eca_traffic_net} + + ha_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: ha_net_name} + + ha_net_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: ha_net_name} + allocation_pools: [{"start": {get_param: ha_net_start}, "end": {get_param: ha_net_end}}] + cidr: {get_param: ha_net_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: ha_net} + + eca_mgmt_net: + type: OS::Contrail::VirtualNetwork + properties: + name: {get_param: eca_mgmt_name} + + eca_mgmt_network_ip_subnet: + type: OS::Neutron::Subnet + properties: + name: {get_param: eca_mgmt_name} + allocation_pools: [{"start": {get_param: eca_mgmt_start}, "end": {get_param: eca_mgmt_end}}] + cidr: {get_param: eca_mgmt_cidr} + enable_dhcp: false + gateway_ip: null + network_id: {get_resource: eca_mgmt_net} + + lb1_instance: + type: OS::Nova::Server + properties: + name: {get_param: lb1_name} + image: {get_param: lb_image_name} + flavor: {get_param: lb_flavor_name} + availability_zone: {get_param: availabilityzone_name} + networks: + - port: {get_resource: lb1_mgmt_port} + - port: {get_resource: lb1_dmz_protected_port} + - port: {get_resource: lb1_cor_direct_port} + - port: {get_resource: lb1_mms_traffic_port} + - port: {get_resource: lb1_nems_traffic_port} + - port: {get_resource: lb1_nems_user_web_port} + - port: {get_resource: lb1_eca_traffic_port} + - port: {get_resource: lb1_ha_net_port} + + lb1_mgmt_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: oam_net_name} + fixed_ips: [{"ip_address": {get_param: lb1_oam_net_ip}}] + security_groups: [{get_resource: mms_security_group}] + + lb1_mms_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: mms_traffic_net} + fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_dmz_protected_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: dmz_protected_net} + fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_cor_direct_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: cor_direct_net} + fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_nems_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_traffic_net} + fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_nems_user_web_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_user_web_net} + fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_ha_net_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: ha_net} + fixed_ips: [{"ip_address": {get_param: ha_net_local_ip1}}] + + lb1_eca_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: eca_traffic_net} + fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_instance: + type: OS::Nova::Server + properties: + name: {get_param: lb2_name} + image: {get_param: lb_image_name} + flavor: {get_param: lb_flavor_name} + availability_zone: {get_param: availabilityzone_name} + networks: + - port: {get_resource: lb2_mgmt_port} + - port: {get_resource: lb2_dmz_protected_port} + - port: {get_resource: lb2_cor_direct_port} + - port: {get_resource: lb2_mms_traffic_port} + - port: {get_resource: lb2_nems_traffic_port} + - port: {get_resource: lb2_nems_user_web_port} + - port: {get_resource: lb2_eca_traffic_port} + - port: {get_resource: lb2_ha_net_port} + + lb2_mgmt_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: oam_net_name} + fixed_ips: [{"ip_address": {get_param: lb2_oam_net_ip}}] + security_groups: [{get_resource: mms_security_group}] + + lb2_mms_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: mms_traffic_net} + fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_dmz_protected_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: dmz_protected_net} + fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_cor_direct_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: cor_direct_net} + fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_nems_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_traffic_net} + fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_nems_user_web_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_user_web_net} + fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_ha_net_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: ha_net} + fixed_ips: [{"ip_address": {get_param: ha_net_local_ip2}}] + + lb2_eca_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: eca_traffic_net} + fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + server_mmsc1: + type: OS::Nova::Server + properties: + name: { get_param: mmsc1_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc1_port_0 } + - port: { get_resource: mmsc1_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc1_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc1_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW +# mmsc1_volume: +# type: OS::Cinder::Volume +# properties: +# size: {get_param: mmsc_cinder_volume_size} + +# mmsc1_volume_attachment: +# type: OS::Cinder::VolumeAttachment +# properties: +# volume_id: {get_resource: mmsc1_volume} +# instance_uuid: {get_resource: server_mmsc1} + + mmsc1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc1_oam_net_ip } + ] + + mmsc1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc1_mms_traffic_net_ip } + ] + + server_mmsc2: + type: OS::Nova::Server + properties: + name: { get_param: mmsc2_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc2_port_0 } + - port: { get_resource: mmsc2_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc2_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc2_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW +# mmsc2_volume: +# type: OS::Cinder::Volume +# properties: +# size: {get_param: mmsc_cinder_volume_size} + +# mmsc2_volume_attachment: +# type: OS::Cinder::VolumeAttachment +# properties: +# volume_id: {get_resource: mmsc2_volume} +# instance_uuid: {get_resource: server_mmsc2} + + mmsc2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc2_oam_net_ip } + ] + + mmsc2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc2_mms_traffic_net_ip } + ] + + server_mmsc3: + type: OS::Nova::Server + properties: + name: { get_param: mmsc3_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc3_port_0 } + - port: { get_resource: mmsc3_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc3_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc3_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW + + mmsc3_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc3_oam_net_ip } + ] + + mmsc3_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc3_mms_traffic_net_ip } + ] + + server_mmsc4: + type: OS::Nova::Server + properties: + name: { get_param: mmsc4_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc4_port_0 } + - port: { get_resource: mmsc4_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc4_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc4_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW + + mmsc4_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc4_oam_net_ip } + ] + + mmsc4_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc4_mms_traffic_net_ip } + ] + + server_mmsc5: + type: OS::Nova::Server + properties: + name: { get_param: mmsc5_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc5_port_0 } + - port: { get_resource: mmsc5_port_1 } + + mmsc5_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc5_oam_net_ip } + ] + + mmsc5_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc5_mms_traffic_net_ip } + ] + + server_nems_fe1: + type: OS::Nova::Server + properties: + name: { get_param: nems_fe1_name } + image: { get_param: nems_fe_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_fe_flavor } + networks: + - port: { get_resource: nems_fe1_port_0 } + - port: { get_resource: nems_fe1_port_1 } + - port: { get_resource: nems_fe1_port_2 } + - port: { get_resource: nems_fe1_port_3 } + - port: { get_resource: nems_fe1_port_4 } + user_data: + str_replace: + template: | + nems.mgmt.ip=${nems.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.traffic.ip=${nems.traffic.ip} + nems.traffic.netmask=${nems.traffic.netmask} + nems.traffic.gateway=${nems.traffic.gateway} + nems.fe0.internal.ip=${nems.fe0.internal.ip} + nems.fe1.internal.ip=${nems.fe1.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.userweb.ip=${nems.userweb.ip} + nems.userweb.netmask=${nems.userweb.netmask} + nems.userweb.gateway=${nems.userweb.gateway} + nems.imap.ip=${nems.imap.ip} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.mgmt.ip}: {get_param: nems_fe1_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.traffic.ip}: {get_param: nems_fe1_nems_traffic_net_ip} + ${nems.traffic.netmask}: {get_param: nems_traffic_netmask} + ${nems.traffic.gateway}: {get_param: nems_traffic_gateway} + ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip} + ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.userweb.ip}: {get_param: nems_fe1_nems_user_web_net_ip} + ${nems.userweb.netmask}: {get_param: nems_user_web_netmask} + ${nems.userweb.gateway}: {get_param: nems_user_web_gateway} + ${nems.imap.ip}: {get_param: nems_fe1_nems_imap_net_ip} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip} + ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_fe1_node_role} + user_data_format: RAW + + nems_fe1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_oam_net_ip } + ] + + nems_fe_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_fe1_port_0} + + nems_fe1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_traffic_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_traffic_net_ip } + ] + + nems_fe1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_user_web_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_user_web_net_ip } + ] + + nems_fe1_port_3: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_internal_net_ip } + ] + + nems_fe1_port_4: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_imap_net_ip } + ] + + server_nems_fe2: + type: OS::Nova::Server + properties: + name: { get_param: nems_fe2_name } + image: { get_param: nems_fe_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_fe_flavor } + networks: + - port: { get_resource: nems_fe2_port_0 } + - port: { get_resource: nems_fe2_port_1 } + - port: { get_resource: nems_fe2_port_2 } + - port: { get_resource: nems_fe2_port_3 } + - port: { get_resource: nems_fe2_port_4 } + user_data: + str_replace: + template: | + nems.mgmt.ip=${nems.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.traffic.ip=${nems.traffic.ip} + nems.traffic.netmask=${nems.traffic.netmask} + nems.traffic.gateway=${nems.traffic.gateway} + nems.fe0.internal.ip=${nems.fe0.internal.ip} + nems.fe1.internal.ip=${nems.fe1.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.userweb.ip=${nems.userweb.ip} + nems.userweb.netmask=${nems.userweb.netmask} + nems.userweb.gateway=${nems.userweb.gateway} + nems.imap.ip=${nems.imap.ip} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.mgmt.ip}: {get_param: nems_fe2_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.traffic.ip}: {get_param: nems_fe2_nems_traffic_net_ip} + ${nems.traffic.netmask}: {get_param: nems_traffic_netmask} + ${nems.traffic.gateway}: {get_param: nems_traffic_gateway} + ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip} + ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.userweb.ip}: {get_param: nems_fe2_nems_user_web_net_ip} + ${nems.userweb.netmask}: {get_param: nems_user_web_netmask} + ${nems.userweb.gateway}: {get_param: nems_user_web_gateway} + ${nems.imap.ip}: {get_param: nems_fe2_nems_imap_net_ip} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip} + ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_fe2_node_role} + user_data_format: RAW + + nems_fe2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_oam_net_ip } + ] + + nems_fe_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_fe2_port_0} + + nems_fe2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_traffic_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_traffic_net_ip } + ] + + nems_fe2_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_user_web_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_user_web_net_ip } + ] + + nems_fe2_port_3: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_internal_net_ip } + ] + + nems_fe2_port_4: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_imap_net_ip } + ] + + server_nems_be1: + type: OS::Nova::Server + properties: + name: { get_param: nems_be1_name } + image: { get_param: nems_be_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_be_flavor } + networks: + - port: { get_resource: nems_be1_port_0 } + - port: { get_resource: nems_be1_port_1 } + - port: { get_resource: nems_be1_port_2 } + user_data: + str_replace: + template: | + nems.be.mgmt.ip=${nems.be.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.be.mgmt.ip}: {get_param: nems_be1_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_be1_node_role} + user_data_format: RAW + + nems_be1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_be1_oam_net_ip } + ] + + nems_be_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_be1_port_0} + + nems_be1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_be1_nems_internal_net_ip } + ] + + nems_be1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_be1_nems_imap_net_ip } + ] + + server_nems_be2: + type: OS::Nova::Server + properties: + name: { get_param: nems_be2_name } + image: { get_param: nems_be_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_be_flavor } + networks: + - port: { get_resource: nems_be2_port_0 } + - port: { get_resource: nems_be2_port_1 } + - port: { get_resource: nems_be2_port_2 } + user_data: + str_replace: + template: | + nems.be.mgmt.ip=${nems.be.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.be.mgmt.ip}: {get_param: nems_be2_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_be1_node_role} + user_data_format: RAW + + nems_be2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_be2_oam_net_ip } + ] + + nems_be_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_be2_port_0} + + nems_be2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_be2_nems_internal_net_ip } + ] + + nems_be2_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_be2_nems_imap_net_ip } + ] + + server_eca_oam1: + type: OS::Nova::Server + properties: + name: { get_param: eca_oam1_name } + image: { get_param: eca_oam_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_oam_flavor } + networks: + - port: { get_resource: eca_oam1_port_0 } + - port: { get_resource: eca_oam1_port_1 } + + eca_oam1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_oam1_oam_net_ip } + ] + + eca_oam1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_oam1_eca_mgmt_net_ip } + ] + + server_eca_oam2: + type: OS::Nova::Server + properties: + name: { get_param: eca_oam2_name } + image: { get_param: eca_oam_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_oam_flavor } + networks: + - port: { get_resource: eca_oam2_port_0 } + - port: { get_resource: eca_oam2_port_1 } + + eca_oam2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_oam2_oam_net_ip } + ] + + eca_oam2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_oam2_eca_mgmt_net_ip } + ] + + server_eca_trx1: + type: OS::Nova::Server + properties: + name: { get_param: eca_trx1_name } + image: { get_param: eca_trx_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_trx_flavor } + networks: + - port: { get_resource: eca_trx1_port_0 } + - port: { get_resource: eca_trx1_port_1 } + - port: { get_resource: eca_trx1_port_2 } + + + eca_trx1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_oam_net_ip } + ] + + eca_trx1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_eca_mgmt_net_ip } + ] + + eca_trx1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_traffic_net } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_eca_traffic_net_ip } + ] diff --git a/asdc-controller/src/test/resources/resource-examples/network.yaml b/asdc-controller/src/test/resources/resource-examples/network.yaml new file mode 100644 index 0000000000..ae10346cbc --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/network.yaml @@ -0,0 +1,32 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template that creates one COR network (direct). + +parameters: + cor_direct_net_name: + type: string + description: Name of COR direct network + cor_direct_net_cidr: + type: string + description: Direct network address (CIDR notation) + cor_direct_net_gateway: + type: string + description: Direct network gateway address + cor_direct_net_RT: + type: string + description: Direct network route-target (RT) + +resources: + cor_direct_net: + type: OS::Contrail::VirtualNetwork + properties: + name: { get_param: cor_direct_net_name } + route_targets: [ get_param: cor_direct_net_RT ] + + cor_direct_ip_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: cor_direct_net } + cidr: {get_param: cor_direct_net_cidr} + gateway_ip: { get_param: cor_direct_net_gateway } diff --git a/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml b/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml new file mode 100644 index 0000000000..8bfda2b056 --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml @@ -0,0 +1,39 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template that creates one COR network (direct). + +parameters: + cor_direct_net_name: + type: string + description: Name of COR direct network + default: testCorDirectNet + cor_direct_net_cidr: + type: string + description: Direct network address (CIDR notation) + cor_direct_net_gateway: + type: string + description: Direct network gateway address + cor_direct_net_RT: + type: string + description: Direct network route-target (RT) + default: testCorDirectNet + ip_port_snmp_manager: + type: string + default: 162 + description: SNMP manager IP port + + +resources: + cor_direct_net: + type: file:///my_test.yaml + properties: + name: { get_param: cor_direct_net_name } + route_targets: [ get_param: cor_direct_net_RT ] + + cor_direct_ip_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: cor_direct_net } + cidr: {get_param: cor_direct_net_cidr} + gateway_ip: { get_param: cor_direct_net_gateway } diff --git a/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml b/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml new file mode 100644 index 0000000000..0a2db2b2bd --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml @@ -0,0 +1,18 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template that creates one COR network (direct). + +resources: + cor_direct_net: + type: file:///my_test.yaml + properties: + name: { get_param: cor_direct_net_name } + route_targets: [ get_param: cor_direct_net_RT ] + + cor_direct_ip_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: cor_direct_net } + cidr: {get_param: cor_direct_net_cidr} + gateway_ip: { get_param: cor_direct_net_gateway } diff --git a/asdc-controller/src/test/resources/resource-examples/vnf.yaml b/asdc-controller/src/test/resources/resource-examples/vnf.yaml new file mode 100644 index 0000000000..d4420de14c --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vnf.yaml @@ -0,0 +1,1449 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template that creates internal networks, load balancers and servers for vMMSC. + +parameters: + oam_net_name: + type: string + description: UID of OAM network + oam_network_netmask: + type: string + label: oam network netmask + description: oam network gateway + oam_network_gateway: + type: string + label: oam network gateway + description: oam network gateway + oam_network_route_1: + type: string + label: oam network route 1 + description: oam network route 1 + oam_network_route_2: + type: string + label: oam network route 2 + description: oam network route 2 + external_dns: + type: string + label: dns server + description: dns server for MMSC + external_ntp: + type: string + label: ntp server + description: ntp server for MMSC + lb1_oam_net_ip: + type: string + label: management network ip for mmsc + description: the ip of the management network for mmsc + lb2_oam_net_ip: + type: string + label: management network ip for mmsc + description: the ip of the management network for mmsc + dmz_protected_net: + type: string + description: UID of dmz_protected network + dmz_protected_net_local_ip1: + type: string + label: mmsc dmz protected network local ip1 + description: the local ip1 of the mmsc dmz protected network + dmz_protected_net_local_ip2: + type: string + label: mmsc dmz protected network local ip2 + description: the local ip2 of the mmsc dmz protected network + dmz_protected_net_floating_ip: + type: string + label: mmsc dmz protected floating ip + description: mmsc dmz direct floating ip + cor_direct_net: + type: string + label: cor direct net UID + description: cor direct net + cor_direct_net_local_ip1: + type: string + label: mmsc cor direct network local ip1 + description: the local ip1 of the mmsc cor direct network + cor_direct_net_local_ip2: + type: string + label: mmsc cor direct network local ip2 + description: the local ip2 of the mmsc cor direct network + cor_direct_net_floating_ip: + type: string + label: mmsc cor direct floating ip + description: mmsc cor direct floating ip + mms_traffic_net_name: + type: string + description: Name of MMS traffic network + mms_traffic_net_cidr: + type: string + description: MMS traffic network address (CIDR notation) + mms_traffic_netmask: + type: string + description: MMS traffic network subnet mask + mms_traffic_net_gateway: + type: string + description: MMS traffic network gateway address + mms_traffic_start: + type: string + label: mmsc traffic start IP + description: mmsc traffic start IP + mms_traffic_end: + type: string + label: mmsc traffic end IP + description: mmsc traffic end IP + mms_traffic_net_cidr: + type: string + label: mmsc traffic cidr + description: mmsc traffic cidr + mms_traffic_net_local_ip1: + type: string + label: mmsc traffic network local ip1 + description: the local ip1 of the mmsc traffic network + mms_traffic_net_local_ip2: + type: string + label: mmsc traffic network local ip2 + description: the local ip2 of the mmsc traffic network + mms_traffic_net_floating_ip: + type: string + label: mmsc traffic floating ip + description: mmsc traffic floating ip + nems_internal_name: + type: string + label: nems internal network name + description: nems internal network name + nems_internal_start: + type: string + label: nems internal start + description: nems internal start + nems_internal_end: + type: string + label: nems internal end + description: nems internal end + nems_internal_cidr: + type: string + label: nems ineternal cidr + description: nems internal cidr + nems_internal_netmask: + type: string + description: NEMS internal network subnet mask + nems_internal_gateway: + type: string + label: nems internal gw + description: nems internal gw + nems_traffic_name: + type: string + label: nems traffic name + description: nems traffic name + nems_traffic_start: + type: string + label: nems traffic start + description: nems traffic start + nems_traffic_end: + type: string + label: nems traffic end + description: nems traffic end + nems_traffic_cidr: + type: string + label: nems traffic cidr + description: nems traffic cidr + nems_traffic_netmask: + type: string + description: NEMS traffic network subnet mask + nems_traffic_gateway: + type: string + description: NEMS traffic network gateway + nems_traffic_net_local_ip1: + type: string + label: nems traffic network local ip1 + description: the local ip1 of the nems traffic network + nems_traffic_net_local_ip2: + type: string + label: nems traffic network local ip2 + description: the local ip2 of the nems traffic network + nems_traffic_net_floating_ip: + type: string + label: nems traffic floating ip + description: nems traffic floating ip + nems_user_web_name: + type: string + label: nems user web name + description: nems user web name + nems_user_web_start: + type: string + label: nems user web start + description: nems user web end + nems_user_web_end: + type: string + label: nems user web end + description: nems user web end + nems_user_web_cidr: + type: string + label: nems user web cidr + description: nems user web cidr + nems_user_web_netmask: + type: string + description: NEMS user web network subnet mask + nems_user_web_gateway: + type: string + description: NEMS user web network gateway + nems_user_web_net_local_ip1: + type: string + label: nems user web network local ip1 + description: the local ip1 of the nems user web network + nems_user_web_net_local_ip2: + type: string + label: nems user web network local ip2 + description: the local ip2 of the nems user web network + nems_user_web_net_floating_ip: + type: string + label: nems user web floating ip + description: nems user web floating ip + nems_imap_name: + type: string + label: nems imap name + description: nems imap name + nems_imap_netmask: + type: string + label: nems imap subnet mask + description: nems imap subnet mask + nems_imap_start: + type: string + label: nems imap start + description: nems imap start + nems_imap_end: + type: string + label: nems imap end + description: nems imap end + nems_imap_cidr: + type: string + label: nems imap cidr + description: nems imap cidr + nems_imap_gateway: + type: string + label: nems imap gateway + description: nems imap gateway + eca_traffic_name: + type: string + label: eca traffic name + description: eca traffic name + eca_traffic_start: + type: string + label: eca traffic start + description: eca traffic start + eca_traffic_end: + type: string + label: eca traffic end + description: eca traffic end + eca_traffic_cidr: + type: string + label: eca traffic cidr + description: eca traffic cidr + eca_traffic_netmask: + type: string + description: ECA traffic network subnet mask + eca_traffic_net_local_ip1: + type: string + label: eca traffic network local ip1 + description: the local ip1 of the eca traffic network + eca_traffic_net_local_ip2: + type: string + label: eca traffic network local ip2 + description: the local ip2 of the eca traffic network + eca_traffic_net_floating_ip: + type: string + label: eca traffic floating ip + description: eca traffic floating ip + eca_mgmt_name: + type: string + label: eca management name + description: eca management name + eca_mgmt_start: + type: string + label: eca management start + description: eca management start + eca_mgmt_end: + type: string + label: eca management end + description: eca management end + eca_mgmt_cidr: + type: string + label: eca management cidr + description: eca management cidr + eca_mgmt_netmask: + type: string + description: ECA mgmt network subnet mask + ha_net_name: + type: string + label: ha_failover network name + description: ha_failover network name + ha_net_start: + type: string + label: ha net start + description: ha net start + ha_net_end: + type: string + label: ha net end + description: ha net end + ha_net_cidr: + type: string + label: ha net cidr + description: ha net cidr + ha_net_local_ip1: + type: string + label: ha net network local ip1 + description: the local ip1 of the ha network + ha_net_local_ip2: + type: string + label: ha net network local ip2 + description: the local ip2 of the ha network + lb1_name: + type: string + label: MMSC load balancer instance name + description: MMSC load balancer instance name + lb_image_name: + type: string + label: MMSC load balancer image name + description: MMSC load balancer image name + lb_flavor_name: + type: string + label: Load balancer flavor name + description: the flavor name of MMSC load balancer instance + lb1_name: + type: string + label: MMSC load balancer1 instance name + description: MMSC load balancer1 instance name + lb2_name: + type: string + label: MMSC load balancer2 instance name + description: MMSC load balancer2 instance name + availabilityzone_name: + type: string + label: MMSC availabilityzone name + description: MMSC availabilityzone name + security_group_name: + type: string + label: MMSC security group name + description: MMSC security group name + mmsc_image: + type: string + description: Image for MMSC server + mmsc_flavor: + type: string + description: Flavor for MMSC server +# mmsc_cinder_volume_size: +# type: number +# label: MMSC Cinder volume size +# description: the size of the MMSC Cinder volume + nems_fe_image: + type: string + description: Image for NEMS FE server + nems_fe_flavor: + type: string + description: Flavor for NEMS FE server + nems_be_image: + type: string + description: Image for NEMS BE server + nems_be_flavor: + type: string + description: Flavor for NEMS BE server + eca_trx_image: + type: string + description: Image for ECA TRX server + eca_trx_flavor: + type: string + description: Flavor for ECA TRX server + eca_oam_image: + type: string + description: Image for ECA OAM server + eca_oam_flavor: + type: string + description: Flavor for ECA OAM server + cmaui_name: + type: string + description: CMAUI server name + cmaui_image: + type: string + description: Image for CMAUI server + cmaui_flavor: + type: string + description: Flavor for CMAUI server +# cmaui_cinder_volume_size: +# type: number +# label: CMAUI Cinder volume size +# description: the size of the CMAUI Cinder volume + mmsc1_name: + type: string + description: MMSC1 server name + mmsc1_oam_net_ip: + type: string + description: OAM_net IP for MMSC1 + mmsc1_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC1 + mmsc2_name: + type: string + description: MMSC2 server name + mmsc2_oam_net_ip: + type: string + description: OAM_net IP for MMSC2 + mmsc2_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC2 + mmsc3_name: + type: string + description: MMSC3 server name + mmsc3_oam_net_ip: + type: string + description: OAM_net IP for MMSC3 + mmsc3_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC3 + mmsc4_name: + type: string + description: MMSC4 server name + mmsc4_oam_net_ip: + type: string + description: OAM_net IP for MMSC4 + mmsc4_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC4 + mmsc5_name: + type: string + description: MMSC5 server name + mmsc5_oam_net_ip: + type: string + description: OAM_net IP for MMSC5 + mmsc5_mms_traffic_net_ip: + type: string + description: mms_traffic_net IP for MMSC5 + nems_fe1_name: + type: string + description: NEMS_FE1 server name + nems_fe1_node_role: + type: string + label: nems node role + description: nems node role + nems_fe1_oam_net_ip: + type: string + description: OAM_net IP for NEMS_FE1 + nems_fe1_nems_traffic_net_ip: + type: string + description: nems_traffic_net IP for NEMS_FE1 + nems_fe1_nems_user_web_net_ip: + type: string + description: nems_web_user_net IP for NEMS_FE1 + nems_fe1_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE1 + nems_fe1_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_FE1 + nems_fe2_name: + type: string + description: NEMS_FE2 server name + nems_fe2_node_role: + type: string + label: nems node role + description: nems node role + nems_fe2_oam_net_ip: + type: string + description: OAM_net IP for NEMS_FE2 + nems_fe2_nems_traffic_net_ip: + type: string + description: nems_traffic_net IP for NEMS_FE2 + nems_fe2_nems_user_web_net_ip: + type: string + description: nems_web_user_net IP for NEMS_FE2 + nems_fe2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE2 + nems_fe2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_FE2 + nems_fe2_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_FE2 + nems_be1_name: + type: string + description: NEMS_BE2 server name + nems_be1_node_role: + type: string + label: nems node role + description: nems node role + nems_be1_oam_net_ip: + type: string + description: OAM_net IP for NEMS_BE1 + nems_be1_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_BE1 + nems_be1_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_BE1 + nems_be2_name: + type: string + description: NEMS_BE2 server name + nems_be2_node_role: + type: string + label: nems node role + description: nems node role + nems_be2_oam_net_ip: + type: string + description: OAM_net IP for NEMS_BE2 + nems_be2_nems_internal_net_ip: + type: string + description: nems_internal_net IP for NEMS_BE2 + nems_be2_nems_imap_net_ip: + type: string + description: nems_imap_net IP for NEMS_BE2 + eca_oam1_name: + type: string + description: ECA_OAM1 server name + eca_oam1_oam_net_ip: + type: string + description: OAM_net IP for ECA_OAM1 + eca_oam1_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_OAM1 + eca_oam2_name: + type: string + description: ECA_OAM2 server name + eca_oam2_oam_net_ip: + type: string + description: OAM_net IP for ECA_OAM2 + eca_oam2_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_OAM2 + eca_trx1_name: + type: string + description: ECA_TRX1 server name + eca_trx1_oam_net_ip: + type: string + description: OAM_net IP for ECA_TRX1 + eca_trx1_eca_mgmt_net_ip: + type: string + description: eca_mgmt_net IP for ECA_TRX1 + eca_trx1_eca_traffic_net_ip: + type: string + description: eca_traffic_net IP for ECA_TRX1 + cmaui_oam_net_ip: + type: string + description: eca_mgmt_net IP for CMAUI + +resources: + mms_security_group: + type: OS::Neutron::SecurityGroup + properties: + description: mmsc security group + name: {get_param: security_group_name} + rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0}, + {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0} + ] + + lb1_instance: + type: OS::Nova::Server + properties: + name: {get_param: lb1_name} + image: {get_param: lb_image_name} + flavor: {get_param: lb_flavor_name} + availability_zone: {get_param: availabilityzone_name} + networks: + - port: {get_resource: lb1_mgmt_port} + - port: {get_resource: lb1_dmz_protected_port} + - port: {get_resource: lb1_cor_direct_port} + - port: {get_resource: lb1_mms_traffic_port} + - port: {get_resource: lb1_nems_traffic_port} + - port: {get_resource: lb1_nems_user_web_port} + - port: {get_resource: lb1_eca_traffic_port} + - port: {get_resource: lb1_ha_net_port} + + lb1_mgmt_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: oam_net_name} + fixed_ips: [{"ip_address": {get_param: lb1_oam_net_ip}}] + security_groups: [{get_resource: mms_security_group}] + + lb1_mms_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: mms_traffic_net} + fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_dmz_protected_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: dmz_protected_net} + fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_cor_direct_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: cor_direct_net} + fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_nems_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_traffic_net} + fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_nems_user_web_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_user_web_net} + fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb1_ha_net_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: ha_net} + fixed_ips: [{"ip_address": {get_param: ha_net_local_ip1}}] + + lb1_eca_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: eca_traffic_net} + fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip1}}] + allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_instance: + type: OS::Nova::Server + properties: + name: {get_param: lb2_name} + image: {get_param: lb_image_name} + flavor: {get_param: lb_flavor_name} + availability_zone: {get_param: availabilityzone_name} + networks: + - port: {get_resource: lb2_mgmt_port} + - port: {get_resource: lb2_dmz_protected_port} + - port: {get_resource: lb2_cor_direct_port} + - port: {get_resource: lb2_mms_traffic_port} + - port: {get_resource: lb2_nems_traffic_port} + - port: {get_resource: lb2_nems_user_web_port} + - port: {get_resource: lb2_eca_traffic_port} + - port: {get_resource: lb2_ha_net_port} + + lb2_mgmt_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: oam_net_name} + fixed_ips: [{"ip_address": {get_param: lb2_oam_net_ip}}] + security_groups: [{get_resource: mms_security_group}] + + lb2_mms_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: mms_traffic_net} + fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_dmz_protected_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: dmz_protected_net} + fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_cor_direct_port: + type: OS::Neutron::Port + properties: + network_id: {get_param: cor_direct_net} + fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_nems_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_traffic_net} + fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_nems_user_web_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: nems_user_web_net} + fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + lb2_ha_net_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: ha_net} + fixed_ips: [{"ip_address": {get_param: ha_net_local_ip2}}] + + lb2_eca_traffic_port: + type: OS::Neutron::Port + properties: + network_id: {get_resource: eca_traffic_net} + fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip2}}] + allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }] + security_groups: [{get_resource: mms_security_group}] + + server_mmsc1: + type: OS::Nova::Server + properties: + name: { get_param: mmsc1_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc1_port_0 } + - port: { get_resource: mmsc1_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc1_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc1_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW +# mmsc1_volume: +# type: OS::Cinder::Volume +# properties: +# size: {get_param: mmsc_cinder_volume_size} + +# mmsc1_volume_attachment: +# type: OS::Cinder::VolumeAttachment +# properties: +# volume_id: {get_resource: mmsc1_volume} +# instance_uuid: {get_resource: server_mmsc1} + + mmsc1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc1_oam_net_ip } + ] + + mmsc1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc1_mms_traffic_net_ip } + ] + + server_mmsc2: + type: OS::Nova::Server + properties: + name: { get_param: mmsc2_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc2_port_0 } + - port: { get_resource: mmsc2_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc2_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc2_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW +# mmsc2_volume: +# type: OS::Cinder::Volume +# properties: +# size: {get_param: mmsc_cinder_volume_size} + +# mmsc2_volume_attachment: +# type: OS::Cinder::VolumeAttachment +# properties: +# volume_id: {get_resource: mmsc2_volume} +# instance_uuid: {get_resource: server_mmsc2} + + mmsc2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc2_oam_net_ip } + ] + + mmsc2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc2_mms_traffic_net_ip } + ] + + server_mmsc3: + type: OS::Nova::Server + properties: + name: { get_param: mmsc3_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc3_port_0 } + - port: { get_resource: mmsc3_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc3_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc3_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW + + mmsc3_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc3_oam_net_ip } + ] + + mmsc3_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc3_mms_traffic_net_ip } + ] + + server_mmsc4: + type: OS::Nova::Server + properties: + name: { get_param: mmsc4_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc4_port_0 } + - port: { get_resource: mmsc4_port_1 } + user_data: + str_replace: + template: | + mmsc.mgmt.ip=${mmsc.mgmt.ip} + mmsc.mgmt.netmask=${mmsc.mgmt.netmask} + mmsc.mgmt.gateway=${mmsc.mgmt.gateway} + mmsc.traffic.ip=${mmsc.traffic.ip} + mmsc.traffic.netmask=${mmsc.traffic.netmask} + mmsc.traffic.gateway=${mmsc.traffic.gateway} + mmsc.mgmt.route.1=${mmsc.mgmt.route.1} + mmsc.mgmt.route.2=${mmsc.mgmt.route.2} + mmsc.external.dns=${mmsc.external.dns} + mmsc.external.ntp=${mmsc.external.ntp} + params: + ${mmsc.mgmt.ip}: {get_param: mmsc4_oam_net_ip} + ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask} + ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway} + ${mmsc.traffic.ip}: {get_param: mmsc4_mms_traffic_net_ip} + ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask} + ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway} + ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1} + ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2} + ${mmsc.external.dns}: {get_param: external_dns} + ${mmsc.external.ntp}: {get_param: external_ntp} + user_data_format: RAW + + mmsc4_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc4_oam_net_ip } + ] + + mmsc4_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc4_mms_traffic_net_ip } + ] + + server_mmsc5: + type: OS::Nova::Server + properties: + name: { get_param: mmsc5_name } + image: { get_param: mmsc_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: mmsc_flavor } + networks: + - port: { get_resource: mmsc5_port_0 } + - port: { get_resource: mmsc5_port_1 } + + mmsc5_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: mmsc5_oam_net_ip } + ] + + mmsc5_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: mms_traffic_net } + fixed_ips: [ + "ip_address": { get_param: mmsc5_mms_traffic_net_ip } + ] + + server_nems_fe1: + type: OS::Nova::Server + properties: + name: { get_param: nems_fe1_name } + image: { get_param: nems_fe_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_fe_flavor } + networks: + - port: { get_resource: nems_fe1_port_0 } + - port: { get_resource: nems_fe1_port_1 } + - port: { get_resource: nems_fe1_port_2 } + - port: { get_resource: nems_fe1_port_3 } + - port: { get_resource: nems_fe1_port_4 } + user_data: + str_replace: + template: | + nems.mgmt.ip=${nems.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.traffic.ip=${nems.traffic.ip} + nems.traffic.netmask=${nems.traffic.netmask} + nems.traffic.gateway=${nems.traffic.gateway} + nems.fe0.internal.ip=${nems.fe0.internal.ip} + nems.fe1.internal.ip=${nems.fe1.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.userweb.ip=${nems.userweb.ip} + nems.userweb.netmask=${nems.userweb.netmask} + nems.userweb.gateway=${nems.userweb.gateway} + nems.imap.ip=${nems.imap.ip} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.mgmt.ip}: {get_param: nems_fe1_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.traffic.ip}: {get_param: nems_fe1_nems_traffic_net_ip} + ${nems.traffic.netmask}: {get_param: nems_traffic_netmask} + ${nems.traffic.gateway}: {get_param: nems_traffic_gateway} + ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip} + ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.userweb.ip}: {get_param: nems_fe1_nems_user_web_net_ip} + ${nems.userweb.netmask}: {get_param: nems_user_web_netmask} + ${nems.userweb.gateway}: {get_param: nems_user_web_gateway} + ${nems.imap.ip}: {get_param: nems_fe1_nems_imap_net_ip} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip} + ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_fe1_node_role} + user_data_format: RAW + + nems_fe1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_oam_net_ip } + ] + + nems_fe_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_fe1_port_0} + + nems_fe1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_traffic_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_traffic_net_ip } + ] + + nems_fe1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_user_web_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_user_web_net_ip } + ] + + nems_fe1_port_3: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_internal_net_ip } + ] + + nems_fe1_port_4: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe1_nems_imap_net_ip } + ] + + server_nems_fe2: + type: OS::Nova::Server + properties: + name: { get_param: nems_fe2_name } + image: { get_param: nems_fe_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_fe_flavor } + networks: + - port: { get_resource: nems_fe2_port_0 } + - port: { get_resource: nems_fe2_port_1 } + - port: { get_resource: nems_fe2_port_2 } + - port: { get_resource: nems_fe2_port_3 } + - port: { get_resource: nems_fe2_port_4 } + user_data: + str_replace: + template: | + nems.mgmt.ip=${nems.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.traffic.ip=${nems.traffic.ip} + nems.traffic.netmask=${nems.traffic.netmask} + nems.traffic.gateway=${nems.traffic.gateway} + nems.fe0.internal.ip=${nems.fe0.internal.ip} + nems.fe1.internal.ip=${nems.fe1.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.userweb.ip=${nems.userweb.ip} + nems.userweb.netmask=${nems.userweb.netmask} + nems.userweb.gateway=${nems.userweb.gateway} + nems.imap.ip=${nems.imap.ip} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.mgmt.ip}: {get_param: nems_fe2_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.traffic.ip}: {get_param: nems_fe2_nems_traffic_net_ip} + ${nems.traffic.netmask}: {get_param: nems_traffic_netmask} + ${nems.traffic.gateway}: {get_param: nems_traffic_gateway} + ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip} + ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.userweb.ip}: {get_param: nems_fe2_nems_user_web_net_ip} + ${nems.userweb.netmask}: {get_param: nems_user_web_netmask} + ${nems.userweb.gateway}: {get_param: nems_user_web_gateway} + ${nems.imap.ip}: {get_param: nems_fe2_nems_imap_net_ip} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip} + ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_fe2_node_role} + user_data_format: RAW + + nems_fe2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_oam_net_ip } + ] + + nems_fe_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_fe2_port_0} + + nems_fe2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_traffic_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_traffic_net_ip } + ] + + nems_fe2_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_user_web_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_user_web_net_ip } + ] + + nems_fe2_port_3: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_internal_net_ip } + ] + + nems_fe2_port_4: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_fe2_nems_imap_net_ip } + ] + + server_nems_be1: + type: OS::Nova::Server + properties: + name: { get_param: nems_be1_name } + image: { get_param: nems_be_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_be_flavor } + networks: + - port: { get_resource: nems_be1_port_0 } + - port: { get_resource: nems_be1_port_1 } + - port: { get_resource: nems_be1_port_2 } + user_data: + str_replace: + template: | + nems.be.mgmt.ip=${nems.be.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.be.mgmt.ip}: {get_param: nems_be1_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_be1_node_role} + user_data_format: RAW + + nems_be1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_be1_oam_net_ip } + ] + + nems_be_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_be1_port_0} + + nems_be1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_be1_nems_internal_net_ip } + ] + + nems_be1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_be1_nems_imap_net_ip } + ] + + server_nems_be2: + type: OS::Nova::Server + properties: + name: { get_param: nems_be2_name } + image: { get_param: nems_be_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: nems_be_flavor } + networks: + - port: { get_resource: nems_be2_port_0 } + - port: { get_resource: nems_be2_port_1 } + - port: { get_resource: nems_be2_port_2 } + user_data: + str_replace: + template: | + nems.be.mgmt.ip=${nems.be.mgmt.ip} + nems.mgmt.netmask=${nems.mgmt.netmask} + nems.mgmt.gateway=${nems.mgmt.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.internal.netmask=${nems.internal.netmask} + nems.internal.gateway=${nems.internal.gateway} + nems.imap.netmask=${nems.imap.netmask} + nems.imap.gateway=${nems.imap.gateway} + nems.be.internal.ip=${nems.be.internal.ip} + nems.be.imap.ip=${nems.be.imap.ip} + nems.mgmt.route.1=${nems.mgmt.route.1} + nems.mgmt.route.2=${nems.mgmt.route.2} + nems.external.dns=${nems.external.dns} + nems.external.ntp=${nems.external.ntp} + nems.node=${nems.node} + params: + ${nems.be.mgmt.ip}: {get_param: nems_be2_oam_net_ip} + ${nems.mgmt.netmask}: {get_param: oam_network_netmask} + ${nems.mgmt.gateway}: {get_param: oam_network_gateway} + ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip} + ${nems.internal.netmask}: {get_param: nems_internal_netmask} + ${nems.internal.gateway}: {get_param: nems_internal_gateway} + ${nems.imap.netmask}: {get_param: nems_imap_netmask} + ${nems.imap.gateway}: {get_param: nems_imap_gateway} + ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip} + ${nems.mgmt.route.1}: {get_param: oam_network_route_1} + ${nems.mgmt.route.2}: {get_param: oam_network_route_2} + ${nems.external.dns}: {get_param: external_dns} + ${nems.external.ntp}: {get_param: external_ntp} + ${nems.node}: {get_param: nems_be1_node_role} + user_data_format: RAW + + nems_be2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: nems_be2_oam_net_ip } + ] + + nems_be_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network_id: {get_param: oam_net_name} + port_id: {get_resource: nems_be2_port_0} + + nems_be2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_internal_net } + fixed_ips: [ + "ip_address": { get_param: nems_be2_nems_internal_net_ip } + ] + + nems_be2_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: nems_imap_net } + fixed_ips: [ + "ip_address": { get_param: nems_be2_nems_imap_net_ip } + ] + + server_eca_oam1: + type: OS::Nova::Server + properties: + name: { get_param: eca_oam1_name } + image: { get_param: eca_oam_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_oam_flavor } + networks: + - port: { get_resource: eca_oam1_port_0 } + - port: { get_resource: eca_oam1_port_1 } + + eca_oam1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_oam1_oam_net_ip } + ] + + eca_oam1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_oam1_eca_mgmt_net_ip } + ] + + server_eca_oam2: + type: OS::Nova::Server + properties: + name: { get_param: eca_oam2_name } + image: { get_param: eca_oam_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_oam_flavor } + networks: + - port: { get_resource: eca_oam2_port_0 } + - port: { get_resource: eca_oam2_port_1 } + + eca_oam2_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_oam2_oam_net_ip } + ] + + eca_oam2_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_oam2_eca_mgmt_net_ip } + ] + + server_eca_trx1: + type: OS::Nova::Server + properties: + name: { get_param: eca_trx1_name } + image: { get_param: eca_trx_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: eca_trx_flavor } + networks: + - port: { get_resource: eca_trx1_port_0 } + - port: { get_resource: eca_trx1_port_1 } + - port: { get_resource: eca_trx1_port_2 } + + + eca_trx1_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_oam_net_ip } + ] + + eca_trx1_port_1: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_mgmt_net } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_eca_mgmt_net_ip } + ] + + eca_trx1_port_2: + type: OS::Neutron::Port + properties: + network_id: { get_resource: eca_traffic_net } + fixed_ips: [ + "ip_address": { get_param: eca_trx1_eca_traffic_net_ip } + ] + + server_cmaui: + type: OS::Nova::Server + properties: + name: { get_param: cmaui_name } + image: { get_param: cmaui_image } + availability_zone: { get_param: availabilityzone_name } + flavor: { get_param: cmaui_flavor } + networks: + - port: { get_resource: cmaui_port_0 } + +# cmaui_volume: +# type: OS::Cinder::Volume +# properties: +# size: {get_param: cmaui_cinder_volume_size} + +# cmaui_volume_attachment: +# type: OS::Cinder::VolumeAttachment +# properties: +# volume_id: {get_resource: cmaui_volume} +# instance_uuid: {get_resource: server_cmaui} + + cmaui_port_0: + type: OS::Neutron::Port + properties: + network_id: { get_param: oam_net_name } + fixed_ips: [ + "ip_address": { get_param: cmaui_oam_net_ip } + ] + |