Skip to content

Commit fa83f31

Browse files
Merge pull request #503 from gthiemonge/octavia_dcn
Octavia DCN support Enable Octavia in DCN Network configuration for Octavia DCN support JIRA: OSPRH-14215 Reviewed-by: Marián Krčmárik Reviewed-by: Andrew Bays <[email protected]> Reviewed-by: John Fulton <[email protected]>
2 parents 73a1ea2 + 8826237 commit fa83f31

File tree

11 files changed

+426
-2
lines changed

11 files changed

+426
-2
lines changed

automation/net-env/dcn.yaml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,19 @@ instances:
634634
skip_nm: false
635635
trunk_parent: ctlplane
636636
vlan_id: 20
637+
octavia:
638+
interface_name: enp7s0.24
639+
ip_v4: 172.23.0.10
640+
is_trunk_parent: false
641+
mac_addr: '52:54:00:53:17:30'
642+
mtu: 1496
643+
netmask_v4: 255.255.255.0
644+
network_name: octavia
645+
parent_interface: enp7s0
646+
prefix_length_v4: 24
647+
skip_nm: false
648+
trunk_parent: ctlplane
649+
vlan_id: 24
637650
storage:
638651
interface_name: enp7s0.21
639652
ip_v4: 172.18.0.10
@@ -687,6 +700,19 @@ instances:
687700
skip_nm: false
688701
trunk_parent: ctlplane
689702
vlan_id: 20
703+
octavia:
704+
interface_name: enp7s0.24
705+
ip_v4: 172.23.0.11
706+
is_trunk_parent: false
707+
mac_addr: '52:54:00:53:17:31'
708+
mtu: 1496
709+
netmask_v4: 255.255.255.0
710+
network_name: octavia
711+
parent_interface: enp7s0
712+
prefix_length_v4: 24
713+
skip_nm: false
714+
trunk_parent: ctlplane
715+
vlan_id: 24
690716
storage:
691717
interface_name: enp7s0.21
692718
ip_v4: 172.18.0.11
@@ -740,6 +766,19 @@ instances:
740766
skip_nm: false
741767
trunk_parent: ctlplane
742768
vlan_id: 20
769+
octavia:
770+
interface_name: enp7s0.24
771+
ip_v4: 172.23.0.12
772+
is_trunk_parent: false
773+
mac_addr: '52:54:00:53:17:32'
774+
mtu: 1496
775+
netmask_v4: 255.255.255.0
776+
network_name: octavia
777+
parent_interface: enp7s0
778+
prefix_length_v4: 24
779+
skip_nm: false
780+
trunk_parent: ctlplane
781+
vlan_id: 24
743782
storage:
744783
interface_name: enp7s0.21
745784
ip_v4: 172.18.0.12
@@ -1012,6 +1051,31 @@ networks:
10121051
start_host: 100
10131052
ipv6_ranges: []
10141053
vlan_id: 40
1054+
octavia:
1055+
dns_v4: []
1056+
dns_v6: []
1057+
mtu: 1496
1058+
network_name: octavia
1059+
network_v4: 172.23.0.0/24
1060+
search_domain: octavia.example.com
1061+
tools:
1062+
multus:
1063+
ipv4_ranges:
1064+
- end: 172.23.0.70
1065+
end_host: 70
1066+
length: 41
1067+
start: 172.23.0.30
1068+
start_host: 30
1069+
ipv6_ranges: []
1070+
netconfig:
1071+
ipv4_ranges:
1072+
- end: 172.23.0.250
1073+
end_host: 250
1074+
length: 151
1075+
start: 172.23.0.100
1076+
start_host: 100
1077+
ipv6_ranges: []
1078+
vlan_id: 24
10151079
storage:
10161080
dns_v4: []
10171081
dns_v6: []

