Enable usage of FQDNs for the endpoints
The endpoint map has the capability of using the cloud's name for the endpoint. This is broken, however, since this has the problem that we only take into account the overcloud's external endpoint name, which we then cannot use if we have network-isolation enabled, which is the most common use-case for real deployments. So this change proposes the following: * The external endpoint is still CloudName. * We can now set different (or the same if we want) names for the different VIPs of the network. * Using CLOUDNAME for the endpoint map will get a name for the appropriate network. bp tls-via-certmonger Change-Id: I3e7144653f0a1d783d87e6f638304b297f718929
This commit is contained in:
parent
1c8b5fa5d7
commit
f9dadcafcf
@ -30,9 +30,9 @@ import yaml
|
|||||||
(IN_FILE, OUT_FILE) = ('endpoint_data.yaml', 'endpoint_map.yaml')
|
(IN_FILE, OUT_FILE) = ('endpoint_data.yaml', 'endpoint_map.yaml')
|
||||||
|
|
||||||
SUBST = (SUBST_IP_ADDRESS, SUBST_CLOUDNAME) = ('IP_ADDRESS', 'CLOUDNAME')
|
SUBST = (SUBST_IP_ADDRESS, SUBST_CLOUDNAME) = ('IP_ADDRESS', 'CLOUDNAME')
|
||||||
PARAMS = (PARAM_CLOUDNAME, PARAM_ENDPOINTMAP, PARAM_NETIPMAP,
|
PARAMS = (PARAM_CLOUD_ENDPOINTS, PARAM_ENDPOINTMAP, PARAM_NETIPMAP,
|
||||||
PARAM_SERVICENETMAP) = (
|
PARAM_SERVICENETMAP) = (
|
||||||
'CloudName', 'EndpointMap', 'NetIpMap', 'ServiceNetMap')
|
'CloudEndpoints', 'EndpointMap', 'NetIpMap', 'ServiceNetMap')
|
||||||
FIELDS = (F_PORT, F_PROTOCOL, F_HOST) = ('port', 'protocol', 'host')
|
FIELDS = (F_PORT, F_PROTOCOL, F_HOST) = ('port', 'protocol', 'host')
|
||||||
|
|
||||||
ENDPOINT_TYPES = frozenset(['Internal', 'Public', 'Admin'])
|
ENDPOINT_TYPES = frozenset(['Internal', 'Public', 'Admin'])
|
||||||
@ -95,10 +95,11 @@ def template_parameters(config):
|
|||||||
'via parameter_defaults in the '
|
'via parameter_defaults in the '
|
||||||
'resource registry.')
|
'resource registry.')
|
||||||
|
|
||||||
params[PARAM_CLOUDNAME] = make_parameter('string',
|
params[PARAM_CLOUD_ENDPOINTS] = make_parameter(
|
||||||
'overcloud',
|
'json',
|
||||||
'The DNS name of this cloud. '
|
{},
|
||||||
'e.g. ci-overcloud.tripleo.org')
|
('A map containing the DNS names for the different endpoints '
|
||||||
|
'(external, internal_api, etc.)'))
|
||||||
return params
|
return params
|
||||||
|
|
||||||
|
|
||||||
@ -124,7 +125,10 @@ def template_output_definition(endpoint_name,
|
|||||||
['NetIpMap',
|
['NetIpMap',
|
||||||
{'get_param': ['ServiceNetMap',
|
{'get_param': ['ServiceNetMap',
|
||||||
net_param]}]},
|
net_param]}]},
|
||||||
SUBST_CLOUDNAME: {'get_param': PARAM_CLOUDNAME},
|
SUBST_CLOUDNAME: {'get_param':
|
||||||
|
[PARAM_CLOUD_ENDPOINTS,
|
||||||
|
{'get_param': ['ServiceNetMap',
|
||||||
|
net_param]}]},
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
@ -139,7 +143,10 @@ def template_output_definition(endpoint_name,
|
|||||||
'params': {'NETWORK':
|
'params': {'NETWORK':
|
||||||
{'get_param': ['ServiceNetMap',
|
{'get_param': ['ServiceNetMap',
|
||||||
net_param]}}}}]},
|
net_param]}}}}]},
|
||||||
SUBST_CLOUDNAME: {'get_param': PARAM_CLOUDNAME},
|
SUBST_CLOUDNAME: {'get_param':
|
||||||
|
[PARAM_CLOUD_ENDPOINTS,
|
||||||
|
{'get_param': ['ServiceNetMap',
|
||||||
|
net_param]}]},
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -16,6 +16,30 @@ parameters:
|
|||||||
default: overcloud
|
default: overcloud
|
||||||
description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
|
description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
|
||||||
type: string
|
type: string
|
||||||
|
CloudNameInternal:
|
||||||
|
default: overcloud.internalapi.localdomain
|
||||||
|
description: >
|
||||||
|
The DNS name of this cloud's internal API endpoint. E.g.
|
||||||
|
'ci-overcloud.internalapi.tripleo.org'.
|
||||||
|
type: string
|
||||||
|
CloudNameStorage:
|
||||||
|
default: overcloud.storage.localdomain
|
||||||
|
description: >
|
||||||
|
The DNS name of this cloud's storage endpoint. E.g.
|
||||||
|
'ci-overcloud.storage.tripleo.org'.
|
||||||
|
type: string
|
||||||
|
CloudNameStorageManagement:
|
||||||
|
default: overcloud.storagemgmt.localdomain
|
||||||
|
description: >
|
||||||
|
The DNS name of this cloud's storage management endpoint. E.g.
|
||||||
|
'ci-overcloud.storagemgmt.tripleo.org'.
|
||||||
|
type: string
|
||||||
|
CloudNameManagement:
|
||||||
|
default: overcloud.management.localdomain
|
||||||
|
description: >
|
||||||
|
The DNS name of this cloud's storage management endpoint. E.g.
|
||||||
|
'ci-overcloud.management.tripleo.org'.
|
||||||
|
type: string
|
||||||
ControlFixedIPs:
|
ControlFixedIPs:
|
||||||
default: []
|
default: []
|
||||||
description: Should be used for arbitrary ips.
|
description: Should be used for arbitrary ips.
|
||||||
@ -374,7 +398,12 @@ resources:
|
|||||||
EndpointMap:
|
EndpointMap:
|
||||||
type: OS::TripleO::EndpointMap
|
type: OS::TripleO::EndpointMap
|
||||||
properties:
|
properties:
|
||||||
CloudName: {get_param: CloudName}
|
CloudEndpoints:
|
||||||
|
external: {get_param: CloudName}
|
||||||
|
internal_api: {get_param: CloudNameInternal}
|
||||||
|
storage: {get_param: CloudNameStorage}
|
||||||
|
storage_mgmt: {get_param: CloudNameStorageManagement}
|
||||||
|
management: {get_param: CloudNameManagement}
|
||||||
NetIpMap: {get_attr: [VipMap, net_ip_map]}
|
NetIpMap: {get_attr: [VipMap, net_ip_map]}
|
||||||
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
|
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user