Skip to content

Commit 309e169

Browse files
Merge pull request #750 from renjingxiao/multi_segment_per_host
Enable multi-segment per host for routed provider networks on uni07eta Configure neutron with logical_switch_per_vlan_segment, segment_bridge extension, and VLAN ranges for seg1/seg2 physnets. Switch EDPM from neutron-metadata to neutron-ovn agent with bridge mappings. Add NNCP and NAD resources for ospbr-100/ospbr-101 so the tempest pod can reach VMs on VLAN 100/101. Related-to: OSPRH-27175 Assisted-by: Claude Code Opus 4.6 Reviewed-by: Yatin Karel <ykarel@redhat.com> Reviewed-by: Andrew Bays <andrew.bays@gmail.com> Reviewed-by: Itay Matza Reviewed-by: Oleg Belolipetskii
2 parents 979ddd7 + 7dceb11 commit 309e169

9 files changed

Lines changed: 264 additions & 2 deletions

File tree

dt/uni07eta/networking/kustomization.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ components:
2424
resources:
2525
- ocp-networks-octavia-netattach.yaml
2626
- ocp-networks-ospbr-218-netattach.yaml
27+
- ocp-networks-ospbr-100-netattach.yaml
28+
- ocp-networks-ospbr-101-netattach.yaml
2729

2830

2931
replacements:
@@ -48,3 +50,25 @@ replacements:
4850
name: ospbr-218
4951
fieldPaths:
5052
- spec.config
53+
54+
- source:
55+
kind: ConfigMap
56+
name: network-values
57+
fieldPath: data.ospbr-100.net-attach-def
58+
targets:
59+
- select:
60+
kind: NetworkAttachmentDefinition
61+
name: ospbr-100
62+
fieldPaths:
63+
- spec.config
64+
65+
- source:
66+
kind: ConfigMap
67+
name: network-values
68+
fieldPath: data.ospbr-101.net-attach-def
69+
targets:
70+
- select:
71+
kind: NetworkAttachmentDefinition
72+
name: ospbr-101
73+
fieldPaths:
74+
- spec.config
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
apiVersion: k8s.cni.cncf.io/v1
3+
kind: NetworkAttachmentDefinition
4+
metadata:
5+
name: ospbr-100
6+
labels:
7+
osp/net: ospbr-100
8+
osp/net-attach-def-type: standard
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
apiVersion: k8s.cni.cncf.io/v1
3+
kind: NetworkAttachmentDefinition
4+
metadata:
5+
name: ospbr-101
6+
labels:
7+
osp/net: ospbr-101
8+
osp/net-attach-def-type: standard

dt/uni07eta/nncp/kustomization.yaml

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,108 @@ patches:
173173
ipv4:
174174
enabled: false
175175
176+
- target:
177+
kind: NodeNetworkConfigurationPolicy
178+
name: master-0
179+
patch: |-
180+
- op: add
181+
path: /spec/desiredState/interfaces/-
182+
value:
183+
description: Segment VLAN 100 interface
184+
name: ospbr-100
185+
state: up
186+
type: vlan
187+
vlan:
188+
base-iface: ospbr
189+
id: _replaced_
190+
ipv4:
191+
enabled: false
192+
193+
- target:
194+
kind: NodeNetworkConfigurationPolicy
195+
name: master-1
196+
patch: |-
197+
- op: add
198+
path: /spec/desiredState/interfaces/-
199+
value:
200+
description: Segment VLAN 100 interface
201+
name: ospbr-100
202+
state: up
203+
type: vlan
204+
vlan:
205+
base-iface: ospbr
206+
id: _replaced_
207+
ipv4:
208+
enabled: false
209+
210+
- target:
211+
kind: NodeNetworkConfigurationPolicy
212+
name: master-2
213+
patch: |-
214+
- op: add
215+
path: /spec/desiredState/interfaces/-
216+
value:
217+
description: Segment VLAN 100 interface
218+
name: ospbr-100
219+
state: up
220+
type: vlan
221+
vlan:
222+
base-iface: ospbr
223+
id: _replaced_
224+
ipv4:
225+
enabled: false
226+
227+
- target:
228+
kind: NodeNetworkConfigurationPolicy
229+
name: master-0
230+
patch: |-
231+
- op: add
232+
path: /spec/desiredState/interfaces/-
233+
value:
234+
description: Segment VLAN 101 interface
235+
name: ospbr-101
236+
state: up
237+
type: vlan
238+
vlan:
239+
base-iface: ospbr
240+
id: _replaced_
241+
ipv4:
242+
enabled: false
243+
244+
- target:
245+
kind: NodeNetworkConfigurationPolicy
246+
name: master-1
247+
patch: |-
248+
- op: add
249+
path: /spec/desiredState/interfaces/-
250+
value:
251+
description: Segment VLAN 101 interface
252+
name: ospbr-101
253+
state: up
254+
type: vlan
255+
vlan:
256+
base-iface: ospbr
257+
id: _replaced_
258+
ipv4:
259+
enabled: false
260+
261+
- target:
262+
kind: NodeNetworkConfigurationPolicy
263+
name: master-2
264+
patch: |-
265+
- op: add
266+
path: /spec/desiredState/interfaces/-
267+
value:
268+
description: Segment VLAN 101 interface
269+
name: ospbr-101
270+
state: up
271+
type: vlan
272+
vlan:
273+
base-iface: ospbr
274+
id: _replaced_
275+
ipv4:
276+
enabled: false
277+
176278
replacements:
177279
- source:
178280
kind: ConfigMap
@@ -241,6 +343,72 @@ replacements:
241343
fieldPaths:
242344
- spec.desiredState.interfaces.[name=ospbr-218].mtu
243345

