330 Commits

Author SHA1 Message Date
Hiromu Asahina
3779761ee4 Add sphinx plantUML pluging
This patch enables the sphinx PlantUML extension. As PlantUML is often
used in Tacker documents, authors of specs can re-use diagrams when
they write user guides with small revising.

To build plantUML with a sphinx PlantUML extension:
- Updated conf.py
- Updated requirements
- Added plantuml.jar

To use the sphinx PlantUML extension in Zuul jobs:
- Added bindep [1][2] to install graphviz
- Added pre.yaml to install java [3]
- Updated setup.cfg (this is necessary to place more than two
  directories at the project root)

Others:
- Added examples to 2023.2/placeholder.rst and template.rst

[1] https://github.com/openstack/cinder-specs/blob/master/bindep.txt
[2] https://docs.opendev.org/opendev/bindep/latest/readme.html
[3] https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/ensure-java

Change-Id: I72c2c7887ceba4734b367f7e5bc78921eb0ab0a1
2023-07-09 22:14:44 +09:00
Hiromu Asahina
28b1e8beca Add 2023.2 directory.
- Added 2023.2 directory
- Moved placeholder to 2023.2 directory

Change-Id: I2b02f985ef8427bd6804dcf4adc1f6d1ccae7e0a
2023-03-24 15:29:58 +09:00
Masaki Oyama
976b5dc034 Fix the DB impact to add the "downloading" field
Add data model impact for `downloading` field to count
the num of conductors downloading VNF packages.

Implements: blueprint support-multi-conductors-onboarding
Change-Id: I62d225bc74dde9c15267898f72893d4f11b8f6a0
2023-03-13 22:06:48 +00:00
Zuul
db50d2d634 Merge "Support multiple conductors onboarding" 2022-12-28 17:40:47 +00:00
Zuul
a7ddd13400 Merge "Improvement of error message" 2022-12-28 15:34:54 +00:00
Zuul
3c829d1aff Merge "SRBAC:Implement project personas in Tacker" 2022-12-28 11:52:27 +00:00
Masaki Oyama
9b5230b69b Support multiple conductors onboarding
This specification describes enhancement of managing VNF packages
by multiple Tacker conductors.

Implements: blueprint support-multi-conductors-onboarding
Change-Id: I549d072d79264642a403da3776fa824b2a0de8cf
2022-12-28 09:19:58 +00:00
Masaki Oyama
c86a8d0f2b Improvement of error message
This specification proposes two improvements about mgmt driver.
First is defining the interface of error handling
between Tacker and Mgmt Driver.
Second is improving the message of exception
raised when Ansible playbook fails.

Implements: blueprint improving-mgmt-driver-log
Change-Id: Iaa3a4f58f8fb8341eb49dd2a2b5248bf76612bf7
2022-12-28 07:45:57 +00:00
Manpreet Kaur
a46ebac663 SRBAC:Implement project personas in Tacker
In the OpenStack Zed cycle, the Technical committee proposed
introducing the project scope reader and member role [1].

A project-reader persona will operate within its project
resource, and have read-only access within the project.

A project-member is denoted by someone with a member role
on a project. It is intended to be used by end users who
consume resources within a project. It inherits all the
permissions of a project-reader.

In order to implement the project-member and project-reader role
we need to depreciate the existing "owner" rule which allows
any role to behave as the owner of the project.

This specification discusses the implementation of the project
personas (project-reader and project-member) in Tacker.

[1] https://review.opendev.org/c/openstack/governance/+/847418

Implements: bp implement-project-personas
Change-Id: I12b8168f14d1e0286df34a06c4f0020365e66308
2022-12-28 11:28:50 +05:30
Zuul
e2bd3d2c0a Merge "Enhancement of Tacker API Resource Access Control" 2022-12-28 05:23:36 +00:00
Zuul
4490b1dfeb Merge "Support Thresholds resource in PM Interface" 2022-12-28 05:13:59 +00:00
Yuta Kazato
2f959940bc Enhancement of Tacker API Resource Access Control
This specification describes implements of fine-grained
access control based on user and VNF information for API resources.
It will extend user information to include role, VIM information, VNF
instance information,
and implement the policy enforcer that uses not only roles, but also
user and VNF information.
The following items will be supported.

1. Add additional attributes to resources when be created.
2. Change the API process to support Tacker policy checker.
3. Add the Tacker policy filter to the list API processes.
4. Convert special roles to API attributes in context.
5. Add a configuration option and policy samples.

