Commit Graph

140 Commits

Author SHA1 Message Date
Andreas Jaeger e61cc055ab Retire repository
Fuel (from openstack namespace) and fuel-ccp (in x namespace)
repositories are unused and ready to retire.

This change removes all content from the repository and adds the usual
README file to point out that the repository is retired following the
process from
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

See also
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011647.html

Depends-On: https://review.opendev.org/699362
Change-Id: I10917e42829b459c41ca46514faa72fc46abf7be
2019-12-18 09:52:23 +01:00
Vasyl Saienko 9dabe06369 Add Ironic multitenancy support
This patch adds support to deploy Ironic with separate Neutron network
for provisioning baremetal instances.

  * Add NetworkDeploymentSerializer100 as Ironic multitenancy is supported
    from Newton, and we will backport this till stable/newton.
  * Update network scheme generation to create 'vlan' baremetal network,
    assign IPs to Ironic conductors from this network, make them
    accessible from baremetal servers.
  * Add new checkbox at 'Openstack Settings/Additional components' tab
    which allows to define if separate provisioning network should be used
    during deployment. This is a trigger to switch ironic deployment to
    multitenancy case. If not selected old behaviour is kept, 'flat'
    network is used. The checkbox is shown only when Ironic component is
    enabled.

Change-Id: I861a8b3b046202526d6a856c9f2dca2cfaddc887
Related-Bug: #1588380
2017-03-31 10:21:34 +03:00
Alexander Kislitsky 4fa861fa8a Distributed serialization implementation
Distributed serialization is implemented with python distributed
library. We have scheduler for jobs management and workers for
jobs processing. Scheduler is started on the master node as well
as set of workers on it. Also workers are started on all nodes.
In the cluster settings we can select the type of serialization
and nodes statuses that allows serialization on it. By default
nodes with status 'ready' are excluded from the workers list.

For data serialization we are using only nodes from the cluster
where serialization is performing.

Before the computation fresh nailgun code is sent to the workers
as zip file and it will be imported for job execution. So we always
have fresh nailgun code on the workers.

In one job we are processing chunks of tasks on the workers. This
approach significantly boosts performance. The tasks chunk size
is defined as settings.LCM_DS_TASKS_PER_JOB parameter.

For limiting memory consumption on the master node we use parameter
settings.LCM_DS_NODE_LOAD_COEFF for calculation max number of jobs
in the processing queue.

Synthetic tests of distributed serialization for 500 nodes with
nubmer of ifaces >= 5 performed on 40 cores (4 different machines)
took 6-7 minutes on average.

Change-Id: Id8ff8fada2f1ab036775fc01c78d91befdda9ea2
Implements: blueprint distributed-serialization
2017-03-24 15:15:30 +00:00
Mikhail 9c51c8e22b Serialize mtu for dpdk interface with 'i40e' driver
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>
2017-03-06 12:01:47 +00:00
Igor Gajsin 634b66df45 remove vmware
VMware not supported since Fuel 10.

Implements: blueprint remove-vmware

Change-Id: Ia26a97d13bb9c3d2e838d639efdababbb15f86da
2017-02-14 15:52:27 +00:00
Anastasiya d2a5333e99 Limit the minimal RAM amount for OVS+DPDK to 1024MB
* 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
2017-02-07 16:42:01 +00:00
Anastasiya 93f40003de Fix naming of reset tasks and message duplication
* reset_environment supertask contains 3 subtasks:
  base_reset_environment, remove_keys_task,
  remove_ironic_bootstrap_task
* names for tasks were changed
* response methods for remove_keys_task and
  remove_ironic_bootstrap_task were added to receiver
* _restore_pending_changes method was add only for
  reset_environment_resp
* migration for adding new transaction names and appropriate
  test were added
* test for check task message was added

Change-Id: Ib8a215174431486316bca533797932e02969c037
Closes-Bug: #1541868
2017-01-12 17:24:02 +04:00
Anastasiya 53f2fe91c9 Replace dpdk driver to vfio-pci if sriov is enabled
Change-Id: Ic87b926b4f547f91b2f130830b35fafc195ada92
Partial-Bug: #1583077
2016-12-16 16:10:24 +04:00
Andriy Popovych 0fac7bdba5 Bond attributes in interface API
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
2016-11-30 11:39:35 +02:00
Mikhail da99f08f74 Add default tags
Tags for rabbitmq, database, keystone and neutron.

