Skip to content

Commit 5d93644

Browse files
committed
[ci_gen_kustomize_values] Add BGP L3 XL kustomize values templates
This commit adds Jinja2 templates for generating kustomize values for the BGP L3 XL adoption scenario, including network values and EDPM common nodeset configurations. Signed-off-by: Eduardo Olivares <[email protected]>
1 parent b954eac commit 5d93644

File tree

3 files changed

+77
-61
lines changed

3 files changed

+77
-61
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bgp-l3-xl

roles/ci_gen_kustomize_values/templates/bgp-l3-xl/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
{% set instances_names = [] %}
33
{% set rack = 'r' ~ rack_number %}
44
{% for _inst in cifmw_networking_env_definition.instances.keys() %}
5-
{% if _inst.startswith('-'.join([rack, node_type])) %}
5+
{% if _inst.startswith('-'.join([rack, node_type])) or _inst.startswith('-'.join(['osp', rack, node_type])) %}
6+
{% set _ = instances_names.append(_inst) %}
7+
{% elif node_type == 'networker' and _inst.startswith('-'.join(['osp', rack, 'controller'])) %}
68
{% set _ = instances_names.append(_inst) %}
79
{% endif %}
810
{% endfor %}

roles/ci_gen_kustomize_values/templates/bgp-l3-xl/network-values/values.yaml.j2

Lines changed: 73 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ data:
2626
{% endfor %}
2727
{% set node_bgp_orig_content = original_content.data.bgp.bgpdefs['node' ~ ns.ocp_index] %}
2828
{% set node_bgp_net0 = node_bgp_orig_content.bgpnet0 %}
29-
{% if 'worker-9' != hostname %}
29+
{% if 'worker-6' != hostname %}
3030
{% set node_bgp_net1 = node_bgp_orig_content.bgpnet1 %}
3131
{% endif %}
3232
bgp_peers:
3333
- {{ node_bgp_net0.bgp_peer }}
34-
{% if 'worker-9' != hostname %}
34+
{% if 'worker-6' != hostname %}
3535
- {{ node_bgp_net1.bgp_peer }}
3636
{% endif %}
3737
bgp_ip:
3838
- {{ node_bgp_net0.bgp_ip }}
39-
{% if 'worker-9' != hostname %}
39+
{% if 'worker-6' != hostname %}
4040
- {{ node_bgp_net1.bgp_ip }}
4141
{% endif %}
4242
loopback_ip: {{ node_bgp_orig_content.loopback_ip }}
@@ -49,117 +49,130 @@ data:
4949
{% endif %}
5050
{% endfor %}
5151

