Add net_vip_map_external to be used for an external balancer
Changes VipMap into a new NetVipMap resource which defaults to being the same as the 'old' VipMap. An environment file can be used to map NetVipMap instead to the net_vip_map_external.yaml which allows for passing in explicit Virtual IP addresses. It also ensures that references to the Virtual IPs are gathered from the VipMap resource and allows for an empty ControlPlaneIP parameter in the neutron port templates where it can be. Co-Authored-By: Giulio Fidente <gfidente@redhat.com> Change-Id: Ifad32e18f12b9997e3f89e4afe3ebc4c30e14a86
This commit is contained in:
parent
705a6401a6
commit
bb0d66b800
13
environments/external-loadbalancer-vip.yaml
Normal file
13
environments/external-loadbalancer-vip.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
resource_registry:
|
||||
OS::TripleO::Network::Ports::NetVipMap: ../network/ports/net_vip_map_external.yaml
|
||||
|
||||
parameter_defaults:
|
||||
# When using an external loadbalancer set the following in parameter_defaults
|
||||
# to control your VIPs (currently one per network)
|
||||
# NOTE: we will eventually move to one VIP per service
|
||||
#
|
||||
# ControlNetworkVip:
|
||||
# ExternalNetworkVip:
|
||||
# InternalApiNetworkVip:
|
||||
# StorageNetworkVip:
|
||||
# StorageMgmtNetworkVip:
|
@ -15,6 +15,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
ControlPlaneNetwork:
|
||||
description: The name of the undercloud Neutron control plane
|
||||
|
@ -15,6 +15,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
ControlPlaneNetwork: # Here for compatibility with ctlplane_vip.yaml
|
||||
description: The name of the undercloud Neutron control plane
|
||||
|
@ -14,6 +14,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
|
||||
resources:
|
||||
|
50
network/ports/net_vip_map_external.yaml
Normal file
50
network/ports/net_vip_map_external.yaml
Normal file
@ -0,0 +1,50 @@
|
||||
heat_template_version: 2015-04-30
|
||||
|
||||
parameters:
|
||||
# Set these via parameter defaults to configure external VIPs
|
||||
ControlNetworkVip:
|
||||
default: ''
|
||||
type: string
|
||||
ExternalNetworkVip:
|
||||
default: ''
|
||||
type: string
|
||||
InternalApiNetworkVip:
|
||||
default: ''
|
||||
type: string
|
||||
StorageNetworkVip:
|
||||
default: ''
|
||||
type: string
|
||||
StorageMgmtNetworkVip:
|
||||
default: ''
|
||||
type: string
|
||||
# The following are unused in this template
|
||||
ControlPlaneIp:
|
||||
default: ''
|
||||
type: string
|
||||
ExternalIp:
|
||||
default: ''
|
||||
type: string
|
||||
InternalApiIp:
|
||||
default: ''
|
||||
type: string
|
||||
StorageIp:
|
||||
default: ''
|
||||
type: string
|
||||
StorageMgmtIp:
|
||||
default: ''
|
||||
type: string
|
||||
TenantIp:
|
||||
default: ''
|
||||
type: string
|
||||
|
||||
outputs:
|
||||
net_ip_map:
|
||||
description: >
|
||||
A Hash containing a mapping of network names to assigned IPs
|
||||
for a specific machine.
|
||||
value:
|
||||
ctlplane: {get_param: ControlNetworkVip}
|
||||
external: {get_param: ExternalNetworkVip}
|
||||
internal_api: {get_param: InternalApiNetworkVip}
|
||||
storage: {get_param: StorageNetworkVip}
|
||||
storage_mgmt: {get_param: StorageMgmtNetworkVip}
|
@ -14,6 +14,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
|
||||
resources:
|
||||
@ -39,4 +40,3 @@ outputs:
|
||||
- '/'
|
||||
- {get_attr: [StoragePort, subnets, 0, cidr, -2]}
|
||||
- {get_attr: [StoragePort, subnets, 0, cidr, -1]}
|
||||
|
||||
|
@ -14,6 +14,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
|
||||
resources:
|
||||
|
@ -14,6 +14,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
|
||||
resources:
|
||||
|
@ -15,6 +15,7 @@ parameters:
|
||||
type: string
|
||||
ControlPlaneIP: # Here for compatability with noop.yaml
|
||||
description: IP address on the control plane
|
||||
default: ''
|
||||
type: string
|
||||
ControlPlaneNetwork:
|
||||
description: The name of the undercloud Neutron control plane
|
||||
|
@ -56,6 +56,7 @@ resource_registry:
|
||||
OS::TripleO::Network::Storage: network/noop.yaml
|
||||
OS::TripleO::Network::Tenant: network/noop.yaml
|
||||
|
||||
OS::TripleO::Network::Ports::NetVipMap: network/ports/net_ip_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpMap: network/ports/net_ip_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpSubnetMap: network/ports/net_ip_subnet_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpListMap: network/ports/net_ip_list_map.yaml
|
||||
|
@ -39,6 +39,7 @@ resource_registry:
|
||||
OS::TripleO::Network::Storage: network/noop.yaml
|
||||
OS::TripleO::Network::Tenant: network/noop.yaml
|
||||
|
||||
OS::TripleO::Network::Ports::NetVipMap: network/ports/net_ip_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpMap: network/ports/net_ip_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpSubnetMap: network/ports/net_ip_subnet_map.yaml
|
||||
OS::TripleO::Network::Ports::NetIpListMap: network/ports/net_ip_list_map.yaml
|
||||
|
@ -889,8 +889,8 @@ resources:
|
||||
SwiftPartPower: {get_param: SwiftPartPower}
|
||||
SwiftPassword: {get_param: SwiftPassword}
|
||||
SwiftReplicas: { get_param: SwiftReplicas}
|
||||
VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
|
||||
PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
|
||||
VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
|
||||
PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
|
||||
ServiceNetMap: {get_param: ServiceNetMap}
|
||||
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
||||
CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
@ -963,7 +963,7 @@ resources:
|
||||
NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
|
||||
NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
|
||||
NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
|
||||
NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
|
||||
NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
|
||||
NovaPassword: {get_param: NovaPassword}
|
||||
NtpServer: {get_param: NtpServer}
|
||||
RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
|
||||
@ -1000,7 +1000,7 @@ resources:
|
||||
CinderPassword: {get_param: CinderPassword}
|
||||
KeyName: {get_param: KeyName}
|
||||
Flavor: {get_param: OvercloudBlockStorageFlavor}
|
||||
VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
|
||||
GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
|
||||
RabbitPassword: {get_param: RabbitPassword}
|
||||
RabbitUserName: {get_param: RabbitUserName}
|
||||
@ -1178,7 +1178,7 @@ resources:
|
||||
PortName: storage_management_virtual_ip
|
||||
|
||||
VipMap:
|
||||
type: OS::TripleO::Network::Ports::NetIpMap
|
||||
type: OS::TripleO::Network::Ports::NetVipMap
|
||||
properties:
|
||||
ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
|
||||
@ -1213,11 +1213,11 @@ resources:
|
||||
mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
|
||||
rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
|
||||
# direct configuration of Virtual IPs for each network
|
||||
control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
|
||||
internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
|
||||
storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
|
||||
storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
|
||||
control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
|
||||
public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
|
||||
internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
|
||||
storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
|
||||
storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
|
||||
|
||||
ControllerBootstrapNodeConfig:
|
||||
type: OS::TripleO::BootstrapNode::SoftwareConfig
|
||||
@ -1451,7 +1451,7 @@ outputs:
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
|
||||
PublicVip:
|
||||
description: Controller VIP for public API endpoints
|
||||
value: {get_attr: [PublicVirtualIP, ip_address]}
|
||||
value: {get_attr: [VipMap, net_ip_map, external]}
|
||||
CeilometerInternalVip:
|
||||
description: VIP for Ceilometer API internal endpoint
|
||||
value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
|
||||
|
Loading…
x
Reference in New Issue
Block a user