Implements: blueprint enhance-api-policy
Change-Id: Ib8f1c83be1bec3644f0fbead46ccd6ab7c2d4e83
2022-12-28 08:59:08 +09:00
Zuul
9c0e2af31f Merge "Support PostgreSQL as Tacker DB backend" 2022-12-27 18:08:58 +00:00
Zuul
cf2e683508 Merge "Support VNFM for AutoHeal and AutoScale" 2022-12-27 17:48:12 +00:00
Kenta Fukaya
8e7e908714 Support VNFM for AutoHeal and AutoScale
This spec provides some implementations for supporting receiving alerts
from External Monitoring Tools and VNFM(tacker)-driven AutoHeal and
AutoScale without NFVO. This implementation only supports VNF and CNF
instantiated through Tacker's v2 API.

Implements: blueprint support-auto-lcm
Change-Id: I5ef4428f722d4da288469a4636020e2f0eb0ef5b
2022-12-27 16:23:44 +09:00
Yuta Kazato
e287ba86b8 Support PostgreSQL as Tacker DB backend
This specification proposes tacker-db-manage improvements to
support Multi-DB backends, especially PostgreSQL as Tacker DB backend.

The following items will be supported.
1. Add PostgreSQL migration functions to tacker-db-manage.
2. Add PostgreSQL migration functions to Tacker.
3. Add PostgreSQL install manuals to Tacker Installation Guide.

Implements: blueprint support-multidb-backend
Change-Id: Iac23778091d00d26724b07a9571ff16c7a699dee
2022-12-27 15:49:43 +09:00
Zuul
2b30f2767a Merge "Add coordinateVNF script for coordination IF" 2022-12-27 06:35:12 +00:00
Yuta Kazato
278ccb8bd0 Support Thresholds resource in PM Interface
This specification provides implementations of "Thresholds"
resource for supporting Performance Management interface
with external monitoring tools such as Prometheus.

Tacker Zed release has supported ETSI NFV-SOL
based Fault Management and Performance Management interfaces,
but Thresholds resource is not implemented.

The following items will be supported.
1. Add support Thresholds resource for PM interface.
2. Enhance notification to Client.
3. Add support of RESTful API for communications between
   Tacker and External Monitoring Tool.
4. Add new unit and functional tests.

Implements: blueprint support-auto-lcm
Change-Id: I7bc8af96e3e2a3290891f42821597184d5f77a25
2022-12-27 11:31:38 +09:00
Hirofumi Noguchi
0bd703fcfc Add coordinateVNF script for coordination IF
This specification proposes a sample coordinateVNF script
for rolling update with external management systems
(e.g., Operations Support Systems (OSS)/Element Manager (EM)).
This specification focuses on only VNF update
by the ChangeCurrentVNFPackage API.

Change-Id: I612b96bd993a1e5e52e142f84c57cc11de92cf68
Implements: blueprint add-sample-coordinate-script
2022-12-26 10:50:13 +09:00
Ai Hamano
7cdebc9719 Fix Spec of "Enhance Placement Process"
"Enhance Placement Process" has the following spec changes in Antelope.
* In AZ reselection, randomly select from unselected AZs without
  considering Affinity/Anti-Affinity
* Only StandardUserData is the target of reselection processing
  (Delete the description of AutoScalingGroup)
* Delete the configuration value for whether to reselect AZ

This patch fixes these changes and moves spec of
"Enhance Placement Process" to the directory for 2023.1.

Implements: blueprint enhance-placement
Change-Id: I3629f17e8df17a2947100215e4ad7556fa812124
2022-12-16 10:01:46 +09:00
Yasufumi Ogawa
949c4ce423 Add 2023.1 specs directory
Using release number here. In Zed cycle, TC passed a resolution[1] and
updated the release Identification document[2] to use the release
number as primary identifier in the development cycle. Release name
will be used in marketting and release team tooling (until they are
migrated to work with release number) only.

[1] https://governance.openstack.org/tc/resolutions/20220524-release-identification-process.html
[2] https://governance.openstack.org/tc/reference/release-naming.html

Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Change-Id: I9c56ef2a1bbce716a37cac83e4316e37d989b386
2022-10-05 14:22:04 +00:00
Manpreet Kaur
aed90244a9 Enhance multi tenant policy in VNF LCM
An enhancement of the multi-tenant policy in the VNF lifecycle
management.
* Discussion to enable a non-admin role user to instantiate VNF.
* Add design for negative functional test cases for VNF LCM
  operations and validate notification is received by the tenant
  specified in the subscription sequence.

Implements: bp enhance-multi-tenant-policy

