Commit Graph

44 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
Igor Gajsin 8e12d76f86 Reorder configs_query by time
There is the possibility to change OpenStack config after deployment.
Changes could be applied per role. And in the case of multiple roles
on a node, many changes could pretend to be applied. I.e. if we have
a config for the role 'compute', a config for the role  'cinder' and
a node with role 'cinder+compute' we have to choose one of them.

Previous decision was 'sort it in the lexicographical order', so it
applies 'cinder' then --- 'compute'. It is contra intuitive. The best
option is applying to a node the last related config, to new config
overlaps old ones.

Change-Id: I7db388ca3baeb351adc9fdb70c55b0be50fafe48
Closes-bug: #1671521
2017-03-20 16:51:39 +03:00
Ryan Moe 2b0242f645 Resolve tasks by role tags
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
2016-11-17 18:07:30 +03:00
Mikhail Zhnichkov 8ddf244b71 Revert "Resolve tasks by node tags"
This reverts commit e368be6b10.

Change-Id: Ic3ca2ee14afafd9fca3cee43887a1955e71f061e
2016-11-08 16:58:49 +00:00
Ryan Moe e368be6b10 Resolve tasks by node tags
A 'tags' attribute has been added to each role in 'roles_metadata'.
Initially all non-controller roles will only have a tag of their own
role name. This will allow existing tasks which do not have tags
associated with them to work correctly. In the abscence of tags a
task's roles will be used to determine which nodes it will run on.

Implements: blueprint role-decomposition

Change-Id: I390580146048b6e00ec5c42d0adf995a4cff9167
2016-10-17 04:41:24 +03:00
Artem Roma db7ec357fb Move network serialization code to network manager extension
Change-Id: I48b50e86ad2d9568cfc63e738663c237dccab03a
Blueprint: network-manager-extension
2016-05-12 12:40:35 +03:00
Nikita Zubkov d5a790caab Add exceptions hierarchy
nailgun.errors have a huge set of exceptions but without hierarchy. This
patch remove exception generation from dict and make it explicitly with
python classes and add some exceptions hierarchy. Now all network errors
inherit from NetworkException and same for other exceptions.

Change-Id: I9a2c6b358ea02a16711da74562308664ad7aed97
Closes-bug: #1566195
2016-04-14 17:41:25 +03:00
Ilya Kutukov 299a92ef34 DeploymentGraph.update method added
Now it is possible to update deployment graph name
and tasks keeping the graph database ID intact.

DeploymentGraph.update and DeploymentGraph.create_for_model
methods are inroduced that allow to update or create graph.

Change-Id: I8170569d9283d226f53b5fb2879a5ff9ee7bb984
Implements: blueprint custom-graph-execution
2016-03-28 01:06:36 +03:00
Ilya Kutukov 0e9ca251cf Orchestrator DeploymentGraph is renamed to the GraphSolver
To avoid confusion with objest.DeploymentGraph and
orchestrator.DeploymentGraph second one was renamed
to the GraphSolver because this entity is used to
find subgraphs, loops, and solve graph for the
old orchestrators.

Secondary changes:
DeploymentGraphValidator -> GraphSolverValidator
DeploymentGraphTasksValidator -> GraphSolverTasksValidator
GraphVisualizationValidator -> GraphSolverVisualizationValidator
validators/graph.py -> validators/orchestrator_graph.py
orchestrator/deployment_graph.py -> orchestrator/orchestrator_graph.py

Change-Id: Ic42a17115723b8145b9d94cc034bf2217d1d634b
Implements: blueprint custom-graph-execution
2016-03-17 03:25:37 +03:00
Ilya Kutukov 84465f603b Cluster deployment graphs merge order changed to release+plugins+cluster
Now cluster.get_deployment_tasks returning deployment tasks merged from 3 levels:
* cluster release
* cluster plugins
* cluster itself

Tasks is overriding tasks with the same task 'id'.

Change-Id: Ie005e9f153bef4f6b4220764ed1e08a03abf1e86
Implements: blueprint custom-graph-execution
2016-03-16 16:32:14 +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
Maciej Kwiek 2a806db751 Check for uids before yielding tasks in CopyKeys hook
CopyKeys task won't be yielded if get_uids returns empty list.

