Tacker in Kolla

Tacker in Kolla

“Tacker is an OpenStack service for NFV Orchestration with a general purpose VNF Manager to deploy and operate Virtual Network Functions (VNFs) and Network Services on an NFV Platform. It is based on ETSI MANO Architectural Framework.” [1].

Overview

As of the Pike release, tacker requires the following services to be enabled to operate correctly.

  • Core compute stack (nova, neutron, glance, etc)
  • Heat
  • Mistral + Redis
  • Barbican (Required only for multinode)

Optionally tacker supports the following services and features.

  • Aodh
  • Ceilometer
  • Networking-sfc
  • Opendaylight

Compatibility

Tacker is supported by the following distros and install_types.

  • Centos, Redhat and Oraclelinux.
    • Source and binary images.
  • Debian and Ubuntu.
    • Only source images.

Preparation and Deployment

By default tacker and required services are disabled in the group_vars/all.yml file. In order to enable them, you need to edit the file /etc/kolla/globals.yml and set the following variables:

Note

Heat is enabled by default, ensure it is not disabled.

enable_tacker: "yes"
enable_barbican: "yes"
enable_mistral: "yes"
enable_redis: "yes"

Warning

Barbican is required in multinode deployments to share VIM fernet_keys. If not enabled, only one tacker-server host will have the keys on it and any request made to a different tacker-server will fail with a similar error as No such file or directory /etc/tacker/vim/fernet_keys

Deploy tacker and related services.

$ kolla-ansible deploy

Verify

Generate the credentials file.

$ kolla-ansible post-deploy

Source credentials file.

$ . /etc/kolla/admin-openrc.sh

Create base neutron networks and glance images.

$ sh tools/init-runonce

Note

init-runonce file is located in $PYTHON_PATH/kolla-ansible folder in kolla-ansible installation from pip.

In kolla-ansible git repository a tacker demo is present in kolla-ansible/contrib/demos/tacker/ that will create a very basic VNF from a cirros image in demo-net network.

Install python-tackerclient.

Note

Barbican, heat and mistral python clients are in tacker’s requirements and will be installed as dependency.

$ pip install python-tackerclient

Execute deploy-tacker-demo script to initialize the VNF creation.

$ sh deploy-tacker-demo

Tacker demo script will create sample VNF Descriptor (VNFD) file, then register a default VIM, create a tacker VNFD and finally deploy a VNF from the previously created VNFD.

After a few minutes, the tacker VNF is ACTIVE with a cirros instance running in nova and with its corresponding heat stack CREATION_COMPLETE.

Verify tacker VNF status is ACTIVE.

$ tacker vnf-list
+--------------------------------------+------------------+-----------------------+--------+--------------------------------------+--------------------------------------+
| id                                   | name             | mgmt_url              | status | vim_id                               | vnfd_id                              |
+--------------------------------------+------------------+-----------------------+--------+--------------------------------------+--------------------------------------+
| c52fcf99-101d-427b-8a2d-c9ef54af8b1d | kolla-sample-vnf | {"VDU1": "10.0.0.10"} | ACTIVE | eb3aa497-192c-4557-a9d7-1dff6874a8e6 | 27e8ea98-f1ff-4a40-a45c-e829e53b3c41 |
+--------------------------------------+------------------+-----------------------+--------+--------------------------------------+--------------------------------------+

Verify nova instance status is ACTIVE.

$ openstack server list
+--------------------------------------+-------------------------------------------------------+--------+--------------------+--------+-----------------------------------------------------------------------------------------------------------------------+
| ID                                   | Name                                                  | Status | Networks           | Image  | Flavor                                                                                                                |
+--------------------------------------+-------------------------------------------------------+--------+--------------------+--------+-----------------------------------------------------------------------------------------------------------------------+
| d2d59eeb-8526-4826-8f1b-c50b571395e2 | ta-cf99-101d-427b-8a2d-c9ef54af8b1d-VDU1-fchiv6saay7p | ACTIVE | demo-net=10.0.0.10 | cirros | tacker.vnfm.infra_drivers.openstack.openstack_OpenStack-c52fcf99-101d-427b-8a2d-c9ef54af8b1d-VDU1_flavor-yl4bzskwxdkn |
+--------------------------------------+-------------------------------------------------------+--------+--------------------+--------+-----------------------------------------------------------------------------------------------------------------------+

Verify Heat stack status is CREATE_COMPLETE.

$ openstack stack list
+--------------------------------------+----------------------------------------------------------------------------------------------+----------------------------------+-----------------+----------------------+--------------+
| ID                                   | Stack Name                                                                                   | Project                          | Stack Status    | Creation Time        | Updated Time |
+--------------------------------------+----------------------------------------------------------------------------------------------+----------------------------------+-----------------+----------------------+--------------+
| 289a6686-70f6-4db7-aa10-ed169fe547a6 | tacker.vnfm.infra_drivers.openstack.openstack_OpenStack-c52fcf99-101d-427b-8a2d-c9ef54af8b1d | 1243948e59054aab83dbf2803e109b3f | CREATE_COMPLETE | 2017-08-23T09:49:50Z | None         |
+--------------------------------------+----------------------------------------------------------------------------------------------+----------------------------------+-----------------+----------------------+--------------+

After the correct functionality of tacker is verified, tacker demo can be cleaned up executing cleanup-tacker script.

$ sh cleanup-tacker

[1] https://docs.openstack.org/tacker/latest/

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.