Change-Id: Idf398ea9bf083afdecb99a0cea3c539a34ec17d3
2022-08-09 12:23:21 +05:30
Zuul
ab50b47069 Merge "A DB migration tool for API version update" 2022-08-02 06:24:21 +00:00
Hongjin Xu
5d0d1e6ac1 A DB migration tool for API version update
The DB migration tool migrates DB from v1 API to v2 API
without service outage of the VNF, which would be implemented by
adding the functionality to the tacker-db-manage command.

Implements: blueprint db-migration-tool
Change-Id: I8cb4e925bd937d79bebaa346dd7dcc634355c97d
2022-08-02 05:53:42 +00:00
Zuul
e8e508bdcd Merge "Enhancement of Container Update Function" 2022-07-29 09:03:14 +00:00
Zuul
87aef2c194 Merge "Enhance CLI for paging query results" 2022-07-29 09:03:12 +00:00
Zuul
7dc593d562 Merge "Add CentOS Stream 9 Testing in Zuul" 2022-07-29 08:58:51 +00:00
Zuul
a876c667dd Merge "Database Synchronization between Tacker and K8s" 2022-07-29 08:23:20 +00:00
Zuul
762649479b Merge "Enhance ChangeCurrentVNFPackage API" 2022-07-29 08:22:30 +00:00
Zuul
1d41d0905f Merge "Support OpenID for Kubernetes VIM Authentication" 2022-07-29 08:12:32 +00:00
Zuul
caabc47fb7 Merge "Enhance Placement Process" 2022-07-29 08:12:30 +00:00
Zuul
7cb5e1e3f7 Merge "Enhancement of CNF operations using Helm Chart" 2022-07-29 08:12:29 +00:00
Zuul
58a3c38801 Merge "Support VNF AutoHeal triggered by FaultNotification" 2022-07-29 08:11:30 +00:00
Masaki Ueno
7213b97071 Database Synchronization between Tacker and K8s
In the current implementation, TackerDB and VIM DB(KubernetesDB)
such as etcd in Kubernetes are only synchronized
when SOL002 heal is executed.
However, when Kubernetes auto-heals or auto-scales and the pod restarts,
the information is only reflected in the KubernetesDB
and not in TackerDB.
This specification supposes periodic synchronization of Pod information
between TackerDB and KubernetesDB

Implements: blueprint database-synchronization
Signed-off-by: Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>
Change-Id: I952da578c69a1c577d0cee731f617ed834e17179
2022-07-29 16:23:39 +09:00
Yuta Kazato
bc8f94f3fa Enhance ChangeCurrentVNFPackage API
This specification enhances the ChangeCurrentVNFPackage API.
Tacker supported the ChangeCurrentVNFPackage operation in Yoga release,
but Tacker has supported software image update case only
and lacks some parameters.
The following cases will be supported.
1. Change OpenStack flavor
2. Change external/internal VL and CP
3. Add other ChangeCurrentVNFPackage API parameters

Implements: blueprint enhance-change-package
Change-Id: Ia511955df1f32fd703a6b44e242e1e4a379e3627
2022-07-29 16:20:11 +09:00
Masaki Ueno
4c4778c372 Support VNF AutoHeal triggered by FaultNotification
This spec provides an implementation for supporting AutoHealing using
FaultNotification interface between Tacker and VIM.

When fault events occur in VIM, VIM notifies fault event to Tacker
via the interface.

Tacker takes initiative of AutoHealing. According to configuration,
Tacker checks faultID attribute in the fault event and determines
whether AutoHealing should be performed. In case of performing
AutoHealing, VMs are deleted or created via Heat.

The FaultNotification interface can be alerted by multiple events.
To prevent invoking multiple heal operations to single VNF,
the FaultNotification requests to Tacker are packed for a configured
period of time.

Implements: blueprint support-autoheal-queue
Signed-off-by: Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>
Change-Id: Ia5633c2b6571bc5364f0ccd344d81f1a10236096
2022-07-29 15:08:02 +09:00
Masaki Ueno
7555ec76b7 Support OpenID for Kubernetes VIM Authentication
There are several ways for authentication in Kubernetes VIM.
Currently, Tacker already supports using Service Account Token
as bearer token for authentication.
This specification proposes Tacker to support
OpenID Connect Token as bearer token for authentication.