Change-Id: I44c088b79bfb392d88174f8101e38a60ac6a6c67
Closes-Bug: 1541256
2016-02-04 13:15:03 +00:00
Andrey Shestakov a39027150d Add condition for IronicCopyBootstrapKey task
Ironic keys should be copied only ironic nodes.

Change-Id: Icb6c3cc01c194a60bc5324a963e2f30e149b4bcf
Closes-bug: #1536220
2016-02-01 13:45:20 +02:00
Alexander Saprykin 8e65af9e31 Fix configuration merging for multiple roles
Serializer used incorrect logic to merge configuration
dictionaries. It did merging on the first nesting level
while it is required to do it on the second.

Change-Id: I1ef13bc80098d6e9b1f450ea35d4ec8b32d6171d
Closes-Bug: #1524284
2016-01-19 16:28:44 +01:00
Jenkins 3509dd0fb4 Merge "Add condition for ironic_upload_images" 2015-12-25 10:47:51 +00:00
Andrey Shestakov 5f620a2e19 Add condition for ironic_upload_images
ironic_upload_images should execute once on primary controller
and should not execute on new nodes added to cluster.

Change-Id: Ic19f2ee13ec022a708002c0508ac3596033786d3
Closes-bug: #1522792
2015-12-22 09:30:34 +00:00
Alexander Saprykin 138f8cbf79 Sort configurations to merge roles in a correct order
Multiple configurations for node roles are merged
into one single configuration during serialization process.
It is required to keep the same order of configurations
to have a predictable behavior.

Change-Id: I649cccc73ae406a1f6953ad8139910bb18acc95f
Closes-Bug: #1524284
2015-12-16 12:04:59 +00: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
Artem Roma 773f87d210 Add SerializerNotSupported error type to nailgun.errors
Now in case when type of task is not known to Nailgun proper error is
thrown.

Change-Id: I33923c04e3eba0ed8028efac51e36f347296d0ae
Closes-Bug: #1506915
2015-10-29 14:33:55 +00:00
Vladimir Sharshov (warpc) 8a117bdd21 Store ceph keys in right place
Support {CLUSTER_ID} interpolation for 2 new tasks:

- copy_keys_ceph
- generate_keys_ceph

Change-Id: I4f14d19afd522ee2db51fdba34ef9ee662c28af7
Closes-Bug: #1478076
2015-07-30 12:39:55 +00:00
Igor Kalnitsky 976baf8422 Use schemaless approach for node roles
In Fuel 7.0 we want to have ability to extend node roles on fly by using
plugins. In order to achieve this, we want to have declarative
schemaless approach, so we won't require database object manipulations
(CRUD) each time we somehow change node role.

This commit drops such tables like:

* roles
* pending_roles
* node_roles

and use postgresql arrays in nodes tables instead:

* roles
* pending_roles
* primary_roles

Implements blueprint role-as-a-plugin

Change-Id: I2d3fccb7187fa4e82595c9ca6b27ef8ce90ee4b2
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-07-07 18:30:29 +03:00
Jenkins dde16576fe Merge "Pass CLUSTER_ID to task" 2015-07-06 14:15:17 +00:00
Stanislaw Bogatkin 9f4555a57b Pass CLUSTER_ID to task
We need to pass CLUSTER_ID to two new astute prehook tasks:
 - generate_haproxy_keys
 - copy_haproxy_keys

Implements: blueprint ssl-endpoints
Change-Id: I2261dcfb55743b0fb31f4cbe42e7793176c8e1c0
2015-06-30 13:18:04 +00:00
Jenkins b74f847ec8 Merge "Split deployment_serializers into several modules" 2015-06-24 06:56:54 +00:00
Vladimir Kuklin fff4376fec Add security repository into default set of repos
Change-Id: I19b75bf9a1e6a3af6a2215f23ad96eaa4a0665cd
Closes-bug: #1466080
2015-06-17 16:42:32 +03:00
Ivan Kliuk afb37b80a0 Split deployment_serializers into several modules
nailgun.orchestrator.deployment_serializers has more than 1800 lines of code.
  This makes it hard to read and update.