Change-Id: I13861e55bcdfded55597e8c696ac05c1c5892f00
Implements: blueprint role-decomposition
2016-11-23 23:59:41 +03:00
Mikhail Zhnichkov 9647ccde99 Revert "Add tag API"
This reverts commit 327f754d90.

Change-Id: I58474fd358287ad21f0f36ec5be9a565fc24c67c
2016-11-08 16:58:59 +00:00
Ryan Moe 327f754d90 Add tag API
API handler for creating tags.

Implements: blueprint role-decomposition
Change-Id: I04c184f287d49ad2c15803809b8025f7351b8985
2016-10-05 17:28:22 +03:00
Bulat Gaifullin 8e2220b789 Introduce new orchestration tasks
There are 3 new orchestration tasks:

* master_shell

  Run task on master node with a context of other node. If 'roles'
  selects N nodes, the task will be executed N times.

* erase_node

  Erase node. It's necessary task if we want to remove nodes by means
  of graphs and not pre-hardcoded actions in Astute.

* move_to_bootstrap

  Change node's PXE config to boot via LAN (into bootstrap). As a
  previous one, it's necessary task for deletion graph.

Change-Id: Ie8f852762b837a68e0e0b49e11653a8f2e56a014
Blueprint: graph-concept-extension
2016-08-20 23:38:45 +03:00
Dmitry Teselkin e4b65a4768 Remove packages from Ironic bootstrap
dkms packages non needed because Xenial provides newest drivers.
nonfree package was removed from Xenial.

Change-Id: Ieff11865074865a28e6f78ac927200aea40c3438
blueprint: mos-xenial
2016-08-01 11:00:17 +00:00
Artur Svechnikov 79e28facc8 Do not check NFV features for old envs
NFV features (DPDK, SR-IOV, NUMA/CPU pinning, HugePages)
can't be checked for old clusters, due to old nailgun-agent.
Old nailgun-agent doesn't send NFV specific information.
So all NFV related checks and functional should be disabled for old
environments.

Change-Id: Ib589d67658f45414b8049398316af5c7298d459e
Closes-Bug: #1594443
2016-06-28 13:44:23 +03:00
Jenkins af68ca5c5b Merge "Change CPU distribution" 2016-06-07 09:53:03 +00:00
Artur Svechnikov 76e270ef96 Change CPU distribution
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
2016-06-06 18:36:27 +03:00
Vladimir Kuklin e4fbfe80ed Allow a user to run dry-run deployment
Now following handlers:

     /clusters/:cluster_id/changes/
     /clusters/:cluster_id/changes/redeploy/
     /clusters/:cluster_id/deploy/
     /clusters/:cluster_id/deploy_tasks/

?dry_run=1 that is telling Astute not to run cluster executionat all.

Dry run assumes that it does not actually affect
cluster status regardless of their result.

Also, remove redundant update of nodes statuses to 'deploying'
within OpenStackConfigManager and DeploymentTaskManager as it should be
done by receiever.

Do not set cluster status to 'deployment' for these nodes in order to
retain its real status

Modify stop deployment tests to move failing stop deployment for already
deployed clusters to another test class. Since 9.0 we can run stop
deployment for new clusters.

Change-Id: I374fc86b63af64411d4a5ca45ff6c3680cb44897
Partial-bug: #1569839
2016-05-30 15:46:31 +00:00
Aleksey Kasatkin e9d3ca5f1f Introduce 'dpdkovs' bond mode
to allow clean separation between OVS and DPDK bonds so that
both can be used in Fuel 9.0 and later without confusion.

Change-Id: If1a9eae087517d841c20f1e425734a44547ea2c5
Closes-Bug: 1572944
2016-04-22 13:04:22 +03:00
slava 9ffc2baa54 SR-IOV cannot be enabled with non-KVM hypervisor
Change-Id: I619de0fbd6b9250ffda8dce9a766fba27c2fb4e2
Partial-bug: #1563254
2016-03-31 07:35:30 +00:00
Bulat Gaifullin 6d6bb7f169 Introduced LCM serializers
We need separate task serializers for LCM,
because LCM uses context per node for serialize tasks.
It also allows to isolate LCM related code for backward
compatibility with existing environments, that is not ready for LCM.