52-
{% for network in cifmw_networking_env_definition.networks.values() %}
53-
{% if network.network_name != 'ctlplane_ocp_nad' %}
54-
{% set ns.lb_tools = {} %}
52+
{% set filtered_networks = cifmw_networking_env_definition.networks.values() | selectattr('network_name', '!=', 'ctlplane_ocp_nad') | list %}
53+
{% for network in filtered_networks %}
54+
{% set ns.lb_tools = {} %}
5555
{{ network.network_name }}:
5656
dnsDomain: {{ network.search_domain }}
57-
{% if network.tools is defined and network.tools.keys() | length > 0 %}
57+
{% if network.tools is defined and network.tools.keys() | length > 0 %}
5858
subnets:
59-
{% for tool in network.tools.keys() %}
60-
{% if tool is match('.*lb$') %}
61-
{% set _ = ns.lb_tools.update({tool: []}) %}
62-
{% endif %}
63-
{% endfor %}
64-
{% if network.network_name != 'ctlplane' %}
59+
{% for tool in network.tools.keys() %}
60+
{% if tool is match('.*lb$') %}
61+
{% set _ = ns.lb_tools.update({tool: []}) %}
62+
{% endif %}
63+
{% endfor %}
64+
{% if network.network_name != 'ctlplane' %}
6565
- allocationRanges:
66-
{% for range in network.tools.netconfig.ipv4_ranges %}
66+
{% for range in network.tools.netconfig.ipv4_ranges %}
6767
- end: {{ range.end }}
6868
start: {{ range.start }}
69-
{% endfor %}
69+
{% endfor %}
7070
cidr: {{ network.network_v4 }}
71-
{% if network.gw_v4 is defined %}
71+
{% if network.gw_v4 is defined %}
7272
gateway: {{ network.gw_v4 }}
73-
{% endif %}
73+
{% endif %}
7474
name: subnet1
75-
{% if network.vlan_id is defined %}
75+
{% if network.vlan_id is defined %}
7676
vlan: {{ network.vlan_id }}
77-
{% endif %}
78-
{% else %}
79-
{% for rack in ['r0', 'r1', 'r2'] %}
80-
{% set rack_subnet = cifmw_networking_env_definition.networks[network.network_name + rack] %}
77+
{% endif %}
78+
{% else %}
79+
{% for rack in ['r0', 'r1', 'r2'] %}
80+
{% set rack_subnet = cifmw_networking_env_definition.networks[network.network_name + rack] %}
8181
- allocationRanges:
82-
{% for range in rack_subnet.tools.netconfig.ipv4_ranges %}
82+
{% for range in rack_subnet.tools.netconfig.ipv4_ranges %}
8383
- end: {{ range.end }}
8484
start: {{ range.start }}
85-
{% endfor %}
85+
{% endfor %}
8686
cidr: {{ rack_subnet.network_v4 }}
87-
{% if rack_subnet.gw_v4 is defined %}
87+
{% if rack_subnet.gw_v4 is defined %}
8888
gateway: {{ rack_subnet.gw_v4 }}
89-
{% endif %}
89+
{% endif %}
9090
name: {{ 'subnet' ~ loop.index0 }}
91-
{% if rack_subnet.vlan_id is defined %}
91+
{% if rack_subnet.vlan_id is defined %}
9292
vlan: {{ rack_subnet.vlan_id }}
93-
{% endif %}
94-
{% endfor %}
95-
{% endif %}
96-
{% if ns.lb_tools | length > 0 %}
93+
{% endif %}
94+
{% endfor %}
95+
{% endif %}
96+
{% if ns.lb_tools | length > 0 %}
9797
lb_addresses:
98-
{% for tool in ns.lb_tools.keys() %}
99-
{% set lb_range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %}
100-
{% for lb_range in lb_range_network.tools[tool].ipv4_ranges %}
98+
{% for tool in ns.lb_tools.keys() %}
99+
{% set lb_range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %}
100+
{% for lb_range in lb_range_network.tools[tool].ipv4_ranges %}
101101
- {{ lb_range.start }}-{{ lb_range.end }}
102-
{% set _ = ns.lb_tools[tool].append(lb_range.start) %}
103-
{% endfor %}
102+
{% set _ = ns.lb_tools[tool].append(lb_range.start) %}
103+
{% endfor %}
104104
endpoint_annotations:
105105
{{ tool }}.universe.tf/address-pool: {{ network.network_name }}
106106
{{ tool }}.universe.tf/allow-shared-ip: {{ network.network_name }}
107107
{{ tool }}.universe.tf/loadBalancerIPs: {{ ','.join(ns.lb_tools[tool]) }}
108-
{% endfor %}
109-
{% endif %}
110-
{% endif %}
108+
{% endfor %}
109+
{% endif %}
110+
{% endif %}
111111
prefix-length: {{ network.network_v4 | ansible.utils.ipaddr('prefix') }}
112112
mtu: {{ network.mtu | default(1500) }}
113-
{% if network.vlan_id is defined %}
113+
{% if network.vlan_id is defined %}
114114
vlan: {{ network.vlan_id }}
115-
{% if ns.interfaces[network.network_name] is defined %}
115+
{% if ns.interfaces[network.network_name] is defined %}
116116
iface: {{ network.network_name }}
117117
base_iface: {{ ns.interfaces[network.network_name] }}
118-
{% endif %}
119-
{% elif network.network_name == "ctlplane" %}
118+
{% endif %}
119+
{% elif network.network_name == "ctlplane" %}
120120
iface: {{ ns.interfaces[network.network_name] }}
121-
{% elif ns.interfaces[network.network_name] is defined %}
121+
{% elif ns.interfaces[network.network_name] is defined %}
122122
iface: {{ network.network_name }}
123-
{% endif %}
124-
{% if network.tools.multus is defined %}
123+
{% endif %}
124+
{% if network.tools.multus is defined %}
125125
net-attach-def: |
126126
{
127127
"cniVersion": "0.3.1",
128128
"name": "{{ network.network_name }}",
129129
"type": "bridge",
130+
{% if network.network_name == "storage" %}
131+
"isDefaultGateway": false,
132+
{% else %}
130133
"isDefaultGateway": true,
134+
{% endif %}
131135
"isGateway": true,
132136
"forceAddress": false,
137+
{% if network.network_name == "ctlplane" %}
133138
"ipMasq": true,
139+
{% else %}
140+
"ipMasq": false,
141+
{% endif %}
134142
"hairpinMode": true,
135-
{% if network.network_name == "octavia" %}
136-
"bridge": "octbr",
137-
{% elif network.network_name == "ctlplane" %}
143+
{% if network.network_name == "ctlplane" %}
138144
"bridge": "ospbr",
139-
{% else %}
145+
{% else %}
140146
"bridge": "{{ network.network_name }}",
141-
{% endif %}
147+
{% endif %}
142148
"ipam": {
143149
"type": "whereabouts",
144-
{% if network.network_name == "octavia" and network.tools.multus.ipv4_routes | default([]) | length > 0 %}
150+
{% if network.network_name == "octavia" and network.tools.multus.ipv4_routes | default([]) | length > 0 %}
145151
"routes": [
146-
{% for route in network.tools.multus.ipv4_routes %}
152+
{% for route in network.tools.multus.ipv4_routes %}
147153
{
148154
"dst": "{{ route.destination }}",
149155
"gw": "{{ route.gateway }}"
150156
}{% if not loop.last %},{% endif %}
151-
{% endfor %}
157+
{% endfor %}
158+
],
159+
{% elif network.network_name == "storage" %}
160+
"routes": [
161+
{"dst": "172.31.0.0/24", "gw": "{{ network.network_v4 |ansible.utils.nthhost(1) }}"},
162+
{"dst": "192.168.188.0/24", "gw": "{{ network.network_v4 |ansible.utils.nthhost(1) }}"},
163+
{"dst": "99.99.0.0/16", "gw": "{{ network.network_v4 |ansible.utils.nthhost(1) }}"}
152164
],
153-
{% endif %}
154-
{% set range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %}
165+
{% endif %}
166+
{% set range_network = network if network.network_name != "ctlplane" else cifmw_networking_env_definition.networks.ctlplane_ocp_nad %}
167+
{% if network.network_name != "storage" %}
168+
"gateway": "{{ range_network.network_v4 |ansible.utils.nthhost(1) }}",
169+
{% endif %}
155170
"range": "{{ range_network.network_v4 }}",
156171
"range_start": "{{ range_network.tools.multus.ipv4_ranges.0.start }}",
157-
"range_end": "{{ range_network.tools.multus.ipv4_ranges.0.end }}",
158-
"gateway": "{{ range_network.network_v4 |ansible.utils.nthhost(1) }}"
172+
"range_end": "{{ range_network.tools.multus.ipv4_ranges.0.end }}"
159173
}
160174
}
161-
{% endif %}
162-
{% endif %}
175+
{% endif %}
163176
{% endfor %}
164177

165178
dns-resolver:

0 commit comments

Comments
 (0)