|
| 1 | +--- |
| 2 | +# source: bgp_dt05/network-values/values.yaml.j2 |
| 3 | +{% set ns = namespace(interfaces={}, |
| 4 | + ocp_index=0, |
| 5 | + lb_tools={}) %} |
| 6 | + |
| 7 | +data: |
| 8 | +{% set node_groups = groups if 'rhoso-architecture-validate' not in ((zuul | default({})).job | default('')) else test_groups %} |
| 9 | +{% for host in cifmw_networking_env_definition.instances.keys() -%} |
| 10 | +{% set hostname = cifmw_networking_env_definition.instances[host]['hostname'] %} |
| 11 | +{% if host is match('^(ocp|crc).*') %} |
| 12 | +{% if 'ocp_workers' not in node_groups or host in node_groups.ocp_workers %} |
| 13 | + node_{{ ns.ocp_index }}: |
| 14 | + name: {{ hostname }} |
| 15 | +{% for network in cifmw_networking_env_definition.instances[host]['networks'].values() %} |
| 16 | +{% set ns.interfaces = ns.interfaces | |
| 17 | + combine({network.network_name: (network.parent_interface | |
| 18 | + default(network.interface_name) |
| 19 | + ) |
| 20 | + }, |
| 21 | + recursive=true) %} |
| 22 | + {{ network.network_name }}_ip: {{ network.ip_v4 }} |
| 23 | +{% if 'ctlplane' == network.network_name %} |
| 24 | + base_if: {{ network.interface_name }} |
| 25 | +{% endif %} |
| 26 | +{% endfor %} |
| 27 | +{% set node_bgp_orig_content = original_content.data.bgp.bgpdefs['node' ~ ns.ocp_index] %} |
| 28 | +{% set node_bgp_net0 = node_bgp_orig_content.bgpnet0 %} |
| 29 | +{% if 'worker-3' != hostname %} |
| 30 | +{% set node_bgp_net1 = node_bgp_orig_content.bgpnet1 %} |
| 31 | +{% endif %} |
| 32 | + bgp_peers: |
| 33 | + - {{ node_bgp_net0.bgp_peer }} |
| 34 | +{% if 'worker-3' != hostname %} |
| 35 | + - {{ node_bgp_net1.bgp_peer }} |
| 36 | +{% endif %} |
| 37 | + bgp_ip: |
| 38 | + - {{ node_bgp_net0.bgp_ip }} |
| 39 | +{% if 'worker-3' != hostname %} |
| 40 | + - {{ node_bgp_net1.bgp_ip }} |
| 41 | +{% endif %} |
| 42 | +{% set subnet_index = (hostname | split('-'))[-1] | int %} |
| 43 | +{% set ip_index = 1 if ('master-' in hostname or 'worker-3' == hostname) else 2 %} |
| 44 | +{% set loopback_ip = original_content.data.bgp.subnets.bgpmainnet[subnet_index].allocationRanges[0].start | |
| 45 | + ansible.utils.ipmath(ip_index) %} |
| 46 | +{% set loopback_ipv6 = original_content.data.bgp.subnets.bgpmainnetv6[subnet_index].allocationRanges[0].start | |
| 47 | + ansible.utils.ipmath(ip_index) %} |
| 48 | + loopback_ip: {{ loopback_ip }} |
| 49 | + loopback_ipv6: {{ loopback_ipv6 }} |
| 50 | +{% if node_bgp_orig_content.routes | default(false) %} |
| 51 | + routes: {{ node_bgp_orig_content.routes }} |
| 52 | +{% endif %} |
| 53 | +{% endif %} |
| 54 | +{% set ns.ocp_index = ns.ocp_index+1 %} |
| 55 | +{% endif %} |
| 56 | +{% endfor %} |
| 57 | + |
| 58 | +{% for network in cifmw_networking_env_definition.networks.values() %} |
| 59 | +{% if network.network_name != 'ctlplane_ocp_nad' %} |
| 60 | +{% set ns.lb_tools = {} %} |
| 61 | + {{ network.network_name }}: |
| 62 | + dnsDomain: {{ network.search_domain }} |
| 63 | +{% if network.tools is defined and network.tools.keys() | length > 0 %} |
| 64 | + subnets: |
| 65 | +{% for tool in network.tools.keys() %} |
| 66 | +{% if tool is match('.*lb$') %} |
| 67 | +{% set _ = ns.lb_tools.update({tool: []}) %} |
| 68 | +{% endif %} |
| 69 | +{% endfor %} |
| 70 | +{% if network.network_name != 'ctlplane' and network.tools.netconfig is defined %} |
| 71 | + - allocationRanges: |
| 72 | +{% for range in network.tools.netconfig.ipv4_ranges %} |
| 73 | + - end: {{ range.end }} |
| 74 | + start: {{ range.start }} |
| 75 | +{% endfor %} |
| 76 | + cidr: {{ network.network_v4 }} |
| 77 | +{% if network.gw_v4 is defined %} |
| 78 | + gateway: {{ network.gw_v4 }} |
| 79 | +{% endif %} |
| 80 | + name: subnet1 |
| 81 | +{% if network.vlan_id is defined %} |
| 82 | + vlan: {{ network.vlan_id }} |
| 83 | +{% endif %} |
| 84 | +{% elif network.network_name == 'ctlplane' %} |
| 85 | +{% for rack in ['r0', 'r1', 'r2'] %} |
| 86 | +{% set rack_subnet = cifmw_networking_env_definition.networks[network.network_name + rack] %} |
| 87 | + - allocationRanges: |
| 88 | +{% for range in rack_subnet.tools.netconfig.ipv4_ranges %} |
| 89 | + - end: {{ range.end }} |
| 90 | + start: {{ range.start }} |
| 91 | +{% endfor %} |
| 92 | + cidr: {{ rack_subnet.network_v4 }} |
| 93 | +{% if rack_subnet.gw_v4 is defined %} |
| 94 | + gateway: {{ rack_subnet.gw_v4 }} |
| 95 | +{% endif %} |
| 96 | + name: {{ 'subnet' ~ loop.index0 }} |
| 97 | +{% if rack_subnet.vlan_id is defined %} |
| 98 | + vlan: {{ rack_subnet.vlan_id }} |
| 99 | +{% endif %} |
| 100 | +{% endfor %} |
| 101 | +{% endif %} |
| 102 | +{% if ns.lb_tools | length > 0 %} |
| 103 | + lb_addresses: |
| 104 | +{% for tool in ns.lb_tools.keys() %} |
| 105 | +{% set lb_range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %} |
| 106 | +{% for lb_range in lb_range_network.tools[tool].ipv4_ranges %} |
| 107 | + - {{ lb_range.start }}-{{ lb_range.end }} |
| 108 | +{% set _ = ns.lb_tools[tool].append(lb_range.start) %} |
| 109 | +{% endfor %} |
| 110 | + endpoint_annotations: |
| 111 | + {{ tool }}.universe.tf/address-pool: {{ network.network_name }} |
| 112 | + {{ tool }}.universe.tf/allow-shared-ip: {{ network.network_name }} |
| 113 | + {{ tool }}.universe.tf/loadBalancerIPs: {{ ','.join(ns.lb_tools[tool]) }} |
| 114 | +{% endfor %} |
| 115 | +{% endif %} |
| 116 | +{% endif %} |
| 117 | + prefix-length: {{ network.network_v4 | ansible.utils.ipaddr('prefix') }} |
| 118 | + mtu: {{ network.mtu | default(1500) }} |
| 119 | +{% if network.vlan_id is defined %} |
| 120 | + vlan: {{ network.vlan_id }} |
| 121 | +{% if ns.interfaces[network.network_name] is defined %} |
| 122 | + iface: {{ network.network_name }} |
| 123 | + base_iface: {{ ns.interfaces[network.network_name] }} |
| 124 | +{% endif %} |
| 125 | +{% elif network.network_name == "ctlplane" %} |
| 126 | + iface: {{ ns.interfaces[network.network_name] }} |
| 127 | +{% elif ns.interfaces[network.network_name] is defined %} |
| 128 | + iface: {{ network.network_name }} |
| 129 | +{% endif %} |
| 130 | +{% if network.tools.multus is defined %} |
| 131 | + net-attach-def: | |
| 132 | + { |
| 133 | + "cniVersion": "0.3.1", |
| 134 | + "name": "{{ network.network_name }}", |
| 135 | + "type": "bridge", |
| 136 | + "isDefaultGateway": true, |
| 137 | + "isGateway": true, |
| 138 | + "forceAddress": false, |
| 139 | +{% if network.network_name == "ctlplane" %} |
| 140 | + "ipMasq": true, |
| 141 | +{% else %} |
| 142 | + "ipMasq": false, |
| 143 | +{% endif %} |
| 144 | + "hairpinMode": true, |
| 145 | +{% if network.network_name == "ctlplane" %} |
| 146 | + "bridge": "ospbr", |
| 147 | +{% else %} |
| 148 | + "bridge": "{{ network.network_name }}", |
| 149 | +{% endif %} |
| 150 | + "ipam": { |
| 151 | + "type": "whereabouts", |
| 152 | +{% if network.network_name == "octavia" and network.tools.multus.ipv4_routes | default([]) | length > 0 %} |
| 153 | + "routes": [ |
| 154 | +{% for route in network.tools.multus.ipv4_routes %} |
| 155 | + { |
| 156 | + "dst": "{{ route.destination }}", |
| 157 | + "gw": "{{ route.gateway }}" |
| 158 | + }{% if not loop.last %},{% endif %} |
| 159 | +{% endfor %} |
| 160 | + ], |
| 161 | +{% endif %} |
| 162 | +{% set range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %} |
| 163 | + "range": "{{ range_network.network_v4 }}", |
| 164 | + "range_start": "{{ range_network.tools.multus.ipv4_ranges.0.start }}", |
| 165 | + "range_end": "{{ range_network.tools.multus.ipv4_ranges.0.end }}", |
| 166 | + "gateway": "{{ range_network.network_v4 |ansible.utils.nthhost(1) }}" |
| 167 | + } |
| 168 | + } |
| 169 | +{% endif %} |
| 170 | +{% endif %} |
| 171 | +{% endfor %} |
| 172 | + |
| 173 | + dns-resolver: |
| 174 | + config: |
| 175 | + server: |
| 176 | + - "{{ cifmw_networking_env_definition.networks.ctlplane.gw_v4 }}" |
| 177 | + search: [] |
| 178 | + options: |
| 179 | + - key: server |
| 180 | + values: |
| 181 | + - {{ cifmw_networking_env_definition.networks.ctlplane.gw_v4 }} |
| 182 | +{% for nameserver in cifmw_ci_gen_kustomize_values_nameservers %} |
| 183 | + - key: server |
| 184 | + values: |
| 185 | + - {{ nameserver }} |
| 186 | +{% endfor %} |
| 187 | + |
| 188 | + routes: |
| 189 | + config: [] |
| 190 | + |
| 191 | +# Hardcoding the last IP bit since we don't have support for endpoint_annotations in the networking_mapper output |
| 192 | + rabbitmq: |
| 193 | + endpoint_annotations: |
| 194 | + metallb.universe.tf/address-pool: internalapi |
| 195 | + metallb.universe.tf/loadBalancerIPs: {{ cifmw_networking_env_definition.networks['internalapi'].network_v4 | ansible.utils.ipmath(85) }} |
| 196 | + rabbitmq-cell1: |
| 197 | + endpoint_annotations: |
| 198 | + metallb.universe.tf/address-pool: internalapi |
| 199 | + metallb.universe.tf/loadBalancerIPs: {{ cifmw_networking_env_definition.networks['internalapi'].network_v4 | ansible.utils.ipmath(86) }} |
| 200 | + |
| 201 | + lbServiceType: LoadBalancer |
| 202 | + storageClass: local-storage |
0 commit comments