diff options
author | 2018-08-29 20:21:23 -0700 | |
---|---|---|
committer | 2018-09-06 21:03:58 -0700 | |
commit | ca9d5080794355f7267f350a9364162920ed4fcf (patch) | |
tree | baafda54df129a57ec5d100635412ed7da205cdd /tosca/vCPE/vbrgemu | |
parent | 2380377cffe9385c16228a8a3bceb1320ac6e718 (diff) |
Add TOSCA templates for vCPE use case
Adds initial TOSCA files and script to generate
CSAR files for the vCPE use case VNFs.
Change-Id: Idb85153e8e18b9c21f24aa6ef92d887e17da07c3
Issue-ID: INT-536
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Diffstat (limited to 'tosca/vCPE/vbrgemu')
-rw-r--r-- | tosca/vCPE/vbrgemu/MainServiceTemplate.mf | 8 | ||||
-rw-r--r-- | tosca/vCPE/vbrgemu/MainServiceTemplate.yaml | 291 |
2 files changed, 299 insertions, 0 deletions
diff --git a/tosca/vCPE/vbrgemu/MainServiceTemplate.mf b/tosca/vCPE/vbrgemu/MainServiceTemplate.mf new file mode 100644 index 00000000..22f13e9f --- /dev/null +++ b/tosca/vCPE/vbrgemu/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vbrgemu + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +source: MainServiceTemplate.yaml + diff --git a/tosca/vCPE/vbrgemu/MainServiceTemplate.yaml b/tosca/vCPE/vbrgemu/MainServiceTemplate.yaml new file mode 100644 index 00000000..a895b571 --- /dev/null +++ b/tosca/vCPE/vbrgemu/MainServiceTemplate.yaml @@ -0,0 +1,291 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbrgemu + template_version: "1.0" + template_author: onap +description: vCPE_vbrgemu + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbrgemu: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-4444-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-4444-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbrgemu ] ] + default: vcpe_vbrgemu + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbrgemu +# requirements: +# virtual_link: [ Cp_vbrgemu_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + vbrgemu_bng_private_net_id: + type: string + description: Private network that connects vBRGEMU to vBNG + default: zdfw1bngin01_private + vbrgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + vbrgemu_private_ip_0: + type: string + description: Private IP address towards the BRGEMU-BNG network + default: 10.3.0.4 + vbrgemu_name_0: + type: string + description: Name of the vBRGEMU + default: zdcpe1cpe01brgemu01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_BGREMU_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_BRGEMU + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip: + type: string + description: SDNC ip address used to set NAT + default: 10.0.7.1 + compile_state: + type: string + description: State to compile code or not (done, auto or build) + default: auto + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRGEMU to vBNG + VL_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: vbrgemu_bng_private_net_id} + cidr: { get_input: vbrgemu_bng_private_net_cidr } + dhcpEnabled: false + + # vbrgemu related + Cp_vbrgemu_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbrgemu_0 + #- virtual_link: VL_public + + Cp_vbrgemu_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbrgemu_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + #dataProcessingAccelerationLibrary: dpdk_2.2 + interfaceType: virtio + requirements: + - virtual_binding: VDU_vbrgemu_0 + - virtual_link: VL_vbrgemu_bng_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbrgemu_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbrgemu_name_0 } + description: vbrgemu + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + vbrgemu_bng_private_net_cidr: { get_input: vbrgemu_bng_private_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata vbrgemu_bng_private_net_cidr)" > /opt/config/brgemu_bng_private_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_brgemu_install.sh + cd /opt + chmod +x v_brgemu_install.sh + ./v_brgemu_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schema-version": "0", "schema-location": "", "platform-id": "generic", "mandatory": true, "configuration-value": "2 MB"}' + numberOfPages: '{"schema-version": "0","schema-location": "","platform-id": "generic","mandatory": true,"configuration-value": 1024}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage |