Skip to content

Commit c64a855

Browse files
committed
[uni04delta-ipv6] Add octavia
Add service values and network configuration for octavia
1 parent 16541a1 commit c64a855

File tree

6 files changed

+303
-0
lines changed

6 files changed

+303
-0
lines changed

dt/uni04delta-ipv6/kustomization.yaml

+96
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ replacements:
8282
- spec.neutron.template.customServiceConfig
8383
options:
8484
create: true
85+
8586
- source:
8687
kind: ConfigMap
8788
name: network-values
@@ -152,3 +153,98 @@ replacements:
152153
- spec.keystone.template.customServiceConfig
153154
options:
154155
create: true
156+
157+
- source:
158+
kind: ConfigMap
159+
name: service-values
160+
fieldPath: data.octavia.enabled
161+
targets:
162+
- select:
163+
kind: OpenStackControlPlane
164+
fieldPaths:
165+
- spec.octavia.enabled
166+
options:
167+
create: true
168+
169+
- source:
170+
kind: ConfigMap
171+
name: service-values
172+
fieldPath: data.octavia.amphoraImageContainerImage
173+
targets:
174+
- select:
175+
kind: OpenStackControlPlane
176+
fieldPaths:
177+
- spec.octavia.template.amphoraImageContainerImage
178+
options:
179+
create: true
180+
181+
- source:
182+
kind: ConfigMap
183+
name: service-values
184+
fieldPath: data.octavia.apacheContainerImage
185+
targets:
186+
- select:
187+
kind: OpenStackControlPlane
188+
fieldPaths:
189+
- spec.octavia.template.apacheContainerImage
190+
options:
191+
create: true
192+
193+
- source:
194+
kind: ConfigMap
195+
name: service-values
196+
fieldPath: data.octavia.octaviaAPI.networkAttachments
197+
targets:
198+
- select:
199+
kind: OpenStackControlPlane
200+
fieldPaths:
201+
- spec.octavia.template.octaviaAPI.networkAttachments
202+
options:
203+
create: true
204+
205+
- source:
206+
kind: ConfigMap
207+
name: service-values
208+
fieldPath: data.octavia.octaviaHousekeeping.networkAttachments
209+
targets:
210+
- select:
211+
kind: OpenStackControlPlane
212+
fieldPaths:
213+
- spec.octavia.template.octaviaHousekeeping.networkAttachments
214+
options:
215+
create: true
216+
217+
- source:
218+
kind: ConfigMap
219+
name: service-values
220+
fieldPath: data.octavia.octaviaHealthManager.networkAttachments
221+
targets:
222+
- select:
223+
kind: OpenStackControlPlane
224+
fieldPaths:
225+
- spec.octavia.template.octaviaHealthManager.networkAttachments
226+
options:
227+
create: true
228+
229+
- source:
230+
kind: ConfigMap
231+
name: service-values
232+
fieldPath: data.octavia.octaviaWorker.networkAttachments
233+
targets:
234+
- select:
235+
kind: OpenStackControlPlane
236+
fieldPaths:
237+
- spec.octavia.template.octaviaWorker.networkAttachments
238+
options:
239+
create: true
240+
241+
- source:
242+
kind: ConfigMap
243+
name: network-values
244+
fieldPath: data.octavia.net-attach-def
245+
targets:
246+
- select:
247+
kind: NetworkAttachmentDefinition
248+
name: octavia
249+
fieldPaths:
250+
- spec.config

dt/uni04delta-ipv6/nad.yaml

+11
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

+95
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

+56
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

@@ -55,6 +56,7 @@ and Manila OpenStack services configured with Ceph.
5556
| Barbican | | Must have |
5657
| Ironic | | Must have |
5758
| Telemetry | | Must have |
59+
| Octavia | | Must have |
5860

5961
#### Support services
6062

@@ -76,6 +78,60 @@ work properly and can be deployed with any/default configuration.
7678
- Default settings: TLSe
7779
- Cluster Observability Operator is installed on the platform.
7880

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

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

+28
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

+17
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,23 @@ data:
168168
compute-ironic:
169169
computeDriver: ironic.IronicDriver
170170

171+
octavia:
172+
enabled: false
173+
amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image
174+
apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest
175+
octaviaAPI:
176+
networkAttachments:
177+
- internalapi
178+
octaviaHousekeeping:
179+
networkAttachments:
180+
- octavia
181+
octaviaHealthManager:
182+
networkAttachments:
183+
- octavia
184+
octaviaWorker:
185+
networkAttachments:
186+
- octavia
187+
171188
ovn:
172189
ovnController:
173190
nicMappings:

0 commit comments

Comments
 (0)