Change-Id: Ie95a58c8cf86eac1a5c3dbd956fafc401e40fed6
Implements: blueprint computable-task-fields-yaql
2016-03-28 11:48:06 +00:00
Vladimir Sharshov (warpc) 48a42a860b Introduce new history API
API url: `/api/transactions/<id>/deployment_history`

This change proposes to store all the information about
particular deployment tasks ever executed for each
particular cluster.

Change-Id: I73010a713ab8592418eb59bb133a427ac4c4a665
Implements: blueprint store-deployment-tasks-history
2016-03-25 20:06:29 +03:00
Fedor Zhadaev a88a312acb Add OVS Bonds parameters to support DPDK bonds
* Add ovs bonding modes into openstack.yaml with appropriate
parameters. It's needed for configuring DPDK bonds on UI.
* Add new bonding mode and 'lacp' parameter for generating correct
transformations for OVS bonds.

Implements blueprint support-dpdk

Change-Id: I54a9a413ef9ab410765884ff3d74d8a205023fb3
2016-03-22 16:08:51 +03:00
Fedor Zhadaev b569ee6f42 Add DPDK support for node interfaces via API
* Add list of supported DPDK drivers to openstack.yaml
 * Add correct transformations for enabling DPDK
 * Add handling of DPDK data received from nailgun-agent

Implements blueprint support-dpdk

Change-Id: I13c3b45fbc4fc43efbb9fca0ee994a8720138b38
2016-03-22 11:04:29 +00:00
Nikita Zubkov 6eb02940ed Add hugepages checks to NodeAttributesValidator
Validator checks that node have enough memory to allocate all required
hugepages

Change-Id: I6b4e963548a673d3a86d3b4cc06529701c8d0a85
Implements: blueprint support-hugepages
Depends-On: Id5898f0b3e193fbd6267975d0ec70ef72cbce789
2016-03-18 16:25:14 +03:00
Artem Roma b71c751deb Extend length of vip_name and vip_namespace fields of IPAddr entity
Change-Id: If7b239873cdf520936e46f994dc7750ea8ca8610
Closes-Bug: #1551320
2016-03-15 14:39:00 +02:00
Ilya Kutukov a3bb7b2a0b Strings length constants is removed from DeploymentGraph models and migrations
Constants is removed to avoid difference in 9.0 migrations and models work
if constants values will be changed in the next updates.

Change-Id: Ibc8d846fef787e4d93364b22c4f626b01a6d7d71
Implements: blueprint custom-graph-execution
2016-03-11 17:14:54 +00:00
Artur Svechnikov 1155cc83cb Pass hugepages to kernel parameters
Change-Id: Id5898f0b3e193fbd6267975d0ec70ef72cbce789
Implements: blueprint support-hugepages
2016-03-11 09:01:07 +00:00
Ilya Kutukov 32bb68f501 DeploymentGraph and DeploymentGraphTasks models added
This models store deployment  tasks sets that is grouped under
DeploymentGraph record with unique id.

DeploymentGraph is linked via m2m to the:
- releases
- plugins
- clusters

This transitive tables containing 'type' field, that should be used as
graphs merge key in business logic.

DocImpact
Implements: blueprint custom-graph-execution
Change-Id: If53cb58e8ae4cf8fe4caa470bf207ff1683b1cda
2016-03-03 02:28:56 +03:00
Vladimir Sharshov (warpc) a7cab8077d Gracefully stop for task based deployment
Introduce new node status: stopped, which used for nodes,
where orchestrator was successfully gracefully stopped task
deployment. This status will be able node redeploy.

Also introduced new type of node error_type: stop_deployment
It will be used if gracefully stop on node will be failed
for example, because of timeout. It will be apply automatically
by recevier for nodes in deploying status
if orchestrator return error for stop deployment task

