diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index 9f97fe7a93..9694c1d81f 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -301,6 +301,13 @@ conditions: - {get_param: [{{role.name}}IPs, 'ctlplane', {get_param: NodeIndex}]} {%- endif %} - "" +{%- for network in networks %} + {{role.name}}_{{network.name}}_fixed_ip_set: + not: + equals: + - {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]} + - '' +{%- endfor %} resources: {{server_resource_name}}: @@ -397,6 +404,11 @@ resources: type: OS::TripleO::{{role.name}}::Ports::{{network.name}}Port properties: ControlPlaneIP: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]} + FixedIPs: + if: + - {{role.name}}_{{network.name}}_fixed_ip_set + - [{ip_address: {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]}}] + - [] IPPool: map_merge: {%- if role.deprecated_param_ips is defined %} diff --git a/releasenotes/notes/neutron-port-predictable-ips-857b8369ca81aa4c.yaml b/releasenotes/notes/neutron-port-predictable-ips-857b8369ca81aa4c.yaml new file mode 100644 index 0000000000..ac187393de --- /dev/null +++ b/releasenotes/notes/neutron-port-predictable-ips-857b8369ca81aa4c.yaml @@ -0,0 +1,23 @@ +--- +features: + - | + Support for predictable IP addressing added to the default port templates. + In previous releases the use of _from_pool templates was required to have + predictable ip addresses assigned to the nodes. Use of the + ``port_from_pool`` templates is no longer required. The interface to + configure predictable IP addressing without ``port_from_pool`` templates is + the same. For example:: + + parameter_defaults: + ControllerIPs: + intapi: + - 10.0.0.10 + - 10.0.0.11 + external: + - 172.16.1.10 + - 172.16.1.11 +upgrade: + - | + Support for predictable IP addressing has been added to the default port + templates. This however has not been tested for upgrades. If upgrading + continues use of the _from_pool templates is required.