Enable custom roles
Beyond the composable services within roles requirement, there is a need to enable flexible definition of custom roles, e.g groups of nodes in addition to the fixed Controller, Compute and *Storage roles.
This will enable independently scaling certain services beyond the 3-controller topology, and also simplify integration of optional or 3rd party tools which require dedicated nodes (such as some SDN controller nodes).
Blueprint information
- Status:
- Complete
- Approver:
- Steven Hardy
- Priority:
- High
- Drafter:
- Steven Hardy
- Direction:
- Approved
- Assignee:
- Steven Hardy
- Definition:
- Approved
- Series goal:
- Accepted for newton
- Implementation:
-
Implemented
- Milestone target:
-
newton-rc1
- Started by
- Steven Hardy
- Completed by
- Emilien Macchi
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
WIP prototyping fully composable/custom roles
Addressed by: https:/
WIP wire in jinja templating for custom roles
Addressed by: https:/
Remove depends_on: Networks from ControllerServi
Addressed by: https:/
Replace NodeConfigIdent
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Convert EndpointMap to not require per-service VIP parameters
Gerrit topic: https:/
Addressed by: https:/
Move AllNodesValidat
Addressed by: https:/
Move AllNodesDeployments into jinja template loop
Addressed by: https:/
Remove some properties from overcloud.yaml Controller group
Addressed by: https:/
Move per-role *SchedulerHints parameters into role templates
Addressed by: https:/
Remove KeyName parameter from overcloud template
Addressed by: https:/
Move *Image parameters into role templates
Addressed by: https:/
Move *Flavor parameters into per-role templates
Addressed by: https:/
Filter null/None service names
Addressed by: https:/
Remove Compute role parameters from overcloud.yaml
Addressed by: https:/
Add EnabledServices output to overcloud.yaml
Addressed by: https:/
Convert AllNodesConfig hosts config to a map
Addressed by: https:/
Create per-role node_names in hieradata for all nodes
Addressed by: https:/
WIP Create composable mapping between enabled services and role ips
Addressed by: https:/
Allow map_replace substitution of network names
Addressed by: https:/
Convert ServiceNetMap to a nested template
Addressed by: https:/
Align node_ips hiera keys with the service name.
Addressed by: https:/
Switch rabbit_hosts list to use hiera interpolation
Addressed by: https:/
Remove deprecated net_ip_subnet_map output
Addressed by: https:/
Remove deprecated net_ip_uri_map output
Addressed by: https:/
Remove unneeded net_ip_map dump into hieradata
Addressed by: https:/
Pass ServiceNetMap to services
Addressed by: https:/
Now fly and set cinder:
Addressed by: https:/
Remove deprecated node_ips hiera keys
Addressed by: https:/
Rename NeutronServer to NeutronApi to align with ServiceNetMap
Addressed by: https:/
Add service_ips in csv format to allNodes hieradata
Addressed by: https:/
Move ceph cluster config out of allNodesConfig
Addressed by: https:/
Generate composable service node_names lists
Addressed by: https:/
Move out of roles any Ceph setting
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Create hiera service_enabled keys for enabled services
Addressed by: https:/
Conditionally expose haproxy endpoints
Addressed by: https:/
Rename opendaylight service to opendaylight_api
Addressed by: https:/
Remove hard-coded per-service rabbitmq hieradata
Addressed by: https:/
Create NetIpListMap for all roles
Addressed by: https:/
Composable per-service VIP hieradata
Addressed by: https:/
Cleanup haproxy service from explicit services enablement
Gerrit topic: https:/
Addressed by: https:/
Remove mangling swift memcached list (now in puppet-tripleo)
Addressed by: https:/
Convert SwiftDevicesAnd
Addressed by: https:/
WIP allow overcloud.j2.yaml
Addressed by: https:/
Move role deployment steps into overcloud.yaml
Addressed by: https:/
Move per-role NetIpListMap's into jinja template loop
Addressed by: https:/
Move RedisVirtualIP hiera into VipMap
Addressed by: https:/
Remove *ExtraConfig parameters from overcloud.yaml
Addressed by: https:/
Move role ResourceGroups inside the jinja2 loop
Addressed by: https:/
Convert allNodesConfig properties to composable jinja2
Addressed by: https:/
Convert VipConfig list to jinja2
Addressed by: https:/
Convert deploy steps to jinja2 loop
Gerrit topic: https:/
Addressed by: https:/
Set Redis VIP on all nodes
Addressed by: https:/
Convert UpdateWorkflow to support composable roles
Addressed by: https:/
Convert AllNodesExtraConfig to support composable roles
Addressed by: https:/
Get template contents from plan, not local path
Gerrit topic: https:/
Addressed by: https:/
[squash] Required backports for stable/newton
Addressed by: https:/
Revert "Convert allNodesConfig properties to composable jinja2"
Addressed by: https:/
TESTING
Addressed by: https:/
Make service profiles default to rabbitmq_node_ips
Addressed by: https:/
Merge pre|post puppet resources into pre|post config.
Addressed by: https:/
Merge pre|post puppet resources into pre|post config.
Gerrit topic: https:/
Addressed by: https:/
Allows to use custom role name for validations
Addressed by: https:/
Allows to use custom role name for validations
Addressed by: https:/
Allows to use custom role name for validations
Work Items
Dependency tree

* Blueprints in grey have been implemented.