Skip to content

Commit 9bda2ba

Browse files
committed
[uni04delta-ipv6] Add octavia
Add service values and network configuration for octavia
1 parent fbfb1a6 commit 9bda2ba

File tree

6 files changed

+317
-0
lines changed

6 files changed

+317
-0
lines changed

dt/uni04delta-ipv6/kustomization.yaml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,111 @@ replacements:
194194
- spec.nova.template.cellTemplates
195195
options:
196196
create: true
197+
198+
199+
- source:
200+
kind: ConfigMap
201+
name: service-values
202+
fieldPath: data.octavia.enabled
203+
targets:
204+
- select:
205+
kind: OpenStackControlPlane
206+
fieldPaths:
207+
- spec.octavia.enabled
208+
options:
209+
create: true
210+
211+
- source:
212+
kind: ConfigMap
213+
name: service-values
214+
fieldPath: data.octavia.amphoraImageContainerImage
215+
targets:
216+
- select:
217+
kind: OpenStackControlPlane
218+
fieldPaths:
219+
- spec.octavia.template.amphoraImageContainerImage
220+
options:
221+
create: true
222+
223+
- source:
224+
kind: ConfigMap
225+
name: service-values
226+
fieldPath: data.octavia.apacheContainerImage
227+
targets:
228+
- select:
229+
kind: OpenStackControlPlane
230+
fieldPaths:
231+
- spec.octavia.template.apacheContainerImage
232+
options:
233+
create: true
234+
235+
- source:
236+
kind: ConfigMap
237+
name: service-values
238+
fieldPath: data.octavia.availabilityZones
239+
targets:
240+
- select:
241+
kind: OpenStackControlPlane
242+
fieldPaths:
243+
- spec.octavia.template.lbMgmtNetwork.availabilityZones
244+
options:
245+
create: true
246+
247+
- source:
248+
kind: ConfigMap
249+
name: service-values
250+
fieldPath: data.octavia.octaviaAPI.networkAttachments
251+
targets:
252+
- select:
253+
kind: OpenStackControlPlane
254+
fieldPaths:
255+
- spec.octavia.template.octaviaAPI.networkAttachments
256+
options:
257+
create: true
258+
259+
- source:
260+
kind: ConfigMap
261+
name: service-values
262+
fieldPath: data.octavia.octaviaHousekeeping.networkAttachments
263+
targets:
264+
- select:
265+
kind: OpenStackControlPlane
266+
fieldPaths:
267+
- spec.octavia.template.octaviaHousekeeping.networkAttachments
268+
options:
269+
create: true
270+
271+
- source:
272+
kind: ConfigMap
273+
name: service-values
274+
fieldPath: data.octavia.octaviaHealthManager.networkAttachments
275+
targets:
276+
- select:
277+
kind: OpenStackControlPlane
278+
fieldPaths:
279+
- spec.octavia.template.octaviaHealthManager.networkAttachments
280+
options:
281+
create: true
282+
283+
- source:
284+
kind: ConfigMap
285+
name: service-values
286+
fieldPath: data.octavia.octaviaWorker.networkAttachments
287+
targets:
288+
- select:
289+
kind: OpenStackControlPlane
290+
fieldPaths:
291+
- spec.octavia.template.octaviaWorker.networkAttachments
292+
options:
293+
create: true
294+
295+
- source:
296+
kind: ConfigMap
297+
name: network-values
298+
fieldPath: data.octavia.net-attach-def
299+
targets:
300+
- select:
301+
kind: NetworkAttachmentDefinition
302+
name: octavia
303+
fieldPaths:
304+
- spec.config

dt/uni04delta-ipv6/nad.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,14 @@ metadata:
99
spec:
1010
config: |
1111
_replaced_
12+
---
13+
apiVersion: k8s.cni.cncf.io/v1
14+
kind: NetworkAttachmentDefinition
15+
metadata:
16+
name: octavia
17+
labels:
18+
osp/net: octavia
19+
osp/net-attach-def-type: standard
20+
spec:
21+
config: |
22+
_replaced_