Signed-off-by: Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>
Change-Id: Id6f34c42956c3753baf72c69f0e6127abfd13899
Implements: blueprint support-openid-k8s-vim
2022-07-29 13:31:32 +09:00
Yuta Kazato
bccb5ba425 Enhance Placement Process
This specification supports the placement functionality for VNF instance
and enhances the applicability of Tacker to various systems.
The placement constraints are defined in ETSI NFV-SOL 003 v3.3.1
and that VNFM sends to NFVO in order to the resource placement decision.
In VNF Lifecycle Management (LCM), there are some cases that VNFs are
not deployed due to placement constraints or
lack of availability zone's resources.
From a high-availability perspective, Tacker needs to implement a
fallbackBestEffort option in Grant Request and availability zone
reselection functions in Placement Process.

Implements: blueprint enhance-placement
Change-Id: I654cc26f30dda1cc756ddee790a16f5855ea4443
2022-07-29 12:58:22 +09:00
Zuul
27e67f5e1d Merge "Support FM/PM Interfaces and Auto LCM" 2022-07-29 03:12:09 +00:00
Masaki Ueno
dac7a38042 Support FM/PM Interfaces and Auto LCM
This spec provides some implementations for supporting AutoHeal
and AutoScale with external monitoring tools such as Prometheus.
The implementations includes ETSI NFV-SOL 002/003 v3.3.1 based
Fault Management / Performance Management interface
and a sample implementation of Prometheus Plugin.

Implements: blueprint support-auto-lcm
Signed-off-by: Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>
Change-Id: I16d1cdb29362b7e56ab7dbf92b1744cdc5145ede
2022-07-28 18:24:24 +09:00
Masaki Ueno
9ac4bd5d8c Enhancement of Container Update Function
In the current implementation, when users invoke update operation of
ConfigMaps and Secrets, all Pods are restarted even if they don't use
those updated ConfigMaps and Secrets. This modification aims to remove
this limitation.

Implements: blueprint enhancement-container-update
Signed-off-by: Masaki Ueno <masaki.ueno.up@hco.ntt.co.jp>
Change-Id: Iefc0f6cdab351600b8b0ee1d7033246fad8e7226
2022-07-28 18:04:42 +09:00
Zuul
1988eac71a Merge "Code refactoring for performance improvement" 2022-07-28 01:35:04 +00:00
Zuul
2b19a45f85 Merge "Support individual VNFC management via Heat" 2022-07-28 01:27:47 +00:00
Zuul
8d2bbcabce Merge "Support multi artifact of ansible driver" 2022-07-27 23:46:08 +00:00
Hirofumi Noguchi
f89cab5af3 Code refactoring for performance improvement
This specification proposes the following code refactoring
to improve system performance.

1. Reduce transaction of getting OpenStack resource
(for Tacker v2 API)
2. Support subscription filter of vnfdId (for Tacker v1 API)
3. Refactor the Tacker Output Logs (for Tacker v1/v2 API)

Change-Id: Ib6e9ae4ed25c1b6715d498d8ada1614a51e36451
Implements: blueprint system-performance-management
2022-07-27 21:08:01 +09:00
Zuul
cb1d57160f Merge "Support CNF Rollback in v2 LCM API" 2022-07-27 08:59:07 +00:00
Hirofumi Noguchi
d98fd07738 Support individual VNFC management via Heat
This specification proposes new functionality
about individual VNFC management via OpenStack Heat.
This proposal focuses on v2 VNF Lifecycle management (LCM) API
and adds new sample BaseHOT, corresponding UserData script,
and utility functions for UserData class.

Change-Id: Id27da3f247b027ef800a988ccd5e41c400a0dc43
Implements: blueprint individual-vnfc-management
2022-07-27 17:48:32 +09:00
Koichi Edagawa
6ed793ae90 Enhance CLI for paging query results
This spec describes the enhancement about CLI according to support
of pagination of query results in Tacker server.

Target client commands existing in Yoga release are below.

 - openstack vnflcm list
 - openstack vnflcm op list
 - openstack vnf package list

Implements: blueprint paging-query-result
Change-Id: I817910e3e6f4d11844e9279279305aa3ac72fd85
2022-07-27 11:49:14 +09:00
Zuul
19081e595c Merge "Support CNF Heal in v2 LCM API" 2022-07-26 05:30:14 +00:00
Wataru Juso
18f36b3ee2 Support multi artifact of ansible driver
The Ansible Driver currently has only a single configuration
information.
This above specification does not allow changing the configuration
information for multiple deployment Flavors.

Adopts the Multi artifact specification defined in TOSCA to hold
multiple Configuration information.
* Enable understanding of primary and dependencies at toscaparser
* Enable understanding of primary and dependencies at schema of tacker
* Extend method that get implementation information

Implements: blueprint add-ansible-mgmt-driver-sample
Change-Id: I7d8e48c7d20e38f119f81803c73480de68708eb9
2022-07-26 13:59:51 +09:00