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.
105 lines
3.1 KiB
105 lines
3.1 KiB
heat_template_version: wallaby |
|
|
|
description: > |
|
Creates a port for a VIP on the undercloud ctlplane network. |
|
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: # Here for compatibility with isolated networks |
|
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 compatibility with noop.yaml |
|
description: IP address on the control plane |
|
default: '' |
|
type: string |
|
ControlPlaneSubnetCidr: # Here for compatibility with ctlplane_vip.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: |
|
fixed_ip_not_set: |
|
equals: |
|
- yaql: |
|
expression: $.data.where($.get('ip_address')) |
|
data: {get_param: FixedIPs} |
|
- [] |
|
|
|
resources: |
|
VipPort: |
|
type: OS::TripleO::Network::Ports::ControlPlaneVipPort |
|
properties: |
|
network: {get_param: ControlPlaneNetwork} |
|
name: {get_param: PortName} |
|
dns_name: {get_param: DnsName} |
|
fixed_ips: |
|
if: |
|
- fixed_ip_not_set |
|
- [{subnet: {get_param: ControlPlaneSubnet}}] |
|
- get_param: FixedIPs |
|
replacement_policy: AUTO |
|
tags: |
|
- str_replace: |
|
template: tripleo_vip_net=$NET_NAME |
|
params: |
|
$NET_NAME: {get_param: ControlPlaneNetwork} |
|
- 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_v6.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 ctlplane network. |
|
value: |
|
list_join: |
|
- '' |
|
- - {get_attr: [VipPort, fixed_ips, 0, ip_address]} |
|
- '/' |
|
- {str_split: ['/', {get_attr: [VipPort, subnets, 0, cidr]}, 1]}
|
|
|