Heat templates for deploying OpenStack
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

heat_template_version: rocky
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]}