Allow services to have independent hostnames

Registered by Jim Rollenhagen on 2018-12-18

Currently kolla_internal_fqdn and kolla_external_fqdn are used as the endpoints for every service. This is both in service catalog data and configuration files (mostly keystone endpoints in the latter).

Some users desire to use an external load balancer which proxies to services based on the hostname in the request - for example, nova.example.com goes to nova, keystone.example.com goes to keystone, etc.
Some users desire to split control plane services across multiple machines. For example, placement API takes a beating, so users may wish to put placement on its own machines.

To meet these use cases, we can add vars for these service-specific hostnames, which default to the old value to keep the simple use case valid, and maintain backward compatibility. For example, for nova we will add nova_internal_fqdn and nova_external_fqdn. Users can override these as needed, or leave them as is to default to the shared kolla_internal_fqdn and kolla_external_fqdn.

As the main use case for proxying based on hostname is to put services on one port, we'll also need to make a split between the listening port for each service and the port used for API requests - we'll add vars like "nova_api_listen_port" for these (defaulting to vars like "nova_api_port" for backwards compatibility), to allow the load balancer and services to run on the same port on the same interface.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
Jim Rollenhagen
Direction:
Approved
Assignee:
Jim Rollenhagen
Definition:
Approved
Series goal:
Accepted for stein
Implementation:
Implemented
Milestone target:
milestone icon 8.0.0
Started by
Mark Goddard on 2019-03-29
Completed by
Mark Goddard on 2019-03-29

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/626923
    Allow nova services to use independent hostnames

Addressed by: https://review.openstack.org/626924
    Allow glance services to use independent hostnames

Addressed by: https://review.openstack.org/626925
    Allow neutron services to use independent hostnames

Addressed by: https://review.openstack.org/626926
    Allow keystone services to use independent hostnames

Addressed by: https://review.openstack.org/626927
    Use keystone_*_url var in all configs

Addressed by: https://review.openstack.org/641112
    Allow senlin services to use independent hostnames

Addressed by: https://review.openstack.org/641463
    Allow octavia services to use independent hostnames

Gerrit topic: https://review.opendev.org/#/q/topic:bp/service-hostnames

Addressed by: https://review.opendev.org/655697
    Allow horizon listening port to be different than reachable port

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.