Change-Id: I30d606d7d11d670d1a68ee90b01b932c1543fccc
Implements: blueprint graceful-stop-restart-deployment
2016-03-02 16:20:30 +03:00
Bulat Gaifullin 72499871b7 Fixed cluster state transitions
Added new status for cluster:
* partially_deployed - the nodes of cluster has different statuses.

Change-Id: I5be8c4ed5f58e2c6545a7f06b8eab1ae37c8575f
Closes-Bug: 1542201
2016-02-29 14:05:35 +03:00
Igor Kalnitsky e91363ba9c Remove legacy patching code
In Fuel 5.1 we had an experimental feature - 'patching openstack env'.
The idea was to update and to rollback OpenStack environments between
minor releases. However, we have encounter a lot of problems with
restoring OpenStack databases andresolving dependency hell in packages,
so we buried it and never release it.

This patch removes legacy code from the source tree. We can do it
without fear, since it wasn't released in public.

Related-Bug: #1511499
Change-Id: I58b3fedd239eb7fe4226e51c2d6386efab14395d
2016-02-26 15:06:04 +02:00
Julia Aranovich 05a62fe06a Redesign of node roles panel
* Redesigned a role list view on Add Nodes/Edit Roles screens in Fuel UI
  to take up less space on the screen
* Also the role list is grouped by a new 'group' role attribute

Implements: blueprint redesign-of-node-roles-panel

Change-Id: Ie99e2b911439ae050a5212febe0fac7502550ea9
2016-02-09 18:59:26 +03:00
Valentin Kaplov 65301813c0 Moved checking repository availability to astute tasks
Checking repositories on availability is long task.
Http request can timeouts, while the task running.
Decided to move checking from http request context to
astute task, which running asynchronously.

Depends-On: I76ed1f0b6413cc94c539d795bbba92f8e9dad50b
Depends-On: I0ccf42fd7ff05d68aa4a4aee426c1c8bfa4daea4
Closes-Bug: #1540346

Change-Id: Iff76af0b0a6573f0f8f779fda4333a3658cccc04
2016-02-08 13:12:32 +03:00
Ivan Kliuk 169fae21b0 New VIP-related fields in the database
* Add 'is_user_defined' field to 'ip_addrs' table.
* Rename 'vip_type' field to 'vip_name' of table 'ip_addrs'.
* Add 'vip_namespace' field to 'ip_addrs' table.
* Copy vip namespaces from plugin table network roles to 'vip_namespace' field
  according to the unique vip name.
* Add database migrations.
* Add unit test for migrations.

Change-Id: Ia3e1d7f6e08dbebcb182de75eeaf58ddf6be4a8d
Partial-bug: #1482399
2016-02-02 18:16:27 +03:00
Ilya Kutukov 3ecb245061 Plugin package v5.0.0 support introduced
Plugins v5.0.0 use task-based deployment directives using tasks
v2.0.0 with cross-dependencies and per-task strategy.

V4.0.0 allows both experimental and granular deployment directives
(tasks v1.0.0 and tasks v2.0.0) and using them according to `task_deploy`
environment flag setting.

Change-Id: I697dc22a58a9ff2ad8bd9d955d2b2c5351c746ab
Closes-Bug: #1533771
2016-01-27 18:05:39 +03:00
vsaienko 00bf06f431 Generate Ironic bootstrap with fuel-bootstrap
Use fuel-bootstrap instead of deprecated fuel-bootstrap-image-builder

Related-Bug: #1527587
Depends-On: Ic332428ed311d3dad0b599189498153c55af7b30
Change-Id: I2459d7ae466d9b89a50a0299c6edec012a23f71b
2015-12-28 10:07:46 +02:00
Bulat Gaifullin 56c811cedd Added the pre/post tasks from plugins to list of deployment task
- The plugin deployment tasks are proceeded with the core-tasks.
- The plugin pre-deployment tasks will be added as
    chain between pre_deployment_end and deploy_start.
- The plugin post-deployment tasks will be added as
    chain after post_deployment_end.

