Initial version vCPE TOSCA infra template 81/14681/1
authordfilppi <dewayne@cloudify.co>
Thu, 21 Sep 2017 20:05:01 +0000 (20:05 +0000)
committerdfilppi <dewayne@cloudify.co>
Thu, 21 Sep 2017 20:05:01 +0000 (20:05 +0000)
Change-Id: Ib1c6709b9802a2c2d439e1aaa10cc2faa1117af1
Issue-id: INT-93
Signed-off-by: DeWayne Filppi <dewayne@cloudify.co>
tosca/vCPE/infra/base_vcpe_infra_rackspace_tosca.yaml [new file with mode: 0644]

diff --git a/tosca/vCPE/infra/base_vcpe_infra_rackspace_tosca.yaml b/tosca/vCPE/infra/base_vcpe_infra_rackspace_tosca.yaml
new file mode 100644 (file)
index 0000000..ddd8432
--- /dev/null
@@ -0,0 +1,383 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+  - aria-1.0
+  - https://gerrit.onap.org/r/gitweb?p=so.git;a=blob_plain;f=aria/multivim-plugin/src/main/python/multivim-plugin/plugin.yaml
+
+topology_template:
+  description: TOSCA template to deploy vCPE Infrastructue emlements (vAAA, vDHCP, vDNS_DHCP, webServer_sink) for ONAP
+
+  inputs:
+    multivim_config:
+      type: onap.multivim.datatypes.Config
+      description: MultiVIM connection configuration
+    vcpe_image_name:
+      type: string
+      description: Image to be used for compute instance
+    vcpe_flavor_name:
+      type: string
+      description: Type of instance (flavor) to be used
+    public_net_id:
+      type: string
+      description: Public network that enables remote connection to VNF
+    onap_private_net_id:
+      type: string
+      description: Private network that connects ONAP components and the VNF
+    onap_private_subnet_id:
+      type: string
+      description: Private sub-network that connects ONAP components and the VNF
+    onap_private_net_cidr:
+      type: string
+      description: The CIDR of the protected private network
+    cpe_signal_net_id:
+      type: string
+      description: Private network that connects vAAA with vDNSs
+    cpe_signal_net_cidr:
+      type: string
+      description: The CIDR of the vAAA private network
+    cpe_public_net_id:
+      type: string
+      description: Private network that connects vGW to emulated internet
+    cpe_public_net_cidr:
+      type: string
+      description: The CIDR of the vCPE public
+    vaaa_private_ip_0:
+      type: string
+      description: Private IP address that is assigned to the vAAA to communicate with the vCPE components 
+    vaaa_private_ip_1:
+      type: string
+      description: Private IP address that is assigned to the vAAA to communicate with ONAP components
+    vdns_private_ip_0:
+      type: string
+      description: Private IP address that is assigned to the vDNS to communicate with the vCPE components
+    vdns_private_ip_1:
+      type: string
+      description: Private IP address that is assigned to the vDNS to communicate with ONAP components
+    vdhcp_private_ip_0:
+      type: string
+      description: Private IP address that is assigned to the vDHCP to communicate with the vCPE components
+    vdhcp_private_ip_1:
+      type: string
+      description: Private IP address that is assigned to the vDHCP to communicate with ONAP components
+    vweb_private_ip_0:
+      type: string
+      description: Private IP address that is assigned to the vWEB to communicate with the vGWs 
+    vweb_private_ip_1:
+      type: string
+      description: Private IP address that is assigned to the vWEB to communicate with ONAP components
+    vaaa_name_0:
+      type: string
+      description: Name of the vAAA
+    vdns_name_0:
+      type: string
+      description: Name of the vDNS
+    vdhcp_name_0:
+      type: string
+      description: Name of the vDHCP
+    vweb_name_0:
+      type: string
+      description: Name of the vWEB 
+    vnf_id:
+      type: string
+      description: The VNF ID is provided by ONAP
+    vf_module_id:
+      type: string
+      description: The vAAA Module ID is provided by ONAP
+    dcae_collector_ip:
+      type: string
+      description: IP address of the DCAE collector
+    dcae_collector_port:
+      type: string
+      description: Port of the DCAE collector
+    key_name:
+      type: string
+      description: Public/Private key pair name
+    pub_key:
+      type: string
+      description: Public key to be installed on the compute instance
+    repo_url_blob:
+      type: string
+      description: URL of the repository that hosts the demo packages
+    repo_url_artifacts:
+      type: string
+      description: URL of the repository that hosts the demo packages
+    install_script_version:
+      type: string
+      description: Version number of the scripts that install the vFW demo app
+    demo_artifacts_version:
+      type: string
+      description: Artifacts (jar, tar.gz) version used in demo vnfs
+    cloud_env:
+      type: string
+
+  
+##################
+#                #
+# NODE TEMPLATES #
+#                #
+##################
+
+  node_templates:
+
+    my_keypair:
+      type: onap.multivim.nodes.KeyPair
+      properties:
+        resource_id: vcpe_kp
+        multivim_config:
+          custom_configuration:
+            public_key: { get_input: pub_key }
+        multivim_config: { get_input: multivim_config }
+
+    onap_private_network:
+      type: onap.multivim.nodes.Network
+      properties:
+        use_external_resource: true
+        resource_id: { get_input: onap_private_net_id }
+        multivim_config: { get_input: multivim_config }
+  
+    onap_private_subnet:
+      type: onap.multivim.nodes.Subnet
+      properties:
+        use_external_resource: true
+        resource_id: { get_input: onap_private_subnet_id }
+        multivim_config: { get_input: multivim_config }
+
+    cpe_signal_network:
+      type: onap.multivim.nodes.Network
+      properties:
+        resource_id: { get_input: cpe_signal_net_id }
+        multivim_config: { get_input: multivim_config }
+
+    cpe_signal_subnet:
+      type: onap.multivim.nodes.Subnet
+      properties:
+        resource_id: { get_input: cpe_signal_net_id }
+        subnet:
+          cidr: { get_input: cpe_signal_net_cidr }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_signal_network
+
+    cpe_public_network:
+      type: onap.multivim.nodes.Network
+      properties:
+        resource_id: { get_input: cpe_public_net_id }
+        multivim_config: { get_input: multivim_config }
+
+    cpe_public_subnet:
+      type: onap.multivim.nodes.Subnet
+      properties:
+        resource_id: { get_input: cpe_public_net_id }
+        subnet:
+          cidr: { get_input: cpe_public_net_cidr }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_public_network
+
+    # Virtual AAA server Instantiation
+    vaaa_private_0_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vaaa_private_ip_0 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_signal_network
+        - subnet: cpe_signal_subnet
+
+    vaaa_private_1_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vaaa_private_ip_1 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: onap_private_network
+        - subnet: onap_private_subnet
+
+    # NOTE: may need management_network_name
+    vaaa_0:
+      type: onap.multivim.nodes.Server
+      properties:
+        image: { get_input: vcpe_image_name }
+        flavor: { get_input: vcpe_flavor_name }
+        resource_id: { get_input: vaaa_name_0 }
+        management_network_name: onap_private_network
+        multivim_config: { get_input: multivim_config }
+        server:
+          metadata: {vnf_id: { get_input: vnf_id }, vf_module_id: { get_input: vf_module_id }}
+          userdata: { concat: [
+                              "#!/bin/bash\n",
+                              "mkdir /opt/config\n",
+                              "echo ",{ get_input: dcae_collector_ip}," > /opt/config/dcae_collector_ip.txt\n",
+                              "echo ",{ get_input: dcae_collector_port}," > /opt/config/dcae_collector_port.txt\n",
+                              "echo ",{ get_input: vaaa_private_ip_0}," > /opt/config/cpe_signal_net_ipaddr.txt\n",
+                              "echo ",{ get_input: vaaa_private_ip_1}," > /opt/config/oam_ipaddr.txt\n",
+                              "echo ",{ get_input: onap_private_net_cidr}," > /opt/config/oam_cidr.txt\n",
+                              "echo ",{ get_input: cpe_signal_net_cidr}," > /opt/config/cpe_signal_net_cidr.txt\n",
+                              "echo ",{ get_input: repo_url_blob}," > /opt/config/repo_url_blob.txt\n",
+                              "echo ",{ get_input: repo_url_artifacts}," > /opt/config/repo_url_artifacts.txt\n",
+                              "echo ",{ get_input: demo_artifacts_version}," > /opt/config/demo_artifacts_version.txt\n",
+                              "echo ",{ get_input: install_script_version}," > /opt/config/install_script_version.txt\n",
+                              "echo ",{ get_input: cloud_env}," > /opt/config/cloud_env.txt\n",
+                              "curl -k ",{get_input: repo_url_blob},"/org.onap.demo/vnfs/vcpe/",{get_input: install_script_version},"/v_aaa_install.sh -o /opt/v_aaa_install.sh\n",
+                              "cd /opt\n",
+                              "chmod +x v_aaa_install.sh\n",
+                              "./v_aaa_install.sh\n"
+                            ] 
+                   }
+      requirements:
+        - key_pair: my_keypair
+        - port: vaaa_private_0_port
+        - port: vaaa_private_1_port
+
+    # Virtual DNS Instantiation
+    vdns_private_0_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vdns_private_ip_0 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_public_network
+
+    vdns_private_1_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vdns_private_ip_1 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: onap_private_network
+
+    vdns_0:
+      type: onap.multivim.nodes.Server
+      properties:
+        image: { get_input: vcpe_image_name }
+        flavor: { get_input: vcpe_flavor_name }
+        resource_id: { get_input: vdns_name_0 }
+        management_network_name: onap_private_network
+        multivim_config: { get_input: multivim_config }
+        server:
+          metadata: {vnf_id: { get_input: vnf_id }, vf_module_id: { get_input: vf_module_id }}
+          userdata: { concat: [
+                              "#!/bin/bash\n",
+                              "mkdir /opt/config\n",
+                              "echo ",{get_input: vdns_private_ip_1}," > /opt/config/oam_ipaddr.txt\n",
+                              "echo ",{get_input: vdns_private_ip_0}," > /opt/config/cpe_public_net_ipaddr.txt\n",
+                              "echo ",{get_input: onap_private_net_cidr}," > /opt/config/oam_cidr.txt\n",
+                              "echo ",{get_input: cpe_public_net_cidr}," > /opt/config/cpe_public_net_cidr.txt\n",
+                              "echo ",{get_input: repo_url_blob}," > /opt/config/repo_url_blob.txt\n",
+                              "echo ",{get_input: repo_url_artifacts}," > /opt/config/repo_url_artifacts.txt\n",
+                              "echo ",{get_input: demo_artifacts_version}," > /opt/config/demo_artifacts_version.txt\n",
+                              "echo ",{get_input: install_script_version}," > /opt/config/install_script_version.txt\n",
+                              "echo ",{get_input: cloud_env}," > /opt/config/cloud_env.txt\n",
+                              "curl -k ",{get_input: repo_url_blob},"/org.onap.demo/vnfs/vcpe/",{get_input: install_script_version},"/v_dns_install.sh -o /opt/v_dns_install.sh\n",
+                              "cd /opt\n",
+                              "chmod +x v_dns_install.sh\n",
+                              "./v_dns_install.sh\n"
+                            ]
+                   }
+      requirements:    
+        - port: vdns_private_0_port
+        - port: vdns_private_1_port
+
+  # Virtual DHCP Instantiation
+    vdhcp_private_0_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vdhcp_private_ip_0 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_signal_network
+        - subnet: cpe_signal_subnet
+
+    vdhcp_private_1_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vdhcp_private_ip_1 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - subnet: onap_private_subnet
+
+    vdhcp_0:
+      type: onap.multivim.nodes.Server
+      properties:
+        image: { get_input: vcpe_image_name }
+        flavor: { get_input: vcpe_flavor_name }
+        resource_id: { get_input: vdhcp_name_0 }
+        management_network_name: onap_private_network
+        multivim_config: { get_input: multivim_config }
+        server:
+          metadata: {vnf_id: { get_input: vnf_id }, vf_module_id: { get_input: vf_module_id }}
+          userdata: { concat: [
+                              "#!/bin/bash\n",
+                              "mkdir /opt/config\n",
+                              "echo ",{get_input: vdns_private_ip_1}," > /opt/config/oam_ipaddr.txt\n",
+                              "echo ",{get_input: vdhcp_private_ip_0}," > /opt/config/cpe_signal_ipaddr.txt\n",
+                              "echo ",{get_input: onap_private_net_cidr}," > /opt/config/oam_cidr.txt\n",
+                              "echo ",{get_input: cpe_signal_net_cidr}," > /opt/config/cpe_signal_net_cidr.txt\n",
+                              "echo ",{get_input: repo_url_blob}," > /opt/config/repo_url_blob.txt\n",
+                              "echo ",{get_input: repo_url_artifacts}," > /opt/config/repo_url_artifacts.txt\n",
+                              "echo ",{get_input: demo_artifacts_version}," > /opt/config/demo_artifacts_version.txt\n",
+                              "echo ",{get_input: install_script_version}," > /opt/config/install_script_version.txt\n",
+                              "echo ",{get_input: cloud_env}," > /opt/config/cloud_env.txt\n",
+                              "curl -k ",{get_input: repo_url_blob},"/org.onap.demo/vnfs/vcpe/",{get_input: install_script_version},"/v_dhcp_install.sh -o /opt/v_dhcp_install.sh\n",
+                              "cd /opt\n",
+                              "chmod +x v_dhcp_install.sh\n",
+                              "./v_dhcp_install.sh\n"
+                            ]
+                    }
+      requirements:
+        - key_pair: my_keypair
+        - port: vdhcp_private_0_port
+        - port: vdhcp_private_1_port
+
+    # vWEB instantiaion
+    vweb_private_0_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vweb_private_ip_0 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: cpe_public_network
+        - subnet: cpe_public_subnet
+
+    vweb_private_1_port:
+      type: onap.multivim.nodes.Port
+      properties:
+        fixed_ip: { get_input: vweb_private_ip_1 }
+        multivim_config: { get_input: multivim_config }
+      requirements:
+        - network: onap_private_network
+        - subnet: onap_private_subnet
+
+    vweb_0:
+      type: onap.multivim.nodes.Server
+      properties:
+        image: { get_input: vcpe_image_name }
+        flavor: { get_input: vcpe_flavor_name }
+        resource_id: { get_input: vweb_name_0 }
+        management_network_name: onap_private_network
+        multivim_config: { get_input: multivim_config }
+        server:
+          metadata: {vnf_id: { get_input: vnf_id }, vf_module_id: { get_input: vf_module_id }}
+          userdata: { concat: [
+                               "#!/bin/bash\n",
+                               "mkdir /opt/config\n",
+                               "echo ",{get_input: vweb_private_ip_1}," > /opt/config/oam_ipaddr.txt\n",
+                               "echo ",{get_input: vweb_private_ip_0}," > /opt/config/cpe_public_ipaddr.txt\n",
+                               "echo ",{get_input: onap_private_net_cidr}," > /opt/config/oam_cidr.txt\n",
+                               "echo ",{get_input: cpe_public_net_cidr}," > /opt/config/cpe_public_net_cidr.txt\n",
+                               "echo ",{get_input: repo_url_blob}," > /opt/config/repo_url_blob.txt\n",
+                               "echo ",{get_input: repo_url_artifacts}," > /opt/config/repo_url_artifacts.txt\n",
+                               "echo ",{get_input: demo_artifacts_version}," > /opt/config/demo_artifacts_version.txt\n",
+                               "echo ",{get_input: install_script_version}," > /opt/config/install_script_version.txt\n",
+                               "echo ",{get_input: cloud_env}," > /opt/config/cloud_env.txt\n",
+                               "curl -k ",{get_input: repo_url_blob},"/org.onap.demo/vnfs/vcpe/",{get_input: install_script_version},"/v_web_install.sh -o /opt/v_web_install.sh\n",
+                               "cd /opt\n",
+                               "chmod +x v_web_install.sh\n",
+                               "./v_web_install.sh\n"
+                            ]
+                  }
+      requirements:
+        - key_pair: my_keypair
+        - port: vweb_private_0_port
+        - port: vweb_private_1_port
+