dt/uni04delta-ipv6/nncp/kustomization.yaml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,59 @@ patches:
118118
name: master-2
119119
patch: *routes
120120

121+
- target:
122+
kind: NodeNetworkConfigurationPolicy
123+
name: master-0
124+
patch: &octvlan |-
125+
- op: add
126+
path: /spec/desiredState/interfaces/-
127+
value:
128+
description: Octavia vlan host interface
129+
name: octavia
130+
state: up
131+
type: vlan
132+
vlan:
133+
base-iface: _replaced_
134+
id: _replaced_
135+
136+
- target:
137+
kind: NodeNetworkConfigurationPolicy
138+
name: master-1
139+
patch: *octvlan
140+
141+
- target:
142+
kind: NodeNetworkConfigurationPolicy
143+
name: master-2
144+
patch: *octvlan
145+
146+
- target:
147+
kind: NodeNetworkConfigurationPolicy
148+
name: master-0
149+
patch: &octbridge |-
150+
- op: add
151+
path: /spec/desiredState/interfaces/-
152+
value:
153+
description: Octavia bridge
154+
mtu: 1500
155+
name: octbr
156+
type: linux-bridge
157+
bridge:
158+
options:
159+
stp:
160+
enabled: false
161+
port:
162+
- name: octavia
163+
164+
- target:
165+
kind: NodeNetworkConfigurationPolicy
166+
name: master-1
167+
patch: *octbridge
168+
169+
- target:
170+
kind: NodeNetworkConfigurationPolicy
171+
name: master-2
172+
patch: *octbridge
173+
121174
replacements:
122175

123176
- source:
@@ -260,3 +313,45 @@ replacements:
260313
name: master-2
261314
fieldPaths:
262315
- spec.desiredState.routes.config.1.destination
316+
317+
- source:
318+
kind: ConfigMap
319+
name: network-values
320+
fieldPath: data.octavia.base_iface
321+
targets:
322+
- select:
323+
kind: NodeNetworkConfigurationPolicy
324+
name: master-0
325+
fieldPaths:
326+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
327+
- select:
328+
kind: NodeNetworkConfigurationPolicy
329+
name: master-1
330+
fieldPaths:
331+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
332+
- select:
333+
kind: NodeNetworkConfigurationPolicy
334+
name: master-2
335+
fieldPaths:
336+
- spec.desiredState.interfaces.[name=octavia].vlan.base-iface
337+
338+
- source:
339+
kind: ConfigMap
340+
name: network-values
341+
fieldPath: data.octavia.vlan
342+
targets:
343+
- select:
344+
kind: NodeNetworkConfigurationPolicy
345+
name: master-0
346+
fieldPaths:
347+
- spec.desiredState.interfaces.[name=octavia].vlan.id
348+
- select:
349+
kind: NodeNetworkConfigurationPolicy
350+
name: master-1
351+
fieldPaths:
352+
- spec.desiredState.interfaces.[name=octavia].vlan.id
353+
- select:
354+
kind: NodeNetworkConfigurationPolicy
355+
name: master-2
356+
fieldPaths:
357+
- spec.desiredState.interfaces.[name=octavia].vlan.id

examples/dt/uni04delta-ipv6/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ and Manila OpenStack services configured with Ceph.
4141
| Tenant | VLAN tagged |
4242
| StorageManagement | VLAN tagged |
4343
| ironic | untagged |
44+
| octavia | VLAN tagged |
4445

4546
### Services, enabled features and configurations
4647

@@ -54,6 +55,7 @@ and Manila OpenStack services configured with Ceph.
5455
| Horizon | N/A | Must have |
5556
| Barbican | | Must have |
5657
| Ironic | | Must have |
58+
| Octavia | | Must have |
5759

5860
#### Support services
5961

@@ -71,6 +73,60 @@ work properly and can be deployed with any/default configuration.
7173

7274
Default settings: TLSe
7375

76+
##### Octavia
77+
78+
Octavia is enabled with the appropriate network attachments configured to
79+
deploy Octavia. It manages amphorae VMs through a self-service tenant network.
80+
The Octavia Amphora controllers get access to it through a Neutron externally
81+
routed flat provider network configured as a SNAT-less gateway for a neutron
82+
router linked to the tenant networks. Host routes on the tenant network's
83+
subnet and routes on the network attachment provide the required `next hop`
84+
routing to establish the necessary bidirectional routing.
85+
86+
This arrangement requires a network attachment for connecting the OVN and
87+
Amphora Controller pods (octavia-housekeeping, octavia-healthmanager,
88+
octavia-worker). Because Neutron ML2/OVN implements provider networks by
89+
bridging the relevant physical interface - in this case the network-attachment,
90+
there is an additional requirement that this attachment function when
91+
bridged. As the default macvlan attachments do not function when bridged, a
92+
bridge network attachment is used.
93+
94+
Bridge attachments do not directly provide connectivity outside of the OCP
95+
node. To implement this, the NodeNetworkConfigurationPolicy creates an VLAN
96+
interface as is typical for the other networks, but does not configure an IP
97+
pool as it is not needed. It is also not configured for metallb as it is solely
98+
as part of a way to establish a L2 network link between nodes. The
99+
NodeNetworkConfigurationPolicy also configures an octbr linux bridge which is
100+
configured as the bridge for the network attachment mentioned above. It is also
101+
configured to add the VLAN interface as a port, effectively linking the nodes
102+
and the network attachments.
103+
104+
```YAML
105+
spec:
106+
octavia:
107+
enabled: true
108+
template:
109+
octaviaAPI:
110+
networkAttachments:
111+
- internalapi
112+
octaviaHousekeeping:
113+
networkAttachments:
114+
- octavia
115+
octaviaWorker:
116+
networkAttachments:
117+
- octavia
118+
octaviaHealthManager:
119+
networkAttachments:
120+
- octavia
121+
122+
ovn:
123+
template:
124+
ovncontroller:
125+
nicMappings:
126+
datacentre: ospbr
127+
octavia: octbr
128+
```
129+
74130
## Considerations/Constraints
75131
76132
N/A

examples/dt/uni04delta-ipv6/control-plane/nncp/values.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,34 @@ data:
9999
"range_end": "2620:cf:cf:bbbb::70"
100100
}
101101
}
102+
103+
octavia:
104+
dnsDomain: octavia.openstack.lab
105+
mtu: 1500
106+
prefix-length: 64
107+
base_iface: enp7s0
108+
iface: octaviavlan
109+
vlan: 25
110+
net-attach-def: |
111+
{
112+
"cniVersion": "0.3.1",
113+
"name": "octavia",
114+
"type": "bridge",
115+
"bridge": "octbr",
116+
"ipam": {
117+
"type": "whereabouts",
118+
"range": "2620:cf:ce:aaaa::/64",
119+
"range_start": "2620:cf:ce:aaaa::30",
120+
"range_end": "2620:cf:ce:aaaa::70",
121+
"routes": [
122+
{
123+
"dst": "fd6c:6261:6173:0001::/64",
124+
"gw": "2620:cf:ce:aaaa::0096"
125+
}
126+
]
127+
}
128+
}
129+
102130
storage:
103131
dnsDomain: storage.example.com
104132
subnets:

examples/dt/uni04delta-ipv6/control-plane/service-values.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,25 @@ data:
162162
compute-ironic:
163163
computeDriver: ironic.IronicDriver
164164

165+
octavia:
166+
enabled: false
167+
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
168+
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
169+
availabilityZones:
170+
- zone-1
171+
octaviaAPI:
172+
networkAttachments:
173+
- internalapi
174+
octaviaHousekeeping:
175+
networkAttachments:
176+
- octavia
177+
octaviaHealthManager:
178+
networkAttachments:
179+
- octavia
180+
octaviaWorker:
181+
networkAttachments:
182+
- octavia
183+
165184
ovn:
166185
ovnController:
167186
nicMappings:

0 commit comments

Comments
 (0)