Closes-Bug: #1527325
Change-Id: I5b416d9507b2ae1503c356a9828a0b7be85c1eb1
2015-12-21 19:57:41 +03:00
Bulat Gaifullin 7a4d5de086 Updated JSON schema for task
- Moved all Task Role related constants to Enum TASK_ROLES
- Renamed consts.MASTER_ROLE to consts.MASTER_NODE_UID

Change-Id: I292f0f5471e295564a318530f5397e4c438cb40a
Closed-Bug: #1526688
2015-12-17 14:34:59 +03:00
Bulat Gaifullin b94ba3cb94 Introduced Task Based Deployment
implements blueprint: task-based-deployment-astute

Change-Id: Ie030855428cf94e3e1ed613571aa2b45eff0fcba
2015-12-11 22:27:59 +03:00
Bulat Gaifullin eea95621e0 Introduced policies to resolve nodes by its role
NullResolver the fake resolver
PatternBasedRoleResolver allows to use pattern in name of role

implements blueprint: task-based-deployment-astute

Change-Id: I5bfb135fe95ed8faee6df81e31748e0143c568e6
2015-12-10 21:24:47 +03:00
Aleksey Kasatkin d53c75bf3a Rerun network setup on deployed nodes
This is required to apply changes that could be made to the networking
configuration of environment.
The major case is: add/remove node network group(s).

The configuration changes are not tracked as nailgun does not have
proper functionality for that.

New key is introduced in task description: reexecute_on (list).
Deployment tasks which are to be re-executed on deploy changes must have

reexecute_on:
  - deploy_changes

DocImpact

Change-Id: I668fcb426826cecf69a5c7fc1e92b8ae8dfeef9f
Blueprint: redeploy-network-on-changes
2015-12-02 16:46:01 +02:00
Alexander Saprykin b08c04ade4 Add upload configuration task
* Add configuration task manager
* Add task serializer for upload configuration task
* Add upload_config_resp rpc receiver

Change-Id: I75983277538a52b286fbdae4701f1f1630d26dfc
Implements: blueprint openstack-config-change
2015-11-27 14:30:37 +00:00
Alexander Saprykin 4081c6626e Add model for openstack configuration
* Add OpenstackConfig model class

Change-Id: Ib9bce2ea59be828879c5bc4527723a1678f6080e
Implements: blueprint openstack-config-change
2015-11-27 13:13:16 +02:00
Jenkins 7d7366c2ec Merge "Refactor component model" 2015-11-19 19:44:06 +00:00
Andriy Popovych 9545d61f13 Refactor component model
Get rid of component object.
Store info with compatibility and uncompatiblity
lists of components in plugin and release.

Change-Id: I47ed959f9079c346d9d968e7ebd9bf1b7b150e2f
Implements: blueprint component-registry
2015-11-19 11:43:21 +02:00
Andrey Shestakov ea913ffea8 [Ironic] Add transformations for Ironic
This change introduces L2 transformations for baremetal network
and L3 neutron network.

Change-Id: I565c703dca6cedaa74f0bf426d82ecde79257ecb
Implements: blueprint fuel-integrate-ironic (partially)
2015-11-18 13:08:54 +02:00
Jenkins 3565b8733a Merge "Deprecate version.yaml" 2015-11-17 19:35:09 +00:00
Andrey Shestakov d0bb7c17cf [Ironic] Add baremetal network for ironic
This change adds:
* new optional baremetal network
* baremetal sections in Neutron L3 configuration

Ironic requires separate baremetal network on infra nodes and neutron flat
network mapped to this physical network.

New baremetal network is optional and depends on Ironic component enabled in
settings.

Implements: blueprint fuel-integrate-ironic (partially)
Change-Id: I742bf69d3f3ac5e4b4ecd39a12e3171c566563e8
2015-11-17 12:23:15 +02:00
Vladimir Kozhukalov 1a8801a870 Deprecate version.yaml
At the moment feature_groups are defined during
ISO build in version.yaml file. We need to avoid
using build time defined parameters because
we are moving to the package based delivery approach.

Depends-On: I05e841d4279bc61645cefb68f411a93b67e57189
Related-Bug: #1513737
Related-Bug: #1515517
Change-Id: I4f96fec73f991094bca65de5f1d1014662fbb2b4
2015-11-17 01:05:39 +03:00