Change-Id: I1d1fa22899009eaef811b1de9ad897d065a47cd4
Implements: blueprint granular-network-functions
2015-06-12 04:39:52 +03:00
Sebastian Kalinowski b998d2772e Do not update nodes info on not ready nodes
If nodes are not ready or selected for deployemnt post_deployemnt
task for uploading nodes info and updating hosts should not be
executed on them.

Also fixed PEP8 warnings in files I've touched.

Change-Id: Icf2c51ec15f4028ff4da74a633481ca154e42d0a
Closes-Bug: #1450051
2015-05-12 11:33:27 +00:00
Sergii Golovatiuk 5cef6371ee Force IPv4 settings for APT
* Create /etc/apt/apt.conf.d/05disable-ipv6 and set Acquire::ForceIPv4 "true";
  to disable IPv6 as Ubuntu DNS returns IPv6 sometimes.
* Delete the same part from fuel_agent_ci cloud-init template as it should be
  configured by Orchestrator

Change-Id: I90fe58157c3eac04842102b1cb956bbeb324413a
Closes-Bug: 1450004
Signed-off-by: Sergii Golovatiuk <sgolovatiuk@mirantis.com>
2015-04-30 12:32:26 +02:00
Igor Kalnitsky 46cd6a8d8e Implement advanced apt pinning
Current approach is an error prone, because Debian repos may contain
metadata that doesn't fit our pinning template. Yes, in some cases
our template will work (and it does with upstream Ubuntu and Fuel),
but we want to be flexible and cover all cases.

In order to set corrent pinning, we have to use repo's metadata and
that means download repo's Release file, parse it and create pinning
based on it. In that case we'll use all available pinning rules, so
all possible issues will be up to repo maintainer and not because
we're using error prone approach.

Related-Bug: #1435892
Related-Bug: #1438783
Closes-Bug:  #1446686

Change-Id: I5279b7f414f831503fd993109dd5c91bef51a9ef
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-04-21 19:03:41 +03:00
Jenkins de563ac850 Merge "Add CentOS updates repo" 2015-04-17 13:37:16 +00:00
Jenkins 64f114c02a Merge "Add auxiliary repo to ubuntu and centos" 2015-04-16 12:51:05 +00:00
Matthew Mosesohn 301fa57158 Add CentOS updates repo
blueprint separate-mos-from-linux

Change-Id: I817fd1113099cf1536e0f9075aebcc015363387c
2015-04-16 14:07:37 +03:00
Matthew Mosesohn c8a5ae2a21 Add auxiliary repo to ubuntu and centos
Depends-On: I87f848bd13f7402bd608e5d50c488392739ca0a3

Change-Id: I3c719fba4170616a4cd9ff5d837e83000737e54e
blueprint separate-mos-from-linux
2015-04-13 09:22:15 +00:00
Igor Kalnitsky 1ed41e8ff9
Do not remove /etc/apt/sources.list, just clear
We used to remove /etc/apt/sources.list, but the 'command-not-found'
tool requires this file and if it's absent prints the warning. In
order to avoid this irritating message, we're going to clear this
file, so everyone will be happy.

Change-Id: I452a0350f3f98794a9ccdc7a963cb4a0878b87c2
Closes-Bug: #1439670
2015-04-09 15:49:40 +03:00
Igor Kalnitsky 346b172b3e
Do not set priority for the upstream Ubuntu repos
According to bp/separate-mos-from-linux we shouldn't set priority for
the upstream Ubuntu repos and should let them to be resolved by APT
defaults.

Taking into account this fact we should introduce a new state for the
'priority' attribute - the 'null' state, which means do not set any
priority at all.

Implements: blueprint consume-external-ubuntu
Implements: blueprint separate-mos-from-linux

Change-Id: Ib5c59b743effa9256be7e4a0f1ccd071343ec1c6
2015-03-24 14:14:40 +02:00
Igor Kalnitsky 603f8a03ff
Set upstream Ubuntu repos as defaults
Since we want to consume external Ubuntu, we should point to official
repos by default. Obviously, user will be able to change it on Settings
tab.

Implements: blueprint consume-external-ubuntu
Change-Id: I1666803b91d86247ac13066fc42ae12fa7377dbb
2015-03-20 16:27:03 +02:00
Vladimir Kozhukalov b1cb2f73c1 Nailgun: moved repo_metadata to cluster attributes
We need it to be possible to set priorities (pinning)
for deb and rpm repositories. This patch moves repo_metadata
to cluster attributes and changes its format.

Plugins' repos should have higher priority than default ones,
so we're setting them according to settings.yaml.

Implements: blueprint consume-external-ubuntu
Change-Id: I5a98469b9547014abec9406a7b36f1cf22ba8086
2015-03-05 17:32:43 +02:00
Dmitry Shulyak 9d644995db Operate on joined graph in nailgun
This patch introduces changes that necesarry to join all stages
into one graph.

<stage>_start is root for stage entity
<stage>_end is end task in stage entity

That is done to ensure that each stage is self contained,
and for example in case of adding more stages there will be no need to
look for end tasks and connect them

The only two harcdoded parameters are deploy_start and deploy_end,
stuff that we are including in pre_deployment is everything that comes before
deploy_start, and for post_deployment after deploy_end

related to blueprint granular-deployment-based-on-tasks

Change-Id: Ida5880525f9c3428ad8bb590f7ef78a0b20b1049
2015-02-20 18:19:09 +02:00
Kamil Sambor daa377d7e7 Migrate generation and upload keys tasks
* added generation and copy keys task in predeployment stage
* added new template for copy_files task
* added tests

implements blueprint granular-deployment-based-on-tasks

Change-Id: I53bfe60cbb9d0243abe4e3161c749b0a75a69531
2015-02-10 10:05:47 +01:00
Sebastian Kalinowski 05f028ca49 Added upload_nodes_info post deployment hook
* added serializer that adds nodes info that will be uploaded
* replaced upload_repo_task with upload_file_task
* removed 'create_serializer' function and replaced with
  'get_serializer_for_cluster'

Change-Id: Ia6fdcbd57fa35f0fe7655ab7e3b96dab0849d191
Implements: blueprint granular-deployment-based-on-tasks
2015-02-05 08:14:48 +01:00
Dmitry Shulyak c1b8fd6067 Split primary-controller/controller mapping logic
In 6.0 we had plugins that are using role: [controller]
to execute tasks on all controllers.

We need to change this behaviour because we need to be able
to differentiate between primary controller and other controllers
on orchestration layer

Also refactored tests to use real objects instead of Mock
because mocking wasnt flexible enough

DocImpact
related to blueprint granular-deployment-based-on-tasks

Change-Id: I3087ea70fd5dc9d3486fad8aae337cdcd7c8cfef
2015-02-02 11:19:44 +02:00
Dmitry Shulyak 0ed346ea1f Basic conditional tasks capabilities
Added several examples of conditional tasks based on exsiting
expression parser. Currently only 2 models supported:
- cluster - cluster db model
- settings - cluster.attributes.editable field

implements blueprint granular-deployment-based-on-tasks

Change-Id: Idff1644c9dcb7f217d9e8dbcf2a4ba4b9f0cb2d4
2015-01-26 18:16:30 +02:00
Dmitry Shulyak f7d27d6343 Add restart_radosgw serializer
Restart radowsgw task requires condition - that this task
should be executed only on controllers in case there was
nodes with ceph-osd role in current deployment

implements blueprint granular-deployment-based-on-tasks

Change-Id: Ifbf22b684978bbf1c5b211166f8dc6d04a21fbbf
2015-01-22 13:53:41 +00:00
Dmitry Shulyak 43cac9811b Rsync puppet/Upload repos tasks serialization
Implemented backbone for pre/post task serializers,
with few examples for pre task serializers

- Rsync puppet
uses mask in arguments, that is processed in serializer
- Upload repos
For given task in config - serializes number of tasks,
one task for each repo in repo_metadata, and one task for
regenerating metadata after repo was added

implements blueprint granular-deployment-based-on-tasks
Change-Id: I3baf1b06b7c0fa9d712edff5283c9854a7b26431
2015-01-22 15:52:10 +02:00