Skip to content

Instantly share code, notes, and snippets.

@atyronesmith
Last active June 1, 2016 20:47
Show Gist options
  • Select an option

  • Save atyronesmith/f0dd152a541d47fa2c2fed224a80d5be to your computer and use it in GitHub Desktop.

Select an option

Save atyronesmith/f0dd152a541d47fa2c2fed224a80d5be to your computer and use it in GitHub Desktop.
Sample VNFD with notes on translating to tacker
escription: 'OPNFV-Demo-flavor
'
heat_template_version: '2013-05-23'
outputs: {}
parameters:
image: {default: cirros, type: string}
service_type: {default: router, type: string}
resources:
CP1:
properties: {network: net_mgmt}
type: OS::Neutron::Port
CP2:
properties: {network: pkt_in, port_security_enabled: true}
type: OS::Neutron::Port
CP3:
properties: {network: pkt_out, port_security_enabled: true}
type: OS::Neutron::Port
VDU1:
properties:
availability_zone: nova
config_drive: false
flavor: {get_resource: VDU1_flavor}
image: {get_param: image}
networks:
- port: {get_resource: CP1}
- port: {get_resource: CP2}
- port: {get_resource: CP3}
user_data_format: SOFTWARE_CONFIG
type: OS::Nova::Server
VDU1_flavor:
properties: {disk: 1, ram: 512, vcpus: 1}
type: OS::Nova::Flavor
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: OPNFV-Demo-flavor
# NOT USED
#imports:
# - tacker_nfv_defs.yaml
# - tacker_defs.yaml
metadata:
template_name: demo-flavor
ID: OPNFV Demo CloudRouter
vendor: Red Hat Inc
version: 1.0
node_types:
tosca.nodes.nfv.VNF.CloudRouter:
derived_from: tosca.nodes.nfv.VNF
capabilities:
forwarder1:
type: tosca.capabilities.nfv.Forwarder
forwarder2:
type: tosca.capabilities.nfv.Forwarder
forwarder3:
type: tosca.capabilities.nfv.Forwarder
forwarder4:
type: tosca.capabilities.nfv.Forwarder
topology_template:
substitution_mappings:
node_type: tosca.nodes.nfv.VNF.CloudRouter
requirements:
virtualLink1: [CP1, virtualLink]
virtualLink2: [CP2, virtualLink]
virtualLink3: [CP3, virtualLink]
virtualLink4: [CP4, virtualLink]
virtualLinkMgmt: [CP5, virtualLink]
capabilities:
forwarder1: [CP1, forwarder]
forwarder2: [CP2, forwarder]
forwarder3: [CP3, forwarder]
forwarder4: [CP4, forwarder]
inputs:
service_type:
type: string
default: router
image:
type: string
default: cirros
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
disk_size: 1 GB
mem_size: 512 MB
num_cpus: 1
properties:
service_type: { get_input: service_type }
image: { get_input: image }
availability_zone: nova
mgmt_driver: noop
CP1:
type: tosca.nodes.nfv.CP
properties:
requirements:
- virtualLink: VL_NET_MGMT
- virtualBinding:
node: VDU1
VL_NET_MGMT:
type: tosca.nodes.nfv.VL
description: Network for network management
properties:
network_name: net_mgmt
vendor: Tacker
CP2:
type: tosca.nodes.nfv.CP.Tacker
properties:
anti_spoofing_protection: true
requirements:
- virtualLink: pkt_in
- virtualBinding:
node: VDU1
pkt_in:
type: tosca.nodes.nfv.VL
description: Datapath that exists in test environment
properties:
network_name: pkt_in
vendor: Tacker
CP3:
type: tosca.nodes.nfv.CP.Tacker
properties:
anti_spoofing_protection: true
requirements:
- virtualLink: pkt_out_node
- virtualBinding:
node: VDU1
pkt_out_node:
type: tosca.nodes.nfv.VL
description: Datapath that exists in test environment
properties:
network_name: pkt_out
vendor: Tacker
#
# Tacker requires a tosca.nodes.nfv.CP node to have a virtualBinding connection to a
# network. What this means is that if the NSD contains a requirement
# that matches to a requirement defined in the substituion_mappings section
# , you will need to add a network definition. That network definition
# will need to be connected to the CP node.
# For example,
#
# CP2:
# type: tosca.nodes.nfv.CP.Tacker
# properties:
# anti_spoofing_protection: false
# requirements:
# - virtualBinding:
# node: VDU1
#
# which has a substituion_mapping of "virtualLink2: [CP2, virtualLink]"
# and is referenced in the NSD as "- virtualLink2: VL2"
# should become:
#
# CP2:
# # The Tacker type is needed to use ant_spoofing_protection
# type: tosca.nodes.nfv.CP.Tacker
# properties:
# anti_spoofing_protection: false
# requirements:
# - virtualBinding:
# node: VDU1
# - virtualLink: # Added by Tacker driver
# node: virualLink2 # Added by Tacker driver
# # Added by Tacker driver
# virtualLink2: # Added by Tacker driver
# type: tosca.nodes.nfv.VL # Added by Tacker driver
# properties: # Added by Tacker driver
# network_name: VL2 # Added by Tacker driver
# vendor: Tacker # Added by Tacker driver
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment