Skip to content

Commit 9fd0608

Browse files
committed
bgp_dt05 kustomize values
1 parent e269481 commit 9fd0608

9 files changed

Lines changed: 307 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# See the OWNERS docs at https://www.kubernetes.dev/docs/guide/owners/
2+
3+
approvers:
4+
- bgp-team
5+
6+
reviewers:
7+
- bgp-team
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# source: bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2
2+
{% set instances_names = [] %}
3+
{% set rack = 'r' ~ rack_number %}
4+
{% for _inst in cifmw_networking_env_definition.instances.keys() %}
5+
{% if _inst.startswith('-'.join([rack, node_type])) %}
6+
{% set _ = instances_names.append(_inst) %}
7+
{% endif %}
8+
{% endfor %}
9+
data:
10+
ssh_keys:
11+
authorized: {{ cifmw_ci_gen_kustomize_values_ssh_authorizedkeys | b64encode }}
12+
private: {{ cifmw_ci_gen_kustomize_values_ssh_private_key | b64encode }}
13+
public: {{ cifmw_ci_gen_kustomize_values_ssh_public_key | b64encode }}
14+
nova:
15+
migration:
16+
ssh_keys:
17+
private: {{ cifmw_ci_gen_kustomize_values_migration_priv_key | b64encode }}
18+
public: {{ cifmw_ci_gen_kustomize_values_migration_pub_key | b64encode }}
19+
nodeset:
20+
ansible:
21+
ansibleUser: "zuul"
22+
ansibleVars:
23+
edpm_fips_mode: "{{ 'enabled' if cifmw_fips_enabled|default(false)|bool else 'check' }}"
24+
timesync_ntp_servers:
25+
- hostname: "{{ cifmw_ci_gen_kustomize_values_ntp_srv | default('pool.ntp.org') }}"
26+
edpm_sshd_allowed_ranges:
27+
{% set sshd_allowed_range = cifmw_ci_gen_kustomize_values_sshd_ranges | default([]) %}
28+
{% for rack in ['r0', 'r1', 'r2'] %}
29+
{% set _ = sshd_allowed_range.append(cifmw_networking_env_definition.networks['ctlplane' + rack].network_v4) %}
30+
{% endfor %}
31+
{% for range in sshd_allowed_range %}
32+
- "{{ range }}"
33+
{% endfor %}
34+
nodes:
35+
{% for instance in instances_names %}
36+
{{ instance }}:
37+
ansible:
38+
{% set ctlplane_rack = 'ctlplane' + rack %}
39+
ansibleHost: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }}
40+
{% if original_content.data.nodeset.nodes['edpm-' ~ instance].ansible.ansibleVars is defined %}
41+
ansibleVars: {{ original_content.data.nodeset.nodes['edpm-' ~ instance].ansible.ansibleVars }}
42+
{% endif %}
43+
hostName: {{ instance }}
44+
networks:
45+
{% for net in cifmw_networking_env_definition.instances[instance].networks.keys() %}
46+
{% if 'storagemgmt' not in net %}
47+
- name: {{ net if net != ctlplane_rack else 'ctlplane' }}
48+
subnetName: {{ 'subnet1' if net != ctlplane_rack else 'subnet' ~ rack_number }}
49+
{% if 'ctlplane' in net %}
50+
defaultRoute: true
51+
fixedIP: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }}
52+
{% endif %}
53+
{% endif %}
54+
{% endfor %}
55+
{% set peer_suffix = 1 if 'compute' in instance else 5 %}
56+
- name: BgpNet0
57+
subnetName: subnet{{ rack_number }}
58+
fixedIP: 100.64.{{ rack_number }}.{{ peer_suffix + 1 }}
59+
- name: BgpNet1
60+
subnetName: subnet{{ rack_number }}
61+
fixedIP: 100.65.{{ rack_number }}.{{ peer_suffix + 1 }}
62+
- name: BgpMainNet
63+
subnetName: subnet{{ rack_number }}
64+
fixedIP: 99.99.{{ rack_number }}.{{ peer_suffix + 1 }}
65+
- name: BgpMainNetV6
66+
subnetName: subnet{{ rack_number }}
67+
fixedIP: f00d:f00d:f00d:f00d:f00d:f00d:f00d:00{{ (rack_number | int) + 1 }}{{ 2 if 'compute' in instance else 3 }}
68+
{% endfor %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r0-compute-nodeset-values/values.yaml.j2
3+
{% set node_type = "compute" %}
4+
{% set rack_number = 0 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r0-networker-nodeset-values/values.yaml.j2
3+
{% set node_type = "networker" %}
4+
{% set rack_number = 0 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r1-compute-nodeset-values/values.yaml.j2
3+
{% set node_type = "compute" %}
4+
{% set rack_number = 1 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r1-networker-nodeset-values/values.yaml.j2
3+
{% set node_type = "networker" %}
4+
{% set rack_number = 1 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r2-compute-nodeset-values/values.yaml.j2
3+
{% set node_type = "compute" %}
4+
{% set rack_number = 2 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# source: bgp_dt05/edpm-r2-networker-nodeset-values/values.yaml.j2
3+
{% set node_type = "networker" %}
4+
{% set rack_number = 2 %}
5+
{% include 'templates/bgp_dt05/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %}
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
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

Comments
 (0)