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/