
- As no progress on code side in stein cycle, so moving tacker-studio.rst for train cycle. - Remove placeholder spec. Co-Authored-By: Nguyen Hai <nguyentrihai93@gmail.com> Change-Id: I8054f7db90eabd5ca09273f37ae6389ccc086705
8.5 KiB
Tacker Studio
https://blueprints.launchpad.net/tacker/+spec/tacker-studio
This spec describes the plan to implement a new horizon panel for the NFV dashboard that helps to visually design TOSCA templates for Tacker.
+----------------------+ +---------------------+
| | +---> Django form |
| NFV dashboard | | | to define VNFD, |
| | | | VNFFGD, NSD |
+---------+------------+ | | properties |
| | +---------------------+
+---------v------------+ | +---------------------+
| | | | Save to files |
| +---+ | & store in |
| Django Views | | Tacker DB or in a |
| +-------> tacker-horizon's |
| | | static dir or |
| +-+ | an NFS share(+) |
+-----------+-----+----+ | +---------------------+
| | | +---------------------+
| | +-----> Load and display |
| | | saved files content |
| | +---------------------+
| | +---------------------+
| +------------> Export and import |
| | external YAML files |
| +---------------------+
| +---------------------+
+------------------> Onboard templates |
+----------+----------+
|
+-----------------------------------------v----------+
| |
| Tacker API |
| |
+----------------------------------------------------+
Problem description
In order to launch a new VNF, VNFFG, or NS, we have to manually prepare a TOSCA template YAML1 file which may have typos, unexpected indents, wrong fields etc... This spec proposes to build a web interface (horizon panel2) that helps us to design, store, and export VNFD, VNFFGD, NSD templates beautifully with less errors.
Proposed changes
A new horizon panel will be implemented and plugged into the NFV dashboard 3 which contains a form for generating each kind of descriptors (VNFD, VNFFGD, NSD). The forms will have these input fields along with the template attributes (name, description etc...):
+----------------+-------------------------+
| Resource type | Description |
+================+=========================+
| VDU | Virtual Deployment Unit |
+----------------+-------------------------+
| CP | Connection Point |
+----------------+-------------------------+
| VL | Virtual Link |
+----------------+-------------------------+
| FIP | Floating IPs |
+----------------+-------------------------+
| policies | Policies |
+----------------+-------------------------+
and their properties.
The above forms will be implemented based on the Django form. This forms will be integrated to the above panel and give us these abilities:
- Input information for the VDU (Tacker's resources and properties)
- Save and store designed templates to files (YAML format) in a tacker-horizon's static directory,
A Django view (controller) can help us to store the designed templates into files in a tacker-horizon's static directory. If we do it this way, we keep tacker-horizon database independant from the Tacker server.
The directory that contains the uploaded templates can be set in the Django's setting of tacker-horizon as following4:
MEDIA_ROOT = /path/to/uploaded/templates/
- (+) If the user decides to put multiple tacker-horizon instances behind an
-
HAProxy, It's his job to make sure the templates are replicated across those instances. And, it's out of scope of this spec.
- (+) The path can be a local directory where we place tacker-horizon or an NFS
-
path.
- (+) Future works will store the templates in the Tacker's database and we
-
can use tacker API to query.
- Load, parse and display the saved templates (YAML) on the panel view,
- Export designed templates to yaml file
A YAML parser python module needs to be implemented to handle template to YAML conversion. Also, another module will be used to process the downloading of the YAML file.
- Import and display external YAML files on the panel,
With the YAML parser and upload/download module, we can provide the ability to import the external YAML files into Tacker Studio and re-config them (modify their properties).
- Onboard designed templates (VNFD, VNFFGD, NSD) directly to Tacker server.
Tacker Studio will call the Tacker's API to onboard the designed templates.
Alternatives
- The Heat Dashboard project5 employs a drag and drop UI to generate heat templates which is quite advanced and complicated in the users point of view.
- Open Source MANO (OSM) has developed a GUI6 that allows users to generate VNFD and NSD templates (packages) using a very simple web forms.
Data model impact
In the future work, we can save the designed templates into the Tacker database using Tacker API. In that case, a new table need to be created to store the templates. The table model will be as following:
+----------------------------------------------------------------+
| Table name: tosca_templates |
+------------------+--------+------------------------------------+
| Column | Type | Default value |
+------------------+--------+------------------------------------+
| template_name | string | |
+------------------+--------+------------------------------------+
| tosca_version | string | tosca_simple_profile_for_nfv_1_0_0 |
+------------------+--------+------------------------------------+
| template_type | int | 0 |
+------------------+--------+------------------------------------+
| template_content | text | |
+------------------+--------+------------------------------------+
Note: template_type values are:
- 0: VNFD
- 1: VNFFGD
- 2: NSD
REST API impact
A set of new Tacker API functions needed to be made to manipulate the new tosca_templates table (CRUD).
Security impact
None
Notifications impact
None
Other end user impact
None
Performance Impact
None
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
Trinh Nguyen <dangtrinhnt@gmail.com>
Work Items
- Buil up a new Horizon panel that plug into NFV dashboard
- Develope a set of Python modules that provides these functionalities:
- Django forms to input TOSCA template properties for Tacker,
- Export to yaml file,
- Import yaml files and display them,
- Save the template to draft files stores inside tacker-horizon,
- Load the template from draft files and display it,
- Delete existing draft,
- Call tacker api to onboarding vnfd, vnffgd, nsd from the draft templates.
- Add the unit test cases of all of the above functions
- Write the user guide for Tacker Studio
Dependencies
None
Testing
A new set of unit test cases will need to be developed to check the generated templates whether they have the proper TOSCA form with correct syntax.
Documentation Impact
A new user guide for Tacker Studio will be added.