Modify Fuel Library to become more modular

Registered by Andrew Woodward

Fuel enhacements to make fuel library more modular and allow alternate providers for deployment tasks: e.g. Chef, Puppet and so on running as workflow with rollback and other capabilities.

Blueprint information

Status:
Complete
Approver:
Vladimir Kuklin
Priority:
Essential
Drafter:
Aleksandr Didenko
Direction:
Approved
Assignee:
Aleksandr Didenko
Definition:
Approved
Series goal:
Accepted for 6.1.x
Implementation:
Implemented
Milestone target:
milestone icon 6.1
Started by
Vladimir Kuklin
Completed by
Vladimir Kuklin

Whiteboard

How-tos: https://etherpad.openstack.org/p/fuel-library-modularization

Gerrit topic: https://review.openstack.org/#q,topic:bp/fuel-library-modularization,n,z

Addressed by: https://review.openstack.org/142531
    Separete Hiera and Netconfig roles

Addressed by: https://review.openstack.org/143828
    Implement hiera_structutre fuction

Addressed by: https://review.openstack.org/143829
    Stub of other modular roles

Addressed by: https://review.openstack.org/145473
    Separate step for logging configuration

Addressed by: https://review.openstack.org/145494
    Separate step for monit configuration

Addressed by: https://review.openstack.org/146112
    Separate step for RabbitMQ deploy

Addressed by: https://review.openstack.org/146422
    Corosync/Pacemaker deployment as separate step

Addressed by: https://review.openstack.org/146441
    Database deployment as separate step

Addressed by: https://review.openstack.org/146459
    Update globals.pp

Addressed by: https://review.openstack.org/146477
    Make globals to write variables into Hiera

Addressed by: https://review.openstack.org/146830
    Update globalls.pp

Addressed by: https://review.openstack.org/146907
    Separate step for Heat configuration

Addressed by: https://review.openstack.org/146931
    Separate step for Murano configuration

Addressed by: https://review.openstack.org/138457
    Sahara HA wrapper

Addressed by: https://review.openstack.org/146935
    Separate step for Sahara configuration

Addressed by: https://review.openstack.org/146936
    Separate step for Mellanox configuration

Addressed by: https://review.openstack.org/146939
    Separate steps for MongoDB configuration

Addressed by: https://review.openstack.org/147088
    Virtual IPs deployment as separate step

Addressed by: https://review.openstack.org/147166
    Fix forgotten data_name variable

Addressed by: https://review.openstack.org/147221
    Make lagacy manifests without other tasks

Gerrit topic: https://review.openstack.org/#q,topic:bp/for,n,z

Addressed by: https://review.openstack.org/147591
    Add blueprint for Fuel Library modularization

Addressed by: https://review.openstack.org/147819
    HAproxy deployment as separate step

Addressed by: https://review.openstack.org/148522
    Separate controller top-scope role

Addressed by: https://review.openstack.org/148852
    Keystone deployment as separate step

Gerrit topic: https://review.openstack.org/#q,topic:modular-compute-role,n,z

Gerrit topic: https://review.openstack.org/#q,topic:modular-cinder-role,n,z

Addressed by: https://review.openstack.org/149226
    Separate zabbix top-scope role

Gerrit topic: https://review.openstack.org/#q,topic:modular-ceph-osd-role,n,z

Addressed by: https://review.openstack.org/149635
    Nova-controller deployment as separate step

Addressed by: https://review.openstack.org/150010
    Fix typo in globals

Addressed by: https://review.openstack.org/148879
    Separate compute top-scope role

Addressed by: https://review.openstack.org/149240
    Separate ceph-osd top-scope role

Addressed by: https://review.openstack.org/148943
    Separate cinder top-scope role

Addressed by: https://review.openstack.org/150455
    Separate step for VMware VCenter configuration

Addressed by: https://review.openstack.org/150837
    Glance deployment as separate step

Addressed by: https://review.openstack.org/151339
    Separate step for Murano configuration

Addressed by: https://review.openstack.org/151667
    Swift deployment as separate step

Addressed by: https://review.openstack.org/152084
    Remove no longer needed manifests

Addressed by: https://review.openstack.org/152124
    Class cluster as separate step

Addressed by: https://review.openstack.org/152166
    Fix amqp_hosts function messing with input data

Addressed by: https://review.openstack.org/152514
    Cluster-haproxy as a separate step

Addressed by: https://review.openstack.org/152596
    Openstack-haproxy and openstack-controller as a separate step

Addressed by: https://review.openstack.org/152607
    Openstack::Swift as separate step

Addressed by: https://review.openstack.org/154540
    Remove package overrides

Addressed by: https://review.openstack.org/155367
    Adapt netconfig step to granular deployment

Addressed by: https://review.openstack.org/155795
    Add the task graph plotting tool

Addressed by: https://review.openstack.org/156269
    Add test for hiera and globals tasks

Addressed by: https://review.openstack.org/157457
    Set of fixes

Addressed by: https://review.openstack.org/157748
    Adapt neutron part of manifests to new network_scheme

Gerrit topic: https://review.openstack.org/#q,topic:bp/refactor-l23-linux-bridges,n,z

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

Addressed by: https://review.openstack.org/160116
    Separate taks for openstack::network deployment

Addressed by: https://review.openstack.org/160162
    Graph and manifests cleanup for modularization

Addressed by: https://review.openstack.org/160450
    Database deployment as separate step

Addressed by: https://review.openstack.org/160485
    New tasks for Horizon and API proxy configuration

Addressed by: https://review.openstack.org/160926
    Memcached task

Addressed by: https://review.openstack.org/160960
    Database, Keystone tasks

Addressed by: https://review.openstack.org/160967
    Disable hiera debug

Addressed by: https://review.openstack.org/161169
    FIX: L23network: auto-add main interface

Addressed by: https://review.openstack.org/158053
    l23_stored_config provider for CentOS6

Addressed by: https://review.openstack.org/160452
    dhcp support for L23network::L3::Ifconfig

Addressed by: https://review.openstack.org/142489
    Add upstream puppet modules

Addressed by: https://review.openstack.org/142490
    New L23network implementation.

Addressed by: https://review.openstack.org/161184
    Add to hiera network_provider variable

Gerrit topic: https://review.openstack.org/#q,topic:bp/pacemaker-improvements,n,z

Addressed by: https://review.openstack.org/136446
    Replace wait-for-haproxy-backends with puppet type

Addressed by: https://review.openstack.org/162980
    Ceph-mon deployment in a separate task.

Addressed by: https://review.openstack.org/163457
    Ceilometer task

Addressed by: https://review.openstack.org/163918
    Move default router ping to virtual_ips

Addressed by: https://review.openstack.org/163938
    Cinder controller services as separate task

Addressed by: https://review.openstack.org/165571
    Refactor pre/post modular tests

Addressed by: https://review.openstack.org/172843
    Replace wait-for-haproxy-backends with puppet type

Addressed by: https://review.openstack.org/172845
    Replace wait-for-haproxy-backends with puppet type

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

Addressed by: https://review.openstack.org/167219
    Improve task_graph

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

Addressed by: https://review.openstack.org/185381
    fuel-dev -- Modular arch description

(?)

Work Items

Work items:
Writing blueprint in Fuel Spec format: INPROGRESS
Add dependency: granular-deployment-based-on-tasks : DONE
Separate 'hiera', 'netconfig' and 'legacy' tasks: DONE
Separate tasks for top-scope roles and remove 'legacy' task: DONE
Split controller task into smaller tasks: INPROGRESS
Split opentack-controller task into separate OpenStack components tasks: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.