346+
- source:
347+
kind: ConfigMap
348+
name: network-values
349+
fieldPath: data.ospbr-100.vlan
350+
targets:
351+
- select:
352+
kind: NodeNetworkConfigurationPolicy
353+
name: master-0
354+
fieldPaths:
355+
- spec.desiredState.interfaces.[name=ospbr-100].vlan.id
356+
357+
- source:
358+
kind: ConfigMap
359+
name: network-values
360+
fieldPath: data.ospbr-100.vlan
361+
targets:
362+
- select:
363+
kind: NodeNetworkConfigurationPolicy
364+
name: master-1
365+
fieldPaths:
366+
- spec.desiredState.interfaces.[name=ospbr-100].vlan.id
367+
368+
- source:
369+
kind: ConfigMap
370+
name: network-values
371+
fieldPath: data.ospbr-100.vlan
372+
targets:
373+
- select:
374+
kind: NodeNetworkConfigurationPolicy
375+
name: master-2
376+
fieldPaths:
377+
- spec.desiredState.interfaces.[name=ospbr-100].vlan.id
378+
379+
- source:
380+
kind: ConfigMap
381+
name: network-values
382+
fieldPath: data.ospbr-101.vlan
383+
targets:
384+
- select:
385+
kind: NodeNetworkConfigurationPolicy
386+
name: master-0
387+
fieldPaths:
388+
- spec.desiredState.interfaces.[name=ospbr-101].vlan.id
389+
390+
- source:
391+
kind: ConfigMap
392+
name: network-values
393+
fieldPath: data.ospbr-101.vlan
394+
targets:
395+
- select:
396+
kind: NodeNetworkConfigurationPolicy
397+
name: master-1
398+
fieldPaths:
399+
- spec.desiredState.interfaces.[name=ospbr-101].vlan.id
400+
401+
- source:
402+
kind: ConfigMap
403+
name: network-values
404+
fieldPath: data.ospbr-101.vlan
405+
targets:
406+
- select:
407+
kind: NodeNetworkConfigurationPolicy
408+
name: master-2
409+
fieldPaths:
410+
- spec.desiredState.interfaces.[name=ospbr-101].vlan.id
411+
244412
- source:
245413
kind: ConfigMap
246414
name: network-values

examples/dt/uni07eta/control-plane/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ components:
88
resources:
99
- networking/nncp/values.yaml
1010
- service-values.yaml
11+
- neutron-ovn-extra-config.yaml

examples/dt/uni07eta/control-plane/networking/nncp/values.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,44 @@ data:
202202
}
203203
}
204204
205+
ospbr-100:
206+
mtu: 9000
207+
vlan: 100
208+
base_iface: ospbr
209+
net-attach-def: |
210+
{
211+
"cniVersion": "0.3.1",
212+
"name": "ospbr-100",
213+
"type": "macvlan",
214+
"master": "ospbr-100",
215+
"mode": "bridge",
216+
"ipam": {
217+
"type": "whereabouts",
218+
"range": "10.100.0.0/24",
219+
"range_start": "10.100.0.10",
220+
"range_end": "10.100.0.20"
221+
}
222+
}
223+
224+
ospbr-101:
225+
mtu: 9000
226+
vlan: 101
227+
base_iface: ospbr
228+
net-attach-def: |
229+
{
230+
"cniVersion": "0.3.1",
231+
"name": "ospbr-101",
232+
"type": "macvlan",
233+
"master": "ospbr-101",
234+
"mode": "bridge",
235+
"ipam": {
236+
"type": "whereabouts",
237+
"range": "10.101.0.0/24",
238+
"range_start": "10.101.0.10",
239+
"range_end": "10.101.0.20"
240+
}
241+
}
242+
205243
external:
206244
dnsDomain: external.openstack.lab
207245
subnets:
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: neutron-ovn-extra-config
6+
namespace: openstack
7+
data:
8+
99-neutron-ovn.conf: |
9+
[agent]
10+
extensions = metadata,segment_bridge

examples/dt/uni07eta/control-plane/service-values.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,15 @@ data:
148148
ovsdb_probe_interval = 60000
149149
ovn_emit_need_to_frag = true
150150
ovn_router_indirect_snat = true
151+
logical_switch_per_vlan_segment = true
151152
152153
[ml2]
153154
type_drivers = geneve,vxlan,vlan,flat,local
154155
tenant_network_types = geneve,flat,vlan
155156
path_mtu = 9000
156157
157158
[ml2_type_vlan]
158-
network_vlan_ranges = tenant:1000:2000,datacentre:218:218
159+
network_vlan_ranges = tenant:1000:2000,datacentre:218:218,seg1:100:100,seg2:101:101
159160
160161
[service_providers]
161162
service_provider = TAAS:TAAS:neutron_taas.services.taas.service_drivers.ovn.taas_ovn.TaasOvnDriver:default

examples/dt/uni07eta/edpm/values.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ data:
6767
{% endfor %}
6868
neutron_physical_bridge_name: br-ex
6969
neutron_public_interface_name: eth0
70+
edpm_ovn_bridge_mappings:
71+
- datacentre:br-ex
72+
- seg1:br-ex-100
73+
- seg2:br-ex-101
7074

7175
edpm_nodes_validation_validate_controllers_icmp: false
7276
edpm_nodes_validation_validate_gateway_icmp: false
@@ -149,6 +153,6 @@ data:
149153
- reboot-os
150154
- install-certs
151155
- ovn
152-
- neutron-metadata
156+
- neutron-ovn
153157
- libvirt
154158
- nova-custom

0 commit comments

Comments
 (0)