On NIC: XL710 with driver 'i40e' MTU does not take into
account 4 bytes VLAN tag, so we should increase it manually
DocImpact
Change-Id: I3d95db9ec6fae4d8cd397c429d785dbdf1502b21
Partial-Bug: #1587310
Co-Authored-By: Fedor Zhadaev <fzhadaev@mirantis.com>
* min value was set in consts
* appropriate validator was added
* tests for validator were changed
* test for serializer were changed
Change-Id: Ib8ccb0658bd401ce492257f855013d1d7e0f2dac
Closes-Bug: #1653081
This is the first step for handling arbitrary data structures
in OpenstackConfig. At this moment we are handling explicit
serialization of the configuration_options.
The future steps are:
- changing configuration data format in the Fuel CLI
- data migration in the Fuel DB
- changing configuration data serialization in Fuel
The future steps are planned to be done for the Fuel 10 release
Change-Id: I6961e3d7a2bc5ae8b9c668c67a0ab5c23792f5b1
Co-Authored-By: Alexander Kislitsky <akislitsky@mirantis.com>
* min value was set in openstack.yaml
* appropriate validator was added
* tests for validator were changed
* migration node and release attributes was added
* tests for migration were added
Change-Id: Iec723c7f02e874bf8567665a30af30c61aff7f34
Closes-Bug: #1653081
We need to configure queues count on dpdk interfaces.
The count should be limited by max supported queues
value on DPDK NIC and number of CPUs for DPDK usage.
Change-Id: I9b3160b7e0659d11445ca3927aa38e523a93b3a9
Partial-Bug: #1643920
Depends-On: Iffa1a6c872b46230de6e9ab3b8f34cb727661571
Add ability to override generated values for 'ovs_core_mask'
and 'ovs_pmd_core_mask'.
Change-Id: Ifdc3b45bf4ec5bc3da31966c17be6fd18fc97b39
Closes-bug: #1648371
Add plugin's NIC and Bond attributes in serialized data
for orchestrator.
Change-Id: I9b6543cfc443929cd9d64d8578e2fec3be43bf19
Implements: blueprint nics-and-nodes-attributes-via-plugin
Remove restrictions on set of BOND properties. Now BOND can have
any attributes.
Remove redundant `bond_properties`.
Change-Id: I60d1a0628d84c5ba49bb5b45824d660297dacccc
Implements: blueprint nics-and-nodes-attributes-via-plugin
Refactor interface logic:
* remove interface_properties
* CRUD operations for NIC attributes
* default values for NIC meta and attributes
Change-Id: I26106f1b55c704a9e79d01fadc48c88a92ccc414
Implements: blueprint nics-and-nodes-attributes-via-plugin
If there is no specified hugepages or CPU pinning
distributors shouldn't be called. Also changed
initialization of custom_hugepages type.
Change-Id: Iedb819b1da7dcb3877a6a94b9e7cfb93aa949a9e
Closes-Bug: #1594443
(cherry picked from commit 661ce479a6)
This commit switching tasks resolution approach to the tags based one.
Tag - minimal unit what's necessary only for task resolution and can be
mapped to the node through the role interface only. Each role provides set
of tags in its 'tags' field and may be modified via role API. Tag may be
created separately via tag API, but, this tag can not be used unless it's
stuck to the role.
Change-Id: Icd78fd124997c8aafb07964eeb8e0f7dbb1b1cd2
Implements: blueprint role-decomposition
* restriction for using DPDK in VXLAN based
segmentation case was removed
* in case of using VXLAN with DDPDK used 'br-mesh'
bridge that has configuration as 'br-prv' and
vendor specific attribute 'vlan_id' was added
for 'add-br'
* appropriate tests were added
Implements blueprint vxlan-support-for-ovs-dpdk
Change-Id: I1c4978a15df6f851339a346fe6c4812c5427dd29
Provide ability for plugins to add additional attributes for nodes.
* Added new NodeAttributesDefaultsHandler handler for getting
default node attributes.
* Added code stuff for getting and updating additional plugin
node attributes.
* Added code stuff to serialize plugin node attributes for orchestrator.
Change-Id: I5c6d6f3c815a034683e624b98fa1f360ab4b491c
Implements: blueprint nics-and-nodes-attributes-via-plugin
Provision info already contains list of packages as
string, but fa_builder expects list and conversion from
string to list was done by using yaql expression.
This patch moves this conversion to nailgun side.
Change-Id: I1ad44b7f2e69edbb8b8e28fd7840010af2594cd7
Closes-Bug: 1630275
The size of deployment_info grows as n^2 depending on
nodes number. That's because common_attrs, which is
merged into each node's contains info about all nodes.
For example for 600 nodes we store about 1Gb of data in
the database. So as first step let's store common_attrs
separately in deployment_info structure inside python
code and in the database.
Also removed old test for migrations, which are not related
to actual database state.
Change-Id: I431062b3f9c8dedd407570729166072b780dc59a
Partial-Bug: #1596987
Reduced cluster and release attributes which are added to
deployment_info on serialization
Change-Id: I98a960ad4b4c1ac12f25059e9b429fdca97cffb4
Closes-Bug: 1618002
Now it is possible:
* To bring release as plugin
* To define multiple graphs types for the plugin
Change-Id: Idcac14e6f4055ca0e488efc2cc23945036a493d9
Implements-Blueprint: release-as-a-plugin
Because there is no difference between provision graph
and deployment graph from nailgun side,
the graph execution context should contain both
provison info and deployment info. This patch
extends LCM deployment info serializer to include
provison info in serializer output.
Change-Id: I672e8fde1a662bd190dcbda0869c290ff110e2d2
Blueprint: graph-concept-extension
Instead of wide callbacks process_deployment or process_provision
implemented methods to patch deployemnt or provision info per
cluster or node.
The code of extensions and tests was updated accordingly.
Also added helper to mark methods of extension as deprecated.
the extension load behaviour was modified, instead of fail operation
when extension cannot be loaded, the nailgun only write error in log
that extension is not loaded and continue operation.
Partial-Bug: 1596987
Change-Id: I577c8ffc105734e12646ca7c6a4fe4927e70b119
DocImpact
CPU distribution mechanism should be changed due
to incorect requirements to nova and dpdk CPUs allocation
Changes:
* Change CPU distribution
* Add function for recognizing DPDK NICs for node
* Remove requirement of enabled hugepages for
DPDK NICs (it's checked before deployment)
* Change HugePages distribution. Now it take into
account Nova CPUs placement
Requirements Before:
DPDK's CPUs should be located on the same NUMAs as
Nova CPUs
Requirements Now:
1. DPDK component CPU pinning has two parts:
* OVS pmd core CPUs - These CPUs must be placed on the
NUMAs where DPDK NIC is located. Since DPDK NIC can
handle about 12 Mpps/s and 1 CPU can handle about
3 Mpps/s there is no necessity to place more than
4 CPUs per NIC. Let's name all remained CPUs as
additional CPUs.
* OVS Core CPUs - 1 CPU is enough and that CPU should
be taken from any NUMA where at least 1 OVS pmd core
CPU is located
2. To improve Nova and DPDK performance, all additional CPUs
should be distributed along with Nova's CPUs as
OVS pmd core CPUs.
Change-Id: Ib2adf39c36b2e1536bb02b07fd8b5af50e3744b2
Closes-Bug: #1584006
PyYAML recognizes 1,1,1,1 as string, however,
the Hiera think that this is a list and as result
we have 1111. Thus it's better to avoid ambiguous
formats and use list instead of comma separeted string.
Change-Id: I360c880d68af366fdd96a3ceeebb5f73403ffb85
Closes-Bug: #1587898
'nodes' data is deprecated so must be removed from 10.0 version
serializer output. The change was moved to separate serializer class in
order to maintain compatibility with previously deployed 9.0 clusters
after upgrade to 10.0.
Change-Id: I8fef591908cd8b1e4ace5502bb1e80cb37786c6e
Related-Bug: #1531128
Now serialized deployment info for environments >= 9.0 does not contain
'nodes' field; it is removed from the output of the serializer.
Unit and integration tests are updated. Deployment tasks fixture
changed: 'nodes' references in yaql expressions changed to
'network_metadata.nodes'
Change-Id: Ibdb2cf85732c0293314298e6a342b071ece18cc3
Closes-Bug: #1531128
Since self.env.create always return db object now,
we can use this returned value instead of
self.env.clusters list.
It's a refactoring, so no bug or blueprint.
Change-Id: If7c84cb7124bcf08ef5ff110542012564190fae1
Since node can be customized with LCM
deployment info, it's not needed to
convert old serialization style to
new.
Change-Id: I4822745849925076cbcedbd028c9e37d91d1aa1c
Closes-Bug: #1572965