You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.2 KiB
112 lines
3.2 KiB
heat_template_version: wallaby |
|
|
|
description: > |
|
Creates a port for a VIP on the isolated network NetworkName. |
|
The IP address will be chosen automatically if FixedIPs is empty. |
|
|
|
parameters: |
|
RootStackName: |
|
description: The name of the stack/plan. |
|
type: string |
|
ServiceName: # Here for compatibility with from_service.yaml |
|
description: Name of the service to lookup |
|
default: '' |
|
type: string |
|
NetworkName: |
|
description: Name of the network where the VIP will be created |
|
default: ctlplane |
|
type: string |
|
PortName: |
|
description: Name of the port |
|
default: '' |
|
type: string |
|
DnsName: |
|
description: DNS name of the port |
|
default: '' |
|
type: string |
|
ControlPlaneIP: # Here for compatability with noop.yaml |
|
description: IP address on the control plane |
|
default: '' |
|
type: string |
|
ControlPlaneSubnetCidr: # Here for compatibility with noop.yaml |
|
default: '' |
|
description: > |
|
The subnet CIDR of the control plane network. (The parameter is |
|
automatically resolved from the ctlplane subnet's cidr attribute.) |
|
type: string |
|
ControlPlaneNetwork: |
|
description: The name of the undercloud Neutron control plane |
|
default: ctlplane |
|
type: string |
|
ControlPlaneSubnet: |
|
description: The name of the undercloud Neutron control plane subnet |
|
default: ctlplane-subnet |
|
type: string |
|
FixedIPs: |
|
description: > |
|
Control the IP allocation for the VIP port. E.g. |
|
[{'ip_address':'1.2.3.4'}] |
|
default: [] |
|
type: json |
|
IsVirtualIP: # Here for compatibility |
|
type: boolean |
|
default: false |
|
|
|
conditions: |
|
network_is_ctlplane: |
|
equals: |
|
- get_param: NetworkName |
|
- ctlplane |
|
fixed_ip_not_set: |
|
equals: |
|
- yaql: |
|
expression: $.data.where($.get('ip_address')) |
|
data: {get_param: FixedIPs} |
|
- [] |
|
net_is_ctlplane_and_fixed_ip_not_set: |
|
and: |
|
- network_is_ctlplane |
|
- fixed_ip_not_set |
|
|
|
resources: |
|
VipPort: |
|
type: OS::Neutron::Port |
|
properties: |
|
network: {get_param: NetworkName} |
|
name: {get_param: PortName} |
|
fixed_ips: |
|
if: |
|
- net_is_ctlplane_and_fixed_ip_not_set |
|
- [{subnet: {get_param: ControlPlaneSubnet}}] |
|
- get_param: FixedIPs |
|
replacement_policy: AUTO |
|
tags: |
|
- str_replace: |
|
template: tripleo_service_vip=$SERVICE_NAME |
|
params: |
|
$SERVICE_NAME: {get_param: ServiceName} |
|
- str_replace: |
|
template: tripleo_stack_name=$STACK_NAME |
|
params: |
|
$STACK_NAME: {get_param: RootStackName} |
|
outputs: |
|
ip_address: |
|
description: Virtual IP network IP |
|
value: {get_attr: [VipPort, fixed_ips, 0, ip_address]} |
|
ip_address_uri: |
|
description: Virtual IP network IP (for compatibility with vip.yaml) |
|
value: |
|
str_replace: |
|
template: |
|
make_url: |
|
host: {get_attr: [VipPort, fixed_ips, 0, ip_address]} |
|
params: |
|
//: '' |
|
ip_subnet: |
|
description: IP/Subnet CIDR for the network associated with this IP |
|
value: |
|
list_join: |
|
- '' |
|
- - {get_attr: [VipPort, fixed_ips, 0, ip_address]} |
|
- '/' |
|
- {str_split: ['/', {get_attr: [VipPort, subnets, 0, cidr]}, 1]}
|
|
|