dt/dcn/control-plane/kustomization.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ replacements:
7777
- spec.ovn.template.ovnController.external-ids
7878
options:
7979
create: true
80+
- source:
81+
kind: ConfigMap
82+
name: service-values
83+
fieldPath: data.ovn.template.ovnController.nicMappings
84+
targets:
85+
- select:
86+
kind: OpenStackControlPlane
87+
fieldPaths:
88+
- spec.ovn.template.ovnController.nicMappings
89+
options:
90+
create: true
8091
- source:
8192
kind: ConfigMap
8293
name: service-values
@@ -220,3 +231,27 @@ replacements:
220231
- spec.extraMounts
221232
options:
222233
create: true
234+
235+
- source:
236+
kind: ConfigMap
237+
name: service-values
238+
fieldPath: data.octavia.enabled
239+
targets:
240+
- select:
241+
kind: OpenStackControlPlane
242+
fieldPaths:
243+
- spec.octavia.enabled
244+
options:
245+
create: true
246+
247+
- source:
248+
kind: ConfigMap
249+
name: service-values
250+
fieldPath: data.octavia.template
251+
targets:
252+
- select:
253+
kind: OpenStackControlPlane
254+
fieldPaths:
255+
- spec.octavia.template
256+
options:
257+
create: true

dt/dcn/kustomization.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
apiVersion: kustomize.config.k8s.io/v1alpha1
33
kind: Component
44

5+
secretGenerator:
6+
- name: octavia-ca-passphrase
7+
literals:
8+
- server-ca-passphrase=12345678
9+
options:
10+
disableNameSuffixHash: true
11+
512
transformers:
613
# Set namespace to OpenStack on all namespaced objects without a namespace
714
- |-
@@ -23,6 +30,9 @@ components:
2330
- ../../lib/networking/nad
2431
- ../../lib/control-plane
2532

33+
resources:
34+
- nad.yaml
35+
2636
# Add storagemgmt network template, as it is needed for CephHCI
2737
patches:
2838
- target:
@@ -71,3 +81,15 @@ replacements:
7181
kind: NetConfig
7282
fieldPaths:
7383
- spec.networks.[name=storagemgmt].subnets
84+
85+
# Octavia support
86+
- source:
87+
kind: ConfigMap
88+
name: network-values
89+
fieldPath: data.octavia.net-attach-def
90+
targets:
91+
- select:
92+
kind: NetworkAttachmentDefinition
93+
name: octavia
94+
fieldPaths:
95+
- spec.config

dt/dcn/nad.yaml

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: octavia
6+
labels:
7+
osp/net: octavia
8+
osp/net-attach-def-type: standard

dt/dcn/nncp/kustomization.yaml

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1alpha1
3+
kind: Component
4+
5+
transformers:
6+
- |-
7+
apiVersion: builtin
8+
kind: NamespaceTransformer
9+
metadata:
10+
name: _ignored_
11+
namespace: openstack
12+
setRoleBindingSubjects: none
13+
unsetOnly: true
14+
fieldSpecs:
15+
- path: metadata/name
16+
kind: Namespace
17+
create: true
18+
19+
components:
20+
- ../../../lib/nncp
21+
22+
patches:
23+
- target:
24+
kind: NodeNetworkConfigurationPolicy
25+
name: master-0
26+
patch: |-
27+
- op: add
28+
path: /spec/desiredState/interfaces/-
29+
value:
30+
description: Octavia vlan host interface
31+
name: octavia
32+
state: up
33+
type: vlan
34+
vlan:
35+
base-iface: _replaced_
36+
id: _replaced_
37+
38+
- target:
39+
kind: NodeNetworkConfigurationPolicy
40+
name: master-0
41+
patch: |-
42+
- op: add
43+
path: /spec/desiredState/interfaces/-
44+
value:
45+
description: Octavia bridge
46+
mtu: 1496
47+
name: octbr
48+
type: linux-bridge
49+
bridge:
50+
options:
51+
stp:
52+
enabled: false
53+
port:
54+
- name: octavia
55+
56+
- target:
57+
kind: NodeNetworkConfigurationPolicy
58+
name: master-1
59+
patch: |-
60+
- op: add
61+
path: /spec/desiredState/interfaces/-
62+
value:
63+
description: Octavia vlan host interface
64+
name: octavia
65+
state: up
66+
type: vlan
67+
vlan:
68+
base-iface: _replaced_
69+
id: _replaced_
70+
71+
- target:
72+
kind: NodeNetworkConfigurationPolicy
73+
name: master-1
74+
patch: |-
75+
- op: add
76+
path: /spec/desiredState/interfaces/-
77+
value:
78+
description: Octavia bridge
79+
mtu: 1496
80+
name: octbr
81+
type: linux-bridge
82+
bridge:
83+
options:
84+
stp:
85+
enabled: false
86+
port:
87+
- name: octavia
88+
89+
- target:
90+
kind: NodeNetworkConfigurationPolicy
91+
name: master-2
92+
patch: |-
93+
- op: add
94+
path: /spec/desiredState/interfaces/-
95+
value:
96+
description: Octavia vlan host interface
97+
name: octavia
98+
state: up
99+
type: vlan
100+
vlan:
101+
base-iface: _replaced_
102+
id: _replaced_
103+
104+
- target:
105+
kind: NodeNetworkConfigurationPolicy
106+
name: master-2
107+
patch: |-
108+
- op: add
109+
path: /spec/desiredState/interfaces/-
110+
value:
111+
description: Octavia bridge
112+
mtu: 1496
113+
name: octbr
114+
type: linux-bridge
115+
bridge:
116+
options:
117+
stp:
118+
enabled: false
119+
port:
120+
- name: octavia
121+
122+
replacements:
123+
- source:
124+
kind: ConfigMap
125+
name: network-values
126+
fieldPath: data.octavia.base_iface
127+
targets:
128+
- select:
129+
kind: NodeNetworkConfigurationPolicy
130+
name: master-0
131+
fieldPaths:
132+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
133+
134+
- source:
135+
kind: ConfigMap
136+
name: network-values
137+
fieldPath: data.octavia.vlan
138+
targets:
139+
- select:
140+
kind: NodeNetworkConfigurationPolicy
141+
name: master-0
142+
fieldPaths:
143+
- spec.desiredState.interfaces.[name=octavia].vlan.id
144+
145+
- source:
146+
kind: ConfigMap
147+
name: network-values
148+
fieldPath: data.octavia.base_iface
149+
targets:
150+
- select:
151+
kind: NodeNetworkConfigurationPolicy
152+
name: master-1
153+
fieldPaths:
154+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
155+
156+
- source:
157+
kind: ConfigMap
158+
name: network-values
159+
fieldPath: data.octavia.vlan
160+
targets:
161+
- select:
162+
kind: NodeNetworkConfigurationPolicy
163+
name: master-1
164+
fieldPaths:
165+
- spec.desiredState.interfaces.[name=octavia].vlan.id
166+
167+
- source:
168+
kind: ConfigMap
169+
name: network-values
170+
fieldPath: data.octavia.base_iface
171+
targets:
172+
- select:
173+
kind: NodeNetworkConfigurationPolicy
174+
name: master-2
175+
fieldPaths:
176+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
177+
178+
- source:
179+
kind: ConfigMap
180+
name: network-values
181+
fieldPath: data.octavia.vlan
182+
targets:
183+
- select:
184+
kind: NodeNetworkConfigurationPolicy
185+
name: master-2
186+
fieldPaths:
187+
- spec.desiredState.interfaces.[name=octavia].vlan.id

examples/dt/dcn/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ This is a collection of CR templates that represent a Red Hat OpenStack Services
2020
- Cinder Backup using RBD for backend
2121
- Glance using Multi Store Support and RBD for backend
2222
- Nova using RBD for ephemeral storage
23+
- Octavia enabled in DCN sites with split management networks (one management network per DCN site)
2324

2425
## Considerations
2526

examples/dt/dcn/control-plane/nncp/kustomization.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ transformers:
1818
create: true
1919
2020
components:
21-
- ../../../../../lib/nncp
21+
- ../../../../../dt/dcn/nncp
22+
2223

2324
resources:
2425
- values.yaml

0 commit comments

Comments
 (0)