Support deploying Kubernetes cluster VNF which has a storage server
with Cinder volume. This feature enables users to deploy CNF which
has PersistentVolume on it. The following changes are added for
MgmtDriver.
1.Create a storage server VM with Cinder volume.
2.Expose Cinder volume as NFS shared directories in the storage
server.
3.Register NFS shared directories as Kubernetes PersistentVolumes.
4.Install NFS client on newly created Master/Worker VMs in all LCM
operations.
Implements: blueprint pv-k8s-cluster
Change-Id: Iaab9b6393e6f2007c637f83a82de0d27cf9db257
This patch implements spec
Support deployed Kubernetes cluster using the images in a Docker
private registry with MgmtDriver in blueprint bp/cir-k8s-cluster.
It includes mgmt_driver scripts of deploying a Docker private
registry to vm created by openstack_driver.
Support instantiate/terminate/heal function.
It includes mgmt_driver scripts of deploying kubernetes cluster
that can use images in Docker private registry to vm created by
openstack_driver.
Support instantiate/terminate/scale/heal function.
It also includes a shell script that actual install kubernetes
cluster and configure environment to support Docker private registry
on vm.
Implements: blueprint cir-k8s-cluster
Change-Id: I7adab1d1eaa491a37399d0b615cbee4c6ae86657
This patch and "Sample script for deploying k8s with kubespray",
"Sample script for scaling k8s with kubespray" are actually the
same one. For the convenience of review, they
were submitted separately.
This patch is only about the content of heal k8s nodes. However,
since the processing of scale_start is similar to heal_start,
and the processing of scale_end is similar to the processing of
heal_end, the code of scale has been refactored and the common
processing is extracted as a common method. At the same time,
when CNF needs to perform `heal_entire`, the configuration file
of Load Balancer needs to be re-modified, so heal-related
processing is added to the example MgmtDriver of CNF's `NodePort`.
Because the input parameter of terminate and heal is limited,
the type of this parameter is also modified. In
`NFV-SOL003 v2.6.1`[1], the `additionalParams`'s type is
`KeyValuePairs`, so we changed the additionalParams's type from
`list` to `dict` in heal_vnf_request. In order not to affect
the original function, we modified the original additional_params
to legacy_additional_params and retained the original processing,
and revised the UT code.
[1] https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf
Implements: blueprint k8s-mgmtdriver-kubespray
Change-Id: Ibf8b56904b1326f5c7d323c9295d10e303f4b4b8
This patch and "Sample script for deploying k8s with kubespray"
are actually the same one. For the convenience of review, they
were submitted separately.
This patch is only about the content of scale k8s nodes. Since
the content of `NodePort` is not involved when scaling CNF,
there is no need to modify the configuration of Load Balancer.
The type of input parameter `additionalParams` of
ScaleVnfRequest is `DictOfStringsField`. The type of Kubernetes
cluster parameters used in MgmtDriver is dict, `DictOfStringsField`
type cannot adapt it. So we modify the type of additionalParams to
`DictOfNullableField`.
Implements: blueprint k8s-mgmtdriver-kubespray
Change-Id: Ib5e009c53dd834624d91ea38c9facba832d65d2b
This patch provides a sample script that allows users to install
or delete kubernetes on VMs in the VNF when executing
instantiate/terminate/scale/heal through the kubespray ansible
server.
It also provides script to install and configure Load Balancer
for kubernetes cluster in the VNF.
When instantiating CNF with service resource whose type is
`NodePort` on Kubernetes VIM deployed by kubespray, its port must
be added into Load Balancer's configuration and restart it. So
this patch also provides a sample MgmtDriver and shell script
to fix this problem.
At the same time, we found that if instantiate operation fails,
after the `instantiate_end` operation, the `terminate_end` operation
will not be executed in the rollback, which may cause the
modification in `instantiate_end` remains in the environment, so
this patch adds a `terminate_end` operation in `post_rollback_vnf`.
Implements: blueprint k8s-mgmtdriver-kubespray
Change-Id: I45661b5d8006e87db5f46a595756231849723ce6
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
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
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
In kubernetes_mgmt, it will find 'Install Failed!\n' in stdout
to judge raise a exception of script install failed.
However in recent fix, we changed error message from script,
thus kubernetes_mgmt cannot catch error msg from stdout,
exception will not be raised.
This patch will fix matching error message in kuberntes_mgmt.
Closes-Bug: #1922192
Change-Id: Iffb3e045cbe121aca0fc74621cc5b3b5daf69f5b
2 new methods are added at last time merge of
Wallaby release in vnflcm_abstract_driver.py.
* change_external_connectivity_start()
* change_external_connectivity_end()
(tacker/vnfm/mgmt_drivers/vnflcm_abstract_driver.py#L88)
In kubernetes_mgmt.py,
(sample/mgmt_drivers/kubernetes_mgmt.py)
we inherited VnflcmAbstractDriver thus we also
needed to implements these 2 methods here.
Due to we don't have these interfaces here, I updated
empty methods for clear runtime error.
Change-Id: I9f918ceff9882da1bff4b1cc953602a3b84aec0c
While calling _get_by_name() in kubernetes_mgmt, it is passing
self + other 3 parameters.
However it is calling _get_by_name() by instance,
thus passing self is not needed and will cause an unmatch
parameters error during Terminate process
Closes-Bug: #1922194
Change-Id: Ic4601cb277c02b2d41263724bb2ce21e7d24cdbb
An error occurs in tox due to an incorrect setting of
properties related to tosca.policies.tacker.Scaling.
Therefore, this patch fixes the related VNFDs.
The error is occurring in unittest and FT, so fix both.
At the same time, there was a problem with the version of
heat-translator, so modify the following files as well.
- lower-constraints.txt
- requirements.txt
Co-Authored-By: Yasufumi Ogawa <yasufum.o@gmail.com>
Change-Id: Iae2b25abe53eda483e811171306d3d375a7e1687
Closes-Bug: #1921996
This patch fixes some bugs related legacy cnf operations below:
* Delete the "unsupported key check" of policies in TOSCA template, to
resolve `openstack vnf create` command failure due to property
validation of policies.
* Change the branch condition of legacy/sol, to resolve the
`openstack vnf scale` command failure due to keyError.
* Add interval to each retry loops of delete_wait_legacy, to resolve
the `openstack vnf delete` command failure.
And this patch revises the documentation for legacy cnf operations to
work properly.
Closes-Bug: #1920085
Change-Id: If14b95b2f9dfafe994a5ebf4f447a2bf7d27981c
This patch implements spec
Support deploying Kubernetes cluster with MgmtDriver
in blueprint bp/cnf-support-with-etsi-nfv-specs.
It includes sample mgmt_driver scripts of deploying
kubernetes cluster to vm created by openstack_driver.
Support instantiate/terminate/scale/heal function.
It also includes a shell script that actual install
kubernets cluster on vm, and an use guide to show
how to use this sample script.
Implements: bp/cnf-support-with-etsi-nfv-specs
Change-Id: I4d0085ffa3b4c90741ebb169b96f69113e2bb6d7
The CSAR file for VNF package registered as a sample fails to run
the VNF LCM instantiate. The cause of this issue is typo and invalid
definition for the VNFD. I think that the csar zip file for uploaded VNF
package should be able to run the VNF LCM instantiate normally.
Therefore, fix typo and invalid definition for the VNFD in the CSAR file.
Also, fix to the following settings that has a dependent on environment
because the current VNFD can only be run in the limited environment.
* Change hash algorithm from sha-256 to sha-512 according
the Glance default hash algorithm
* Change from 8192 MB to 256 MB in the `min_ram` size of
the VirtualStorage to work even in a low specification environment
* Delete `CP1.properties.vnic_type` to work even under a virtual
environment
Change-Id: Icccaa523d33115e8b7ec0a6fd7e9c5f177d0a363
Closes-Bug: #1886124
This update is for revising contents of documents, especially for styles,
because current tacker documentation does not follow the guidelines [1].
Other than styles, this patch revises things bellow. However, [2] and
[3] are still remained old because they are very different situation
with other parts, too old and redhat distro based. It seems better to
remove the contentents insteads of upudate, but neet to have a
discussion before to decide.
* Update old links, such as referring to github.com.
* Correct explanations which are not wrong, but misunderstanding.
* Replace code blocks of `local.conf` with literalinclude to reduce
unnecessary lines.
* Fix collapsed descriptions in format.
[1] https://docs.openstack.org/doc-contrib-guide/rst-conv.html
[2] https://docs.openstack.org/tacker/latest/install/openstack_vim_installation.html
[3] https://docs.openstack.org/tacker/latest/install/kolla.html
Change-Id: I9a2a58a804ff65dff356b424e12f605066717844
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Cirros and OpenWRT images are downloaded and registered to Glance during
Tacker devstack installation. But it is better to avoid these external
dependencies so that we can complete the installation even if image
download links are broken.
Change-Id: I8bd9ef27267ae2097d9cdce5d655c77d9e4a3aad
If users specify parameters in 'flavor' or 'image' properties
of a VDU, HOT template can not be processed properly because
there is a missmatch between TOSCA and HOT template.
This patch will change 'get_input' to 'get_param' to fix that
issue.
Change-Id: I353e9d9d70dc6249a62dcdd1281b7b60d28d7d30
Closes-Bug: #1813135
Depends-On: Ib95ed31c70073cb732d41defe5bdc8027eadfeec
Added reservation policy support.
With reservation policy user can use the reserved resources
by blazar to create VNF.
Depends-On:I2b989a49ac3447995a82ddb7193bf478bb847b73
Implements: blueprint reservation-vnfm
Change-Id: Ia6a87894ba219c045140e8e65e03f87509bbdb6d
At present the VNF mgmt IP address is assigned to parameter name
of "mgmt_url". In this patch it is changed to "mgmt_ip_address"
which will be relevant one
Co-Authored-By: Dharmendra Kushwaha <dharmendra.kushwaha@india.nec.com>
Change-Id: I621b71d4af96a4bfa0f27442efe4d302c5afa96d
Partial-Bug: #1648327
This feature allows choosing SFC encapsulation between MPLS
and NSH (default MPLS). It also apply SFC proxy to make use
of correlation.
Change-Id: Ia5eda02df415c9e3f6f035068176d60a14ffb68f
Currently, keystone_authtoken.auth_url is working at
`http://127.0.0.1/identity`, not `http://127.0.0.1:5000` as shown in
sample vim_config.yaml. So this patch aims to update the outdated
auth_url in vim_config.yaml file
Change-Id: I9e66ab5cd365c7bc70c80974fa891fc2e6ddd96f
When Network Service (NS) is supported in Tacker, we can launch
multiple VNFFGs by initiating NS. Because each VNFFG can have
different 'symmetrical' value, we should support dynamic 'symmetrical'
parameter for each VNFFG in VNFFG descriptor.
This feature will add 'symmetrical' as a property of forwarding path,
so users can set 'symmetrical' value to 'true' or 'false' to change
symmetrical value of a port chain in networking-sfc.
Change-Id: Ie9a6abe96141954e95902cd426abafa10d744236
This removes usage of deprecated Ceilometer API
1. Changing trigger type from "OS::Ceilometer::Alarm"
to "OS::Aodh::GnocchiAggregationByResourcesAlarm"
2. Add "resource_type" fixed with value "instance"
3. Change some paramters (meter_name-> metric,
statistic ->aggregation_method, period-> granularity)
4. Change value from "average" to "mean" in method to
compare to the threshold
Change-Id: I486c14cbc9d05a0e826bbef1ad181bdcb2d8c951
Closes-Bug: #1735484
- This patch aims to add support for following placement policies in
addition to the default 'affinity' policy:
anti-affinity
soft-affinity
soft-anti-affinity
- This patch adds respective functional/unit test cases. To test
"anti-affinity" policy on the gate, changed the devstack functional
jobs `nodeset` from the default single node to "openstack-two-node".
- This patch also adds respective documentation and usage guide for
the above added policies.
Depends-On: I56a9cf4bb553c8026eec73212a3742d5eab17420
Co-Author: tpatil <tushar.vitthal.patil@gmail.com>
Implements: blueprint vdu-affinity-policy
Change-Id: I18aaa9d00c8539ccc60cb6e70570dee124df70a3
This patch will add VNFFG support for NS. In NSD, users can
describe VNFDs and nested VNFFGDs inside. When NS is created,
VNFs and VNFFGs are also created too.
Work items of this patch:
1. Add sample nsd templates
2. Update NFVO plugin to adapt VNFFGD template extraction
from NSD and create VNFFGs using that template
3. Modify Mistral workflow to create/delete VNFFGs using NSD
User guide, defref will be added in following patches.
Co-Authored-By: Cong Phuoc Hoang <hoangphuocbk2.07@gmail.com>
Change-Id: Id5827e66aec0231bf27e87fc96d8fc6bc5cb9c26
Partially-implements: blueprint vnffg-ns
- Fix create_vnffgd cannot get 'description' and 'name'
from TOSCA yaml file
- Delete redundant 'description' line in vnffgd template
file following the standard in vnffg_usage_guide.rst
Change-Id: I9c384678058c5e27239e9afc8cc2ae1de01ff750
Closes-Bug: #1751433
Currently, when a VNFFG is created, Tacker also create port-pair,
port-pair-group, port-chain and flow-classifier. There are no
reusing ability in this approach.
This patch will check the port-id of a VNF is using in other VNFFG
or not. If it is used in a VNFFG, the existing port-pair-group will
be added to the new port-chain.
Therefore, we can create 2 VNFFGs that can go through one VNF.
This patch also clean up network resource such as port pair, port
pair group and flow classifier if there are failures.
Change-Id: I648693103dd7eab7a4b10cde89f11766a9232e8d
Closes-Bug: #1746721
According to SFC RFC standard, the chains should be decoupled
from classifiers.
In Networking-sfc the chains and classifiers are completely
decoupled. This patch lets user can do it by allow creating
VNFFG with no flow-classifier.
User can use "tosca-vnffgd-no-classifier-sample.yaml" to create
VNFFG with no flow-classifier. User also have the ability to
add flow-classifiers through updating VNFFG with
"tosca-vnffgd-sample.yaml" in vnffgd tosca templates folder.
This patch only support Forwarding path with type
"tosca.nodes.nfv.FP.TackerV2". Tacker also support altering the
direction of the traffic in forwarding path, update new
forwarding path, add, remove and update flow-classifers though
updating VNFFG.
For more information: https://review.openstack.org/#/c/531817
Change-Id: Ice2f0f03f7a90f4fefdee751283ff26b9c037d87
Closes-Bug: #1745818
This patch adds the customized OpenWRT image that enables DHCP making
the VNF can be ping. Therefore, the continuously respawning of VNF
can be fixed.
This patch also rewrites the instruction of deploying VNF
based on OpenWRT.
Change-Id: Ieb4d98fe374676bad101a6c2965354a9b19ea0a2
Closes-Bug: #1557008
Closes-Bug: #1749243
Closes-Bug: #1709557
This spec proposes implementing containerized VNF. We choose
to use Kubernetes resources (ConfigMap, Deployment, Horizontal
Pod Autoscaler, Service, etc) to define a containerized VNF.
1. Add "configurable_properties" type in VDU node.
2. Support translate TOSCA to Kubernetes templates.
3. Add kubernetes infra driver to support CRUD containerized
VNF.
Implements: blueprint containerised-vnfs
Change-Id: I706f1f325ca8c2b33debd7e6a13e81535245a5ad
The functinality of naming the classifiers which are
created through a vnffgd template is essential so the user
can identify somehow the classifiers that he created for a chain.
In addition to that the classifiers' names would be an important
tool in subsequent patches where we will use them to update the ACL
of an existing classifier though the vnffgd template. We are going to
use the name to identify which classifier's ACL the user wants to
update.
Change-Id: Ia586061c578a99662d49ad284d1ff313c350e1f3
Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
This patch tries to fix the bug: https://bugs.launchpad.net/tacker/+bug/1719841
To disable the verification, a parameter must be included in vim_config.yaml
file.
cert_verify: 'False'
Co-Authored-By: Cong Phuoc Hoang <hoangphuocbk2.07@gmail.com>
Closes-Bug: #1719841
Change-Id: If9c8eab81bad2028ae146598d559831bc51cbbf5
Signed-off-by: Manuel Buil <mbuil@suse.com>
Develop a Zabbix plugin in Tacker VNF manager to monitor application level
parameters that can't be supported by current Tacker monitoring driver
Change-Id: I25e871b8e8ddfb49a1f3f22e78c1ea8ba9835d74
Implements: blueprint zabbix-plugin
This patch address
1. Update Symmetric Port Chains by setting 'symmetric=True' as
'chain_parameters' key and value pair.
2. Remove 'symmetrical' in flow-classifier functions.
3. Update the doc and VNFFG samples
Change-Id: I04cfafd111b1024ad61b8f9ee48bfe0186a97d0d
Closes-Bug: #1736630
In Devstack environment, cloud-init can not work correctly, because
instance can not access metadata over ther network.
1. This patch will fix cloud-init error, user can use 'user_data'
in vnfd template.
2. Update missing plugin in Tacker (mistral, ceilometer) and
user_data in vnfd template for testing VNFFG function.
Change-Id: Ic2037aaf3e947e941b43d1ae06e475a712398c09
Closes-Bug: #1736627
This patch adds support to attach volumes to VDU.
This patch does not deal with boot from volume case.
Change-Id: I4bee80610eaa4e2ec8a1ccb2a5d36fb723a09806
Implements: persistent-block-storage
1. scaling and monitoring policy nodes got failed
From tosca-parser 0.8.0, tosca nodes required to be validated.
Unfortunately, the scaling and monitoring policies are not fully
leveraged tosca-parser. This patch will fix this issue.
2. Multiple alarm actions support
Closes-bug: #1682098
Change-Id: I29cb35edfe2447628fa93c64583e5cb4f7bee2f8