diff --git a/deployed-server/ctlplane-port.yaml b/deployed-server/ctlplane-port.yaml index a351248fca..19e7f56a9c 100644 --- a/deployed-server/ctlplane-port.yaml +++ b/deployed-server/ctlplane-port.yaml @@ -1,6 +1,9 @@ heat_template_version: rocky parameters: + RootStackName: + description: The name of the stack/plan. + type: string network: type: string default: ctlplane @@ -33,6 +36,11 @@ resources: - - {get_param: name} - port replacement_policy: AUTO + tags: + - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: RootStackName} outputs: fixed_ips: diff --git a/deployed-server/deployed-neutron-port.yaml b/deployed-server/deployed-neutron-port.yaml index 662bc4e4ec..af7bae810c 100644 --- a/deployed-server/deployed-neutron-port.yaml +++ b/deployed-server/deployed-neutron-port.yaml @@ -33,9 +33,20 @@ parameters: replacement_policy: default: '' type: string + tags: + default: [] + type: comma_delimited_list DeployedServerPortMap: default: {} type: json + IsVirtualIP: # Here for compatibility + default: false + type: boolean + Role: # Here for compatibility + description: > + The TripleO Role Name + type: string + default: '' outputs: diff --git a/deployed-server/deployed-server.yaml b/deployed-server/deployed-server.yaml index 0ece475438..75448a5c0f 100644 --- a/deployed-server/deployed-server.yaml +++ b/deployed-server/deployed-server.yaml @@ -1,5 +1,8 @@ heat_template_version: rocky parameters: + RootStackName: + description: The name of the stack/plan. + type: string image: type: string default: unused @@ -76,6 +79,11 @@ resources: - - {get_param: name} - ctlplane replacement_policy: AUTO + tags: + - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: RootStackName} outputs: OS::stack_id: diff --git a/network/ports/ctlplane_vip.yaml b/network/ports/ctlplane_vip.yaml index 1f6a3b8b31..1826f913a7 100644 --- a/network/ports/ctlplane_vip.yaml +++ b/network/ports/ctlplane_vip.yaml @@ -5,6 +5,9 @@ description: > 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: '' @@ -45,6 +48,9 @@ parameters: [{'ip_address':'1.2.3.4'}] default: [] type: json + IsVirtualIP: # Here for compatibility + type: boolean + default: false conditions: fixed_ip_not_set: @@ -67,7 +73,15 @@ resources: - [{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 diff --git a/network/ports/from_service.yaml b/network/ports/from_service.yaml index 2e257a4118..e4c1f7e179 100644 --- a/network/ports/from_service.yaml +++ b/network/ports/from_service.yaml @@ -44,6 +44,9 @@ parameters: [{'ip_address':'1.2.3.4'}] default: [] type: json + IsVirtualIP: # Here for compatibility + type: boolean + default: false ServiceVips: default: {} type: json diff --git a/network/ports/from_service_v6.yaml b/network/ports/from_service_v6.yaml index 7b9a29a044..28ec742b0c 100644 --- a/network/ports/from_service_v6.yaml +++ b/network/ports/from_service_v6.yaml @@ -40,6 +40,9 @@ parameters: [{'ip_address':'1.2.3.4'}] default: [] type: json + IsVirtualIP: # Here for compatibility + type: boolean + default: false ServiceVips: default: {} type: json diff --git a/network/ports/noop.yaml b/network/ports/noop.yaml index 5ad47dd414..a78f1b2c5e 100644 --- a/network/ports/noop.yaml +++ b/network/ports/noop.yaml @@ -57,6 +57,19 @@ parameters: default: 0 description: Index of the IP to get from Pool type: number + IsVirtualIP: # Here for compatibility + type: boolean + default: false + DefaultRoute: # Here for compatibility + description: > + Whether this interface is used for the default route + type: boolean + default: false + Role: # Here for compatibility + description: > + The TripleO Role Name + type: string + default: '' outputs: ip_address: diff --git a/network/ports/ovn_mac_addr_port.yaml b/network/ports/ovn_mac_addr_port.yaml index 455161df1a..80f9fbe9b1 100644 --- a/network/ports/ovn_mac_addr_port.yaml +++ b/network/ports/ovn_mac_addr_port.yaml @@ -4,6 +4,9 @@ description: > Port without IP address, used to allocate MAC addresses for OVN chassis. parameters: + RootStackName: + description: The name of the stack/plan. + type: string PortName: description: Name of the port default: '' @@ -20,6 +23,19 @@ resources: name: {get_param: PortName} network: {get_param: OVNMacAddressNetworkName} fixed_ips: [] + tags: + - str_replace: + template: tripleo_ovn_mac_port_name=$PORT_NAME + params: + $PORT_NAME: {get_param: PortName} + - str_replace: + template: tripleo_ovn_mac_net=$NET_NAME + params: + $NET_NAME: {get_param: OVNMacAddressNetworkName} + - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: RootStackName} outputs: mac_address: diff --git a/network/ports/port.j2 b/network/ports/port.j2 index 7e7adcccb6..343d648ed7 100644 --- a/network/ports/port.j2 +++ b/network/ports/port.j2 @@ -5,6 +5,9 @@ description: > automatically if FixedIPs is empty. parameters: + RootStackName: + description: The name of the stack/plan. + type: string {{network.name}}NetName: description: The name of the {{network.name_lower}} network. default: {{network.name_lower|default(network.name|lower)}} @@ -47,6 +50,19 @@ parameters: NodeIndex: # Here for compatibility with from_pool.yaml default: 0 type: number + DefaultRoute: + description: > + Whether this interface is used for the default route + type: boolean + default: false + IsVirtualIP: + type: boolean + default: false + Role: + description: > + The TripleO Role Name + type: string + default: '' conditions: network_is_ctlplane: @@ -81,6 +97,29 @@ resources: - [{subnet: {get_param: ControlPlaneSubnet}}] - get_param: FixedIPs replacement_policy: AUTO + tags: + if: + - {get_param: IsVirtualIP} + - - str_replace: + template: tripleo_vip_net=$NET_NAME + params: + $NET_NAME: {get_param: {{network.name}}NetName} + - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: RootStackName} + - - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: RootStackName} + - str_replace: + template: tripleo_default_route=$BOOL + params: + $BOOL: {get_param: DefaultRoute} + - str_replace: + template: tripleo_role=$ROLE + params: + $ROLE: {get_param: Role} outputs: ip_address: diff --git a/network/ports/port_from_pool.j2 b/network/ports/port_from_pool.j2 index e5b1b7d101..10539e6a07 100644 --- a/network/ports/port_from_pool.j2 +++ b/network/ports/port_from_pool.j2 @@ -64,6 +64,19 @@ parameters: default: '' description: default route for the {{network.name_lower}} network type: string + DefaultRoute: # Here for compatibility + description: > + Whether this interface is used for the default route + type: boolean + default: false + IsVirtualIP: # Here for compatibility + default: false + type: boolean + Role: # Here for compatibility + description: > + The TripleO Role Name + type: string + default: '' conditions: {{network.name_lower}}_interface_default_route_set: diff --git a/network/ports/vip.yaml b/network/ports/vip.yaml index 97c8e6fc70..cb6d13319a 100644 --- a/network/ports/vip.yaml +++ b/network/ports/vip.yaml @@ -5,6 +5,9 @@ description: > 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: '' @@ -45,6 +48,9 @@ parameters: [{'ip_address':'1.2.3.4'}] default: [] type: json + IsVirtualIP: # Here for compatibility + type: boolean + default: false conditions: network_is_ctlplane: @@ -74,6 +80,15 @@ resources: - [{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: diff --git a/network/ports/vip_v6.yaml b/network/ports/vip_v6.yaml index c5c071f46d..b612b5024a 100644 --- a/network/ports/vip_v6.yaml +++ b/network/ports/vip_v6.yaml @@ -5,6 +5,9 @@ description: > 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: '' @@ -45,6 +48,9 @@ parameters: [{'ip_address':'1.2.3.4'}] default: [] type: json + IsVirtualIP: # Here for compatibility + type: boolean + default: false conditions: network_is_ctlplane: @@ -74,7 +80,15 @@ resources: - [{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 diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 451152e8c8..a35a835d20 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -932,6 +932,12 @@ resources: - [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, ctlplane]}}] - get_param: ControlFixedIPs replacement_policy: AUTO + tags: + - tripleo_vip_net=ctlplane + - str_replace: + template: tripleo_stack_name=$STACK_NAME + params: + $STACK_NAME: {get_param: 'OS::stack_name'} RedisVirtualIP: depends_on: [Networks, ServiceNetMap] @@ -1014,6 +1020,7 @@ resources: - {get_param: {{network.name}}VirtualFixedIPs} {%- endif %} - [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, {{network.name}}]}}] + IsVirtualIP: true {%- endfor %} VipMap: diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index b8af2a73df..14d3be791c 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -409,6 +409,10 @@ resources: {%- endif %} - {get_param: {{role.name}}IPs} NodeIndex: {get_param: NodeIndex} +{%- if role.default_route_networks is defined and network.name in role.default_route_networks %} + DefaultRoute: true +{%- endif %} + Role: {{role.name}} {%- endif %} {%- endfor %}