Tacker Architecture

The following diagram shows the overview of the Tacker architecture

../_images/tacker-design.svg

Packages:

  • tacker - is the main package for Tacker project.

Components:

  • server - provides REST API and calls conductor via RPC.

  • tacker-conductor - implements all logics to operate VNF and call required drivers providing interface to NFV infrastructures.

  • VnfPm/VnfFmController - is responsible for exact actions to configure of PM/FM.

  • VnfLcmController - is responsible for exact actions to configure of LCM.

  • PrometheusPlugin - is responsible for exact actions to configure Prometheus.

  • VnfPm/VnfFmDriver - is responsible for send notification to NFVO.

  • VnfLcmDriver - is responsible for exact action to mgmt driver or infra driver.

  • MgmtDriver - is responsible for exact actions to configure VNFs.

  • InfraDriver - is responsible for exact actions to operate OpenStack or Kubernates.

APIs:

Tacker consists of three independent versions: Legacy, v1, and v2. Each version is separated by API and has the following functions.

Note

Tacker was originally designed to have both NFVO and VNFM functionalities that are now called Legacy API and the most parts have already been deprecated except for VIM Management which is left mainly for debugging purposes. ETSI NFV-SOL API, on the other hand, is a brand new design that provides Generic VNFM functionality in compliance with the ETSI NFV standard.

API versions

API type

Version

Function

ETSI NFV-SOL Version

Legacy API

Legacy

VIM Management

None

ESTI NFV-SOL API

v1

v1 VNF Lyfecycle Management

ESTI NFV-SOL API

v1

VNF Package Management

ESTI NFV-SOL API

v2

v2 VNF Lyfecycle Management

ESTI NFV-SOL API

v2

VNF Performance Management

ESTI NFV-SOL API

v2

VNF Fault Management

(*1)The functionality related to VNF LCM Coordination in Change current VNF package complies with ETSI NFV-SOL002 3.6.1.

(*2)OAUTH2_CLIENT_CERT in SubscriptionAuthentication is compliant with ETSI NFV-SOL013 3.5.1.

Note

See Tacker Horizon User Guide details on APIs supported by Tacker Horizon.

Supported versions:

[2024.1 Caracal / 2024.2 Dalmatian]

  • Kubernetes 1.26 - is supported from 2023.2 Bobcat to 2024.2 Dalmatian.

  • Helm 3.11 - is supported from 2023.2 Bobcat to 2024.2 Dalmatian.

  • Prometheus 2.45 - is supported from 2023.2 Bobcat onwards.

  • Alertmanager 0.26 - is supported from 2023.2 Bobcat onwards.

[2025.1 Epoxy]

  • Kubernetes 1.30 - is supported from 2025.1 Epoxy onwards.

  • Helm 3.15 - is supported from 2025.1 Epoxy onwards.

  • Prometheus 2.45 - is supported from 2023.2 Bobcat onwards.

  • Alertmanager 0.26 - is supported from 2023.2 Bobcat onwards.

Tacker Service

Tacker service is composed of two main processes:

  • tacker.service

  • tacker-conductor.service

tacker.service is a web server with Web Server Gateway Interface (WSGI) waiting for the REST API calls and it passes some operations to the tacker-conductor.service via RPC. Two types of API are supported; ETSI NFV-SOL API and Legacy API.

tacker-conductor.service implements some complicated logic and operations for orchestrations and VNF managements. It is mainly responsible for ETSI NFV-SOL based API operations and communicates with OpenStack or Kubernetes VIM by the infra drivers.

ETSI NFV-SOL Tacker Implementation

Tacker ETSI NFV-SOL based implementation is described as the following:

../_images/tacker-design-etsi.svg

When a REST API call is sent to tacker-server, some simple operations are executed in tacker-server with DB queries. The others are delegated to Conductor Server via RPC, and VNF Lifecycle Driver calls appropriate infra-driver to execute the actual logics for control and management of virtualised resources.

Below is an example of resources created/configured when Openstack InfraDriver is used.

../_images/openstack_infra_driver.svg

OpenStack InfraDriver uses Nova Instance, Cinder Storage, Neutron Port, etc. as resources to configure VNFC.

And below is an example of resources created/configured when Kubernetes/Helm InfraDriver is used.

../_images/k8s_helm_infra_driver.svg

Kubernetes/Helm InfraDriver uses Pods, Containers, etc. as resources to configure VNFC. In addition to these, Volume, ConfigMap, Secret, etc. are also used as resources to configure VNF Instance.

Tacker also provides a framework to enable lifecycle hooks called mgmt-driver. See v1 Management Driver and v2 Management Driver for details.

Note

VIM Management operations such as “Register VIM” and “Update VIM” are not defined in ETSI NFV-SOL. Users may need to use Legacy Tacker or an external NFVO.

Legacy Tacker Implementation

Legacy Tacker implementation is described as the following:

../_images/tacker-design-legacy.svg

When a REST API call is sent to tacker-server, VNFM and NFVO plugins handle the request and execute connected methods in each plugin. The NFVO plugin invokes required vim-driver methods.

Warning

Legacy API features other than the VIM feature have been deprecated. So only Nfvo receives the API from the tacker-client, but Vnfm and VNFMPlugin remain because they are used by v1 VNF Lyfecycle Management.