Separate roles for Swift nodes

Registered by Ivan Ponomarev

Add ability to deploy and scale out Swift clusters independently from OpenStack controller nodes. For that, Fuel should recognize swift proxy and storage as separate node roles.

1) The first step is to add the new role to the fuel UI:
https://docs.google.com/a/mirantis.com/document/d/1h-HoGnweHg2P_Y3GJ50auFwBw-gVo9E__YZDmsq52Zc/edit?usp=sharing
fixturex:
https://drive.google.com/a/mirantis.com/file/d/0B9btXsvnYkhXMzVabzVwZ29SRkU/edit?usp=sharing
serializer:
https://drive.google.com/a/mirantis.com/file/d/0B9btXsvnYkhXbWFhNGpBVmxwbTg/edit?usp=sharing

2) Replace puppet modules from Mirantis wiki
modules:
https://drive.google.com/a/mirantis.com/file/d/0B9btXsvnYkhXUUMwNmFWem9MV2c/edit?usp=sharing

3) Change public and private VIPs for swift primary node in astute.yaml. Also it is possible to use only HAProxy from conroller without corosync and pacemaker.

4) After successful deployment it's necessary to collect all mounted devices and put them to astute.yaml on primary-swift-proxy node. Truly it should be done by orcestrator

Related bugs:
https://bugs.launchpad.net/fuel/+bug/1274578

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Ivan Ponomarev
Direction:
Needs approval
Assignee:
None
Definition:
Superseded
Series goal:
Accepted for 6.1.x
Implementation:
Not started
Milestone target:
milestone icon 6.1
Completed by
Vladimir Kuklin

Related branches

Sprints

Whiteboard

[Roman Rufanov]
change the description to "allow Fuel to scale SWIFT to more nodes besides Controllers"

[Dmitry Borodaenko]
Done.

[Andrew Woodward]
For the not indoctrinated.

the basics are that the roles metadata needs to be added to openstack.yaml[1], they are already in the serializer[2], and then look at and possibly fix any issues in puppet cluster_ha[3] we had parts of it working a long, long time ago, but never fixed it up

[1] https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/fixtures/openstack.yaml
[2] https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/orchestrator/priority_serializers.py#L119-144
[3] https://github.com/stackforge/fuel-library/blob/master/deployment/puppet/osnailyfacter/manifests/cluster_ha.pp#L917-984
the two missing role names are 'storage' and 'swift-proxy'

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.