diff options
author | Marco Platania <platania@research.att.com> | 2017-08-25 10:02:48 -0400 |
---|---|---|
committer | Marco Platania <platania@research.att.com> | 2017-08-25 10:02:48 -0400 |
commit | 658fae032efc7f9046412b5729bdf52833be9527 (patch) | |
tree | cdb4646dcd824fe3db212538944a6981bf26af5c /heat/vFW | |
parent | e817131a63b9797d6850a0327646ea5a826500f9 (diff) |
Consolidate vFW Heat template
- Create a single Heat template that works in Rackspace and OpenStack
Change-Id: Idbc5c08290c94c24a01c88d6591f2ea92b752733
Issue-ID: UCA-36
Signed-off-by: Marco Platania <platania@research.att.com>
Diffstat (limited to 'heat/vFW')
-rw-r--r-- | heat/vFW/base_vfw.env (renamed from heat/vFW/base_vfw_openstack.env) | 2 | ||||
-rw-r--r-- | heat/vFW/base_vfw.yaml (renamed from heat/vFW/base_vfw_openstack.yaml) | 5 | ||||
-rw-r--r-- | heat/vFW/base_vfw_rackspace.env | 32 | ||||
-rw-r--r-- | heat/vFW/base_vfw_rackspace.yaml | 377 |
4 files changed, 2 insertions, 414 deletions
diff --git a/heat/vFW/base_vfw_openstack.env b/heat/vFW/base_vfw.env index 7040f867..32879e2b 100644 --- a/heat/vFW/base_vfw_openstack.env +++ b/heat/vFW/base_vfw.env @@ -29,4 +29,4 @@ parameters: install_script_version: 1.1.0-SNAPSHOT
key_name: vfw_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: openstack
+ cloud_env: PUT openstack OR backspace HERE
diff --git a/heat/vFW/base_vfw_openstack.yaml b/heat/vFW/base_vfw.yaml index 4900c55c..77b53a83 100644 --- a/heat/vFW/base_vfw_openstack.yaml +++ b/heat/vFW/base_vfw.yaml @@ -208,16 +208,13 @@ resources: vfw_private_0_port:
type: OS::Neutron::Port
properties:
- security_groups: []
- port_security_enabled: False
network: { get_resource: unprotected_private_network }
fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vfw_private_ip_0 }}]
vfw_private_1_port:
type: OS::Neutron::Port
properties:
- security_groups: []
- port_security_enabled: False
+ allowed_address_pairs: [{ "ip_address": { get_param: vpg_private_ip_0 }}]
network: { get_resource: protected_private_network }
fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vfw_private_ip_1 }}]
diff --git a/heat/vFW/base_vfw_rackspace.env b/heat/vFW/base_vfw_rackspace.env deleted file mode 100644 index 0f6175d1..00000000 --- a/heat/vFW/base_vfw_rackspace.env +++ /dev/null @@ -1,32 +0,0 @@ -parameters: - vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM) - vfw_flavor_name: 4 GB General Purpose v1 - public_net_id: 00000000-0000-0000-0000-000000000000 - unprotected_private_net_id: zdfw1fwl01_unprotected - protected_private_net_id: zdfw1fwl01_protected - onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE - onap_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE - unprotected_private_net_cidr: 192.168.10.0/24 - protected_private_net_cidr: 192.168.20.0/24 - onap_private_net_cidr: 10.0.0.0/16 - vfw_private_ip_0: 192.168.10.100 - vfw_private_ip_1: 192.168.20.100 - vfw_private_ip_2: 10.0.100.1 - vpg_private_ip_0: 192.168.10.200 - vpg_private_ip_1: 10.0.100.2 - vsn_private_ip_0: 192.168.20.250 - vsn_private_ip_1: 10.0.100.3 - vfw_name_0: zdfw1fwl01fwl01 - vpg_name_0: zdfw1fwl01pgn01 - vsn_name_0: zdfw1fwl01snk01 - vnf_id: vFirewall_demo_app - vf_module_id: vFirewall - dcae_collector_ip: 10.0.4.102 - dcae_collector_port: 8080 - repo_url_blob: https://nexus.onap.org/content/sites/raw - repo_url_artifacts: https://nexus.onap.org/content/groups/staging - demo_artifacts_version: 1.1.0 - install_script_version: 1.1.0-SNAPSHOT - key_name: vfw_key - pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN - cloud_env: rackspace diff --git a/heat/vFW/base_vfw_rackspace.yaml b/heat/vFW/base_vfw_rackspace.yaml deleted file mode 100644 index 51ac2861..00000000 --- a/heat/vFW/base_vfw_rackspace.yaml +++ /dev/null @@ -1,377 +0,0 @@ -########################################################################## -# -#==================LICENSE_START========================================== -# -# -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -#==================LICENSE_END============================================ -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -# -########################################################################## - -heat_template_version: 2013-05-23 - -description: Heat template that deploys vFirewall demo app for ONAP - -############## -# # -# PARAMETERS # -# # -############## - -parameters: - vfw_image_name: - type: string - label: Image name or ID - description: Image to be used for compute instance - vfw_flavor_name: - type: string - label: Flavor - description: Type of instance (flavor) to be used - public_net_id: - type: string - label: Public network name or ID - description: Public network that enables remote connection to VNF - unprotected_private_net_id: - type: string - label: Unprotected private network name or ID - description: Private network that connects vPacketGenerator with vFirewall - protected_private_net_id: - type: string - label: Protected private network name or ID - description: Private network that connects vFirewall with vSink - onap_private_net_id: - type: string - label: ONAP management network name or ID - description: Private network that connects ONAP components and the VNF - onap_private_subnet_id: - type: string - label: ONAP management sub-network name or ID - description: Private sub-network that connects ONAP components and the VNF - unprotected_private_net_cidr: - type: string - label: Unprotected private network CIDR - description: The CIDR of the unprotected private network - protected_private_net_cidr: - type: string - label: Protected private network CIDR - description: The CIDR of the protected private network - onap_private_net_cidr: - type: string - label: ONAP private network CIDR - description: The CIDR of the protected private network - vfw_private_ip_0: - type: string - label: vFirewall private IP address towards the unprotected network - description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator - vfw_private_ip_1: - type: string - label: vFirewall private IP address towards the protected network - description: Private IP address that is assigned to the vFirewall to communicate with the vSink - vfw_private_ip_2: - type: string - label: vFirewall private IP address towards the ONAP management network - description: Private IP address that is assigned to the vFirewall to communicate with ONAP components - vpg_private_ip_0: - type: string - label: vPacketGenerator private IP address towards the unprotected network - description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall - vpg_private_ip_1: - type: string - label: vPacketGenerator private IP address towards the ONAP management network - description: Private IP address that is assigned to the vPacketGenerator to communicate with ONAP components - vsn_private_ip_0: - type: string - label: vSink private IP address towards the protected network - description: Private IP address that is assigned to the vSink to communicate with the vFirewall - vsn_private_ip_1: - type: string - label: vSink private IP address towards the ONAP management network - description: Private IP address that is assigned to the vSink to communicate with ONAP components - vfw_name_0: - type: string - label: vFirewall name - description: Name of the vFirewall - vpg_name_0: - type: string - label: vPacketGenerator name - description: Name of the vPacketGenerator - vsn_name_0: - type: string - label: vSink name - description: Name of the vSink - vnf_id: - type: string - label: VNF ID - description: The VNF ID is provided by ECOMP - vf_module_id: - type: string - label: vFirewall module ID - description: The vFirewall Module ID is provided by ECOMP - dcae_collector_ip: - type: string - label: DCAE collector IP address - description: IP address of the DCAE collector - dcae_collector_port: - type: string - label: DCAE collector port - description: Port of the DCAE collector - key_name: - type: string - label: Key pair name - description: Public/Private key pair name - pub_key: - type: string - label: Public key - description: Public key to be installed on the compute instance - repo_url_blob: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - repo_url_artifacts: - type: string - label: Repository URL - description: URL of the repository that hosts the demo packages - install_script_version: - type: string - label: Installation script version number - description: Version number of the scripts that install the vFW demo app - demo_artifacts_version: - type: string - label: Artifacts version used in demo vnfs - description: Artifacts (jar, tar.gz) version used in demo vnfs - cloud_env: - type: string - label: Cloud environment - description: Cloud environment (e.g., openstack, rackspace) - -############# -# # -# RESOURCES # -# # -############# - -resources: - random-str: - type: OS::Heat::RandomString - properties: - length: 4 - - my_keypair: - type: OS::Nova::KeyPair - properties: - name: - str_replace: - template: base_rand - params: - base: { get_param: key_name } - rand: { get_resource: random-str } - public_key: { get_param: pub_key } - save_private_key: false - - unprotected_private_network: - type: OS::Neutron::Net - properties: - name: { get_param: unprotected_private_net_id } - - protected_private_network: - type: OS::Neutron::Net - properties: - name: { get_param: protected_private_net_id } - - unprotected_private_subnet: - type: OS::Neutron::Subnet - properties: - network_id: { get_resource: unprotected_private_network } - cidr: { get_param: unprotected_private_net_cidr } - - protected_private_subnet: - type: OS::Neutron::Subnet - properties: - network_id: { get_resource: protected_private_network } - cidr: { get_param: protected_private_net_cidr } - - # Virtual Firewall instantiation - vfw_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_resource: unprotected_private_network } - fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vfw_private_ip_0 }}] - - vfw_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_resource: protected_private_network } - fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vfw_private_ip_1 }}] - - vfw_private_2_port: - type: OS::Neutron::Port - properties: - network: { get_param: onap_private_net_id } - fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vfw_private_ip_2 }}] - - vfw_0: - type: OS::Nova::Server - properties: - image: { get_param: vfw_image_name } - flavor: { get_param: vfw_flavor_name } - name: { get_param: vfw_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - - port: { get_resource: vfw_private_0_port } - - port: { get_resource: vfw_private_1_port } - - port: { get_resource: vfw_private_2_port } - metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} - user_data_format: RAW - user_data: - str_replace: - params: - __dcae_collector_ip__ : { get_param: dcae_collector_ip } - __dcae_collector_port__ : { get_param: dcae_collector_port } - __repo_url_blob__ : { get_param: repo_url_blob } - __repo_url_artifacts__ : { get_param: repo_url_artifacts } - __demo_artifacts_version__ : { get_param: demo_artifacts_version } - __install_script_version__ : { get_param: install_script_version } - __cloud_env__ : { get_param: cloud_env } - template: | - #!/bin/bash - - # Create configuration files - mkdir /opt/config - echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt - echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt - echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt - echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt - echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt - echo "__install_script_version__" > /opt/config/install_script_version.txt - echo "__cloud_env__" > /opt/config/cloud_env.txt - - # Download and run install script - curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_firewall_install.sh -o /opt/v_firewall_install.sh - cd /opt - chmod +x v_firewall_install.sh - ./v_firewall_install.sh - - - # Virtual Packet Generator instantiation - vpg_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_resource: unprotected_private_network } - fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}] - - vpg_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_param: onap_private_net_id } - fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vpg_private_ip_1 }}] - - vpg_0: - type: OS::Nova::Server - properties: - image: { get_param: vfw_image_name } - flavor: { get_param: vfw_flavor_name } - name: { get_param: vpg_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - - port: { get_resource: vpg_private_0_port } - - port: { get_resource: vpg_private_1_port } - metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} - user_data_format: RAW - user_data: - str_replace: - params: - __fw_ipaddr__: { get_param: vfw_private_ip_0 } - __protected_net_cidr__: { get_param: protected_private_net_cidr } - __sink_ipaddr__: { get_param: vsn_private_ip_0 } - __repo_url_blob__ : { get_param: repo_url_blob } - __repo_url_artifacts__ : { get_param: repo_url_artifacts } - __demo_artifacts_version__ : { get_param: demo_artifacts_version } - __install_script_version__ : { get_param: install_script_version } - __cloud_env__ : { get_param: cloud_env } - template: | - #!/bin/bash - - # Create configuration files - mkdir /opt/config - echo "__fw_ipaddr__" > /opt/config/fw_ipaddr.txt - echo "__protected_net_cidr__" > /opt/config/protected_net_cidr.txt - echo "__sink_ipaddr__" > /opt/config/sink_ipaddr.txt - echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt - echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt - echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt - echo "__install_script_version__" > /opt/config/install_script_version.txt - echo "__cloud_env__" > /opt/config/cloud_env.txt - - # Download and run install script - curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_packetgen_install.sh -o /opt/v_packetgen_install.sh - cd /opt - chmod +x v_packetgen_install.sh - ./v_packetgen_install.sh - - - # Virtual Sink instantiation - vsn_private_0_port: - type: OS::Neutron::Port - properties: - network: { get_resource: protected_private_network } - fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vsn_private_ip_0 }}] - - vsn_private_1_port: - type: OS::Neutron::Port - properties: - network: { get_param: onap_private_net_id } - fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vsn_private_ip_1 }}] - - vsn_0: - type: OS::Nova::Server - properties: - image: { get_param: vfw_image_name } - flavor: { get_param: vfw_flavor_name } - name: { get_param: vsn_name_0 } - key_name: { get_resource: my_keypair } - networks: - - network: { get_param: public_net_id } - - port: { get_resource: vsn_private_0_port } - - port: { get_resource: vsn_private_1_port } - metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} - user_data_format: RAW - user_data: - str_replace: - params: - __protected_net_gw__: { get_param: vfw_private_ip_1 } - __unprotected_net__: { get_param: unprotected_private_net_cidr } - __repo_url_blob__ : { get_param: repo_url_blob } - __install_script_version__ : { get_param: install_script_version } - __cloud_env__ : { get_param: cloud_env } - template: | - #!/bin/bash - - # Create configuration files - mkdir /opt/config - echo "__protected_net_gw__" > /opt/config/protected_net_gw.txt - echo "__unprotected_net__" > /opt/config/unprotected_net.txt - echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt - echo "__install_script_version__" > /opt/config/install_script_version.txt - echo "__cloud_env__" > /opt/config/cloud_env.txt - - # Download and run install script - curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_sink_install.sh -o /opt/v_sink_install.sh - cd /opt - chmod +x v_sink_install.sh - ./v_sink_install.sh
\ No newline at end of file |