# VNF-D examples
## VNFD example
#### sample-vnfd.yml
```
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Demo example
metadata:
template_name: sample-tosca-vnfd
topology_template:
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 512 MB
disk_size: 1 GB
properties:
image: cirros-0.4.0-x86_64-disk
availability_zone: nova
mgmt_driver: noop
config: |
param0: key1
param1: key2
CP1:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
order: 0
anti_spoofing_protection: false
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU1
VL1:
type: tosca.nodes.nfv.VL
properties:
network_name: nfv
vendor: Tacker
```
#### tosca-vnfd-vip.yaml
[link-github](https://github.com/openstack/tacker/blob/master/samples/tosca-templates/vnfd/tosca-vnfd-vip.yaml)
```
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: |
Demo example with virtural IP.
The VCP is used to grab an IP which will be used as an virtual IP as CP1 and CP2.
metadata:
template_name: sample-tosca-vnfd-vip
topology_template:
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 512 MB
disk_size: 1 GB
properties:
image: cirros-0.4.0-x86_64-disk
availability_zone: nova
mgmt_driver: noop
config: |
param0: key1
param1: key2
CP1:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
anti_spoofing_protection: true
security_groups:
- default
ip_address: 10.10.1.11
order: 0
allowed_address_pairs:
- ip_address: 10.10.1.13
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU1
VDU2:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 512 MB
disk_size: 1 GB
properties:
image: cirros-0.4.0-x86_64-disk
availability_zone: nova
mgmt_driver: noop
config: |
param0: key1
param1: key2
CP2:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
anti_spoofing_protection: true
security_groups:
- default
ip_address: 10.10.1.12
order: 0
allowed_address_pairs:
- ip_address: 10.10.1.13
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU2
VCP:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
anti_spoofing_protection: true
security_groups:
- default
ip_address: 10.10.1.13
requirements:
- virtualLink:
node: VL1
VL1:
type: tosca.nodes.nfv.VL
properties:
network_name: net1
vendor: Tacker
```
#### spidernet-certified-vnfd-assigned-ip-existing-net.yml
```
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Demo example, Spidernet with cert, fixed ip, joing existing net
metadata:
template_name: spiernet-cert-tosca-assigned-ip-existing-netnfd
topology_template:
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 8192 MB
disk_size: 100 GB
properties:
image: spidernet-with-license
availability_zone: nova
mgmt_driver: noop
config: |
param0: key1
param1: key2
CP1:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
ip_address: 11.0.0.212
type: vnic
order: 0
anti_spoofing_protection: false
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU1
VL1:
type: tosca.nodes.nfv.VL
properties:
network_name: spidernet-private-net
vendor: Tacker
```
#### spidernet-certified-vnfd-assigned-ip-create-net.yml
```
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Demo example, Spidernet with cert, fixed ip, create net
metadata:
template_name: spiernet-cert-tosca-assigned-ip-create-net-nfd
topology_template:
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 8192 MB
disk_size: 100 GB
properties:
image: spidernet-with-license
availability_zone: nova
mgmt_driver: noop
config: |
param0: key1
param1: key2
CP1:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
ip_address: 11.0.0.212
type: vnic
order: 0
anti_spoofing_protection: false
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU1
VL1:
type: tosca.nodes.nfv.VL
properties:
network_name: spidernet-private-net
vendor: Tacker
ip_version: 4
cidr: '11.0.0.0/24'
start_ip: '11.0.0.2'
end_ip: '11.0.0.253'
gateway_ip: '11.0.0.254'
```
## Openstack Tacker CLI
```
#Create a sample VNFD
openstack vnf descriptor create --vnfd-file sample-vnfd.yaml samplevnfd
#Create a VNF
openstack vnf create --vnfd-name samplevnfd samplevnf
#Some basic Tacker commands
openstack vim list
openstack vnf descriptor list
openstack vnf list
openstack vnf show samplevnf
```