Extension of the Fuel graph concept

Registered by Liubov Efremova

Extend the Fuel graph concept so it is not necessarily should be tied to the deployment process.

As minimum, we need to have a possibility to use a graph for the following base actions:
 - verification
 - deletion
 - provisioning
 - deployment

For example, it is important to find out defects in the realistic network design before the deployment process as an early error detection may save hours of rework on a large deployment. Execution of the verification graph on bootstrap nodes will solve this problem.

The whole mechanism will also be more flexible.

The default graphs for the base actions should be loaded during the Fuel installation, although a cloud operator should be able to upload custom graphs for different purposes via CLI or UI.

The graph execution command should stay practically the same, however it is necessary to be able to define several graph types to run them one by one:

fuel2 graph execute --env env_id [--types graph_types] [--node node_ids]

Blueprint information

Status:
Started
Approver:
Alexey Shtokolov
Priority:
Essential
Drafter:
Liubov Efremova
Direction:
Approved
Assignee:
Bulat Gaifullin
Definition:
Approved
Series goal:
Accepted for newton
Implementation:
Beta Available
Milestone target:
milestone icon 10.0
Started by
Liubov Efremova

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/343256
    Spec for the graph concept extension was added

Gerrit topic: https://review.openstack.org/#q,topic:bp/graph-concept-extension,n,z

Addressed by: https://review.openstack.org/347210
    Added virtual role 'deleted' for RoleResolver

Addressed by: https://review.openstack.org/347391
    Introduced the transactions manager

Addressed by: https://review.openstack.org/347774
    Now /graphs/execute/ handler is used to execute graph

Addressed by: https://review.openstack.org/353564
    Extend tasks table \w dry_run and graph_type attrs

Addressed by: https://review.openstack.org/353565
    Implement Transaction Manager

Addressed by: https://review.openstack.org/353566
    Graphs Execution RESTful API

Addressed by: https://review.openstack.org/341002
    Split provision and deletion into several deployment tasks

Addressed by: https://review.openstack.org/354723
    Verification graph tasks were described

Addressed by: https://review.openstack.org/355486
    Introduce new orchestration tasks

Addressed by: https://review.openstack.org/356401
    Do not persist transiend status in DB

Addressed by: https://review.openstack.org/344909
    Add puppet and daemonize to default packages list

Addressed by: https://review.openstack.org/357126
    Introduced metadata for deployment graphs

Gerrit topic: https://review.openstack.org/#q,topic:(detached,n,z

Addressed by: https://review.openstack.org/357717
    Implemented update method for TransactionObject

Addressed by: https://review.openstack.org/357362
    Serialize provisioning info within deployment serializer

Addressed by: https://review.openstack.org/357892
    Add initial provider from connectivity-checker-plugin

Addressed by: https://review.openstack.org/358578
    Implemented support for graph metadata

Addressed by: https://review.openstack.org/358707
    Extend tasks table \w dry_run and graph_type attrs

Addressed by: https://review.openstack.org/358708
    Implement Transaction Manager

Addressed by: https://review.openstack.org/358711
    Graphs Execution RESTful API

Addressed by: https://review.openstack.org/358712
    Introduce new orchestration tasks

Addressed by: https://review.openstack.org/358791
    Serialize provisioning info within deployment serializer

Addressed by: https://review.openstack.org/359011
    Introduced metadata for deployment graphs

Addressed by: https://review.openstack.org/359032
    Fixed updating node status in transaction resp

Addressed by: https://review.openstack.org/359133
    Use method Node.get_status to get status of node

Addressed by: https://review.openstack.org/359137
    Support Noop mode for every existing tasks

Addressed by: https://review.openstack.org/359169
    Move graph-concept-extensions migrations to 9.0.2

Addressed by: https://review.openstack.org/359170
    Rename migrations 9.0.2 to 9.1

Addressed by: https://review.openstack.org/339126
    Move provision tasks out of nailgun and astute

Addressed by: https://review.openstack.org/359280
    Split provision and deletion into several deployment tasks

Addressed by: https://review.openstack.org/359347
    Support Noop mode for every existing tasks

Addressed by: https://review.openstack.org/360005
    Add puppet and daemonize to default packages list

Addressed by: https://review.openstack.org/360076
    Implemented support for graph metadata

Addressed by: https://review.openstack.org/360098
    Save error status in DB

Addressed by: https://review.openstack.org/360136
    Now /graphs/execute/ handler is used to execute graph

Addressed by: https://review.openstack.org/360181
    Fixed actions on transaction comletion

Addressed by: https://review.openstack.org/360254
    Move provision tasks out of nailgun and astute

Addressed by: https://review.openstack.org/361001
    Add initial provider from connectivity-checker-plugin

Addressed by: https://review.openstack.org/362779
    Add tests and handlers for graph_concept_extension.

Addressed by: https://review.openstack.org/363691
    Base code for remve OVS usage ability

Addressed by: https://review.openstack.org/363710
    Move gateway ping to connectivity tests

Addressed by: https://review.openstack.org/364870
    Rename migrations 9.0.2 to 9.1

Gerrit topic: https://review.openstack.org/#q,topic:bug/1619638,n,z

Addressed by: https://review.openstack.org/366056
    Add tests and handlers for graph_concept_extension.

Addressed by: https://review.openstack.org/367942
    Add default graphs sequence

Addressed by: https://review.openstack.org/370080
    Add default graphs sequence

Addressed by: https://review.openstack.org/370082
    Verification graph tasks were added

Addressed by: https://review.openstack.org/370085
    Base code for remove OVS usage ability

Addressed by: https://review.openstack.org/371395
    Move gateway ping to connectivity tests

Addressed by: https://review.openstack.org/371513
    Revert "Verification graph tasks were added"

Addressed by: https://review.openstack.org/371514
    Revert "Base code for remove OVS usage ability"

Addressed by: https://review.openstack.org/409838
    Verification graph tasks were added

Addressed by: https://review.openstack.org/410085
    Revert "Revert "Verification graph tasks were added""

Addressed by: https://review.openstack.org/418222
    Revert "Revert "Base code for remove OVS usage ability""

Addressed by: https://review.openstack.org/436412
    Add default graphs sequence

Addressed by: https://review.openstack.org/438764
    Fail tolerance behavior for upload file tasks

Addressed by: https://review.openstack.org/438866
    Fail tolerance behavior for upload file tasks

Addressed by: https://review.openstack.org/442430
    Fail tolerance behavior for upload file tasks

Addressed by: https://review.openstack.org/442437
    Add default graphs sequence

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.