This patch support pods to be scheduled on the different
physical Compute server. Through the policy attribute of
the VDU, the Worker node can be instantiated on different
Compute server. Then we can obtain the Compute information
where the worker node is located, and use it as the label
of the Worker node. Finally, pod will be deployed on
different Worker nodes based on labels.
Implements: blueprint hardware-aware-pod-affinity
Change-Id: I71dc5bed94654c19bace77c11fe1202ccdc549c9
This patch provides Tacker documents for multi-version API support.
VNF LCM API Version 2 is added to API Reference and the page hierarchy
is changed for readability.
Also, the Show VNF LCM Versions command is added to Command-Line
Interface Reference.
Furthermore, a manual of the Userdata script is added to Tacker User
Guide.
Implements: blueprint multi-version-api
Implements: blueprint support-nfv-solv3-start-and-terminate-vnf
Implements: blueprint support-nfv-solv3-query-vnf-instances
Implements: blueprint support-nfv-solv3-query-operation-occurrences
Implements: blueprint support-nfv-solv3-subscriptions
Change-Id: I603e32090303af080b17e549a0caf7e862aa7e1e
In NFV-SOL003 V2.6.1, the add_resources'id in grant should be
same as the vnfc_resource_info'id. However, at present, if
you execute heal_grant and scale_grant request, the add_resources's
resource_definition_id in grantResponse cannot match the
vnfc_resource_info.id.
In _scale_grant, to fix this bug, we changed the processing
of _scale_grant in openstack._get_grant_resource_scale_out method.
Firstly initialize the data of vnfc_resource_info according
to the input parameters and the vnfd file, then initialize
the add_resources data of grant according to the
vnfc_resource_info data. After scaling out, store the data
in the stack into vnfc_resource_info in the
openstack.scale_resource_update method.
In addition, in openstack._get_grant_resource_scale_out, there is
also a problem with the placement_constraint rule setting, which
is also corrected in this patch.
In _heal_grant, if heal entire vnf_instance, we initialize
remove_resources used old vnf_instance's info, and then
reinitialize vnf_instance's info and use them to initialize
add_resources. If heal partial vnf_instance, we just use
update_resources in grant.
For instantiate, if you need to use the data obtained by
instantiate_grant in instantiate_end, the process should
execute the post_instantiate_vnf method before instantiate_end,
so the vnflcm_driver._instantiate_vnf method has also been
modified.
Closes-Bug: #1930782
Change-Id: I1008472f5a7104324b61a413052dc44bc84c7ade
This patch provides a base to support multi version API.
The existing code of functions for SOL specification was hard to
understand and enhance since it is based on the code of legacy tacker
API and they are connected with each other complicatedly.
Therefore the code for SOL specification is newly created which
is independent to the legacy tacker API so that it will be easy to
maintain and enhance.
This patch supports vnflcm v2 API (api_version 2.0.0) as a starting
point. It supports less functions than the exsisting v1 API at the
moment(Xena) but it will catch up with by the next release (Y).
This patch makes supporting another API version easy when it will
be supported in the future. Possibly it may thought to add v1 API to
this code base.
TODO: enhance UT/FT
UT/FT is not sufficient at the moment. Additional UTs and FTs will
be provided with another patches.
Implements: blueprint multi-version-api
Implements: blueprint support-nfv-solv3-start-and-terminate-vnf
Implements: blueprint support-nfv-solv3-query-vnf-instances
Implements: blueprint support-nfv-solv3-query-operation-occurrences
Implements: blueprint support-nfv-solv3-subscriptions
Change-Id: If76f315d8b3856e0eef9b8808b90f0b15d80d488
This patch includes only object definitions used by multi version
API support. There is no logic in this patch.
The logic part of multi version API support is provided with a
following patch.
Because the definition of the object had much number of the files,
the patch of logic part is separated to make code review easy.
Implementation notes:
Objects are defined as is according to ETSI NFV-SOL specifications.
This means attributes of objects are not converted to snake case
but camel case as is because the conversion is meaningless
obviously.
Naming convention of class is as follows:
* for a object represents a type with the definition in a section
of the specication, as is and may be followed by V2 (or V1) to
distinguish it from another version in the future.
ex. 'SOL003 5.5.2.2 Type: VnfInstance' => VnfInstanceV2
* for a object representing an inlined struct, 'class name which
the member belongs to' + '_' + 'member name which changed the
first letter to the capital letter'.
ex. the object representing instantiatedVnfInfo in VnfInstance
=> VnfInstanceV2_InstantiatedVnfInfo.
Note that 'nullable=True' means cardinality may be zero in this
object definitions while it means null is OK in the persistent
object originally.
Implements: blueprint multi-version-api
Implements: blueprint support-nfv-solv3-start-and-terminate-vnf
Implements: blueprint support-nfv-solv3-query-vnf-instances
Implements: blueprint support-nfv-solv3-query-operation-occurrences
Implemetes: blueprint support-nfv-solv3-subscriptions
Change-Id: I93711971906132b8dcf794864d22e2c1b326bc3a
kuryr-kubernetes patch [1] that changes to use kubeadm for
installing Kubernetes on devstack.
A patch [2] was previously created to address the change, but the fix
used kuryr-Kubernetes stable/wallaby as a temporary fix.
This patch fixes to use latest kuryr-kubernetes.
* Change the ".zuul.yaml" setting to use the latest kuryr-kubernetes.
* Add the process of creating a ServiceAccount and change the vim
authentication method to bearer_token. This is because
kuryr-kubernetes does not create an admin ServiceAccount by default.
[1] https://review.opendev.org/c/openstack/kuryr-kubernetes/+/779250
[2] https://review.opendev.org/c/openstack/tacker/+/791252
Change-Id: Ib64183b5e978774811f51f8af0f4590a20ced856
Implements new interface for Kubernetes VIM to handle Helm chart.
It enables Users to include Helm chart files as MCIOP in their VNF
Packages, to instantiate and to terminate CNF with them.
And update sample of MgmtDriver to install and configure Helm package
for using Helm cli command in the deployed Kubernetes cluster VNF, and
to restore the registered helm repositories and charts after the master
node is healed.
Implements: blueprint helmchart-k8s-vim
Change-Id: I8511b103841d5aba7edcf9ec5bb974bfa3a74bb2
This patch will change the proccessing of Placement Constraints
from VDU name to Aspect Definition. There is also an error in the
judgment logic when setting Availavility_zone information from
the Zone information of GrantRes, so the judgment logic is also
fixed.
Closes-Bug: #1924216
Change-Id: I5635f1b430f0b2f6e8b4c4ef50ca0864a8dd6230
This will fix the exception that occurs when editing Grant transmission
data during Anti Affinity verification.
Co-authored-By: Hiroo Kitamura <hiroo.kitamura@ntt-at.co.jp>
Closes-Bug: #1923136
Change-Id: If0d02d1cab40b0bf9be9bc6825d96cdfaa5ea495
The "test_instantiate_terminate_vnf_with_vnflcmnoop" method of
multinode-sol job occasionally fails.
After vnf termination, "instantiationState" becomes "NOT_INSTANTIATED".
However, the "vnflcmOpOccs.operation_state" is not "COMPLETED" at this
point and sleep for 20 seconds before assert operation_state.
If stack deletion is not completed within 20 seconds sleep, reading
"PROCESSING" when asserting operation_state results in misjudgment and
an error.
This patch resolves the error by waiting until "COMPLETED" instead of
sleeping.
Change-Id: I5c5ec2f457d235c95627e2c339b477a191b24945
The current tacker returns 500 Internal Server Error to requests with
invalid filter conditions where a VNFID is not UUID. However, as the
error is caused by a bad request, the status code should be 400.
This bug occurs because data types of 'id' and 'vnfd_Id' in TackerObject
are 'string' which don't match the data types in DB, i.e., UUID. In
order to fix this bug, those data types in TackerObject are changed to
'uuid'.
Closes-Bug: 1924666
Closes-Bug: 1926632
Change-Id: I8decbb42d661a44c6c382cb1abbfc37d95084ffb
To install heat-translator and tosca-parser from git repos, dedicated
scripts for the tasks were added in [1]. Then it was replaced with
smarter way using `git_clone_by_name` in [2]. So, we don't need to have
changes by [1] anymore.
[1] https://review.opendev.org/c/openstack/tacker/+/765296
[2] https://review.opendev.org/c/openstack/tacker/+/787322
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Change-Id: I0a842843443bf5b2dd267b57b3e3dcc66a5198cf
The oslo.reports library provides some options under the [oslo_reports]
section. This change ensures these parameters are rendered by
the oslo-config-generator command.
Change-Id: If1cd703bf06c76fa23c567e61434ef703c24daa0
This patch fixes the problem that cnf rollback operation does not
delete the kubernetes resource created during instantiation.
Closes-Bug: #1933305
Change-Id: Iecd8f11f5d51a49999f4f0e31a16f41438834f8a
The oslo.service library provides a separate entrypoint to load options
for periodic tasks. Because Tacker imports periodic tasks mechanism
from the library, the related options should be loaded as well.
Change-Id: Ic6de82be9d1bed1c557c53216caabcbf9e944e3f
This patch changes the following to support helm chart spec and
to test instantiate/terminate cnf with helm chart.
* Add `extra` field to vims db.
* Add `setup-helm` task to ansible-playbook roles.
[On controller-k8s node]
* Create and setup helm user for executing helm command.
* Install helm.
* Create folder for putting local helm chart.
* Enable password authentication in sshd_config and restart sshd.
[On controller node]
* Update Vims DB of vim-kubernetes to modify extra field that include
helm access information.
Implements: blueprint helmchart-k8s-vim
Change-Id: Iaf7c11c5bedb77e9cd21074be2b4f73528aa2ce7
Due to a bug in heat project, the some FTs don't pass.
This patch temporarily skip fail tests that until the bug is resolved.
* Due to heat bug reported in [1].
functional.legacy.vnfm.test_vnf_placement_policy.VnfTestCreate
- test_create_delete_vnf_with_placement_policy_affinity()
- test_create_delete_vnf_with_placement_policy_anti_affinity()
- test_vnf_with_policy_anti_affinity_insufficient_comp_nodes()
Skip should be removed as soon as the bug is resolved.
[1] https://storyboard.openstack.org/#!/story/2009164
Change-Id: I8784603c875a93790014930004b90c39155c9e71
ABCs in collections should be imported from collections.abc and direct
import from collections is deprecated since Python 3.3.
Closes-Bug: #1936667
Change-Id: Iafc013cb9b454bc5251d126643f68f3112dafa54
The current `Tacker User Guide` page doesn't have `Getting Started` for
ETSI NFV-SOL Tacker.
Added `Getting Started with ETSI NFV-SOL Tacker`.
Also, added sample files, such as a VIM config file, VNF packages and a
VNF instantiation parameters file, to the `samples` directory, which
are referred from the `Getting Started` page.
Change-Id: I58dadaa6c99fc45a34d87218c4d943e2572aa0a1
Signed-off-by: Hiromu Asahina <hiromu.asahina.az@hco.ntt.co.jp>
We've been using old cirros-0.4.0 for long time, and don't need to fix
the version of cirros to 0.4.0. This patch is update to the latest
0.5.2.
Most of the changes in this patch is replacing `image`, `hash` and
`version` in TOSCA definition files. The rest of them are:
* Replace images. First one is only an actual image, and rest of them
are empty text files which is a trick for reducing total size in
tacker repo. So, text files are not replaced, but renamed simply.
* tacker/tests/etc/samples/etsi/nfv/common/Files/images/cirros-0.5.2-x86_64-disk.img
* samples/vnf_packages/Files/images/cirros-0.5.2-x86_64-disk.img
* tacker/tests/etc/samples/etsi/nfv/test_csar_utils_data/sample_vnfpkg_no_meta_single_vnfd/Files/images/cirros-0.5.2-x86_64-disk.img
* tacker/tests/etc/samples/sample_vnf_package_csar_in_meta_and_manifest/Files/images/cirros-0.5.2-x86_64-disk.img
* Update functional tests verifying images. A refactor of defining
package size is included.
* Update devstack script, and helper scripts under `contrib` dir.
* Update API references and documents describing usage of the image.
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Implements: blueprint update-cirros-052
Change-Id: I081b791dc986ab10f4845784b3e19dbb626e3cac
This patch fixes misspelled words such as parameter name
"cert_verify" and "instance" found incorrect in Tacker
Legacy User Guide.
Closes-Bug: #1940230
Change-Id: I37d61805bf492d28362183e91f21e18cf95cc0c6
When getting information about multiple VNF instances with invalid
attribute selector or invalid attribute-based filtering parameters,
tacker return a response with HTTP Code 200 and all information
about VNF instances. However, according to the specification file,
the HTTP code 400 Bad Request shall be returned.
To fix this bug, this patch adds a new check for this api`s
parameters. If it contains unsupported parameters, the HTTP code
400 Bad Request will be returned.
Closes-Bug: #1938108
Change-Id: I3cca6d6fa664dd8f88791516042892369e4972a2
The current `Install via Devstack` page doesn't have a hardware
requirement which may cause installation failure or poor performance.
Added a table that shows hardware requirements.
Also, the current document mentioned `ussuri` in sentences, but it's too
old. Updated the version referred in sentences from `ussuri` to the
latest release `wallaby`.
Change-Id: Ifd916c96e8f90d7abb411d3eb0669e8ac3b0cf84
Signed-off-by: Hiromu Asahina <hiromu.asahina.az@hco.ntt.co.jp>