Skip to content

Commit 5d7f472

Browse files
committed
[uni04delta-ipv6] Add octavia
Add service values and network configuration for octavia
1 parent 033399d commit 5d7f472

File tree

5 files changed

+206
-0
lines changed

5 files changed

+206
-0
lines changed

dt/uni04delta-ipv6/networking/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/networking/nncp/kustomization.yaml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,58 @@ 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
121173

122174
replacements:
123175

@@ -261,3 +313,45 @@ replacements:
261313
name: master-2
262314
fieldPaths:
263315
- 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

@@ -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/networking/nncp/values.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,34 @@ data:
108108
"range_end": "2620:cf:cf:bbbb::70"
109109
}
110110
}
111+
112+
octavia:
113+
dnsDomain: octavia.openstack.lab
114+
mtu: 1500
115+
prefix-length: 64
116+
base_iface: enp7s0
117+
iface: octaviavlan
118+
vlan: 25
119+
net-attach-def: |
120+
{
121+
"cniVersion": "0.3.1",
122+
"name": "octavia",
123+
"type": "bridge",
124+
"bridge": "octbr",
125+
"ipam": {
126+
"type": "whereabouts",
127+
"range": "2620:cf:ce:aaaa::/64",
128+
"range_start": "2620:cf:ce:aaaa::30",
129+
"range_end": "2620:cf:ce:aaaa::70",
130+
"routes": [
131+
{
132+
"dst": "fd6c:6261:6173:0001::/64",
133+
"gw": "2620:cf:ce:aaaa::0096"
134+
}
135+
]
136+
}
137+
}
138+
111139
storage:
112140
dnsDomain: storage.example.com
113141
subnets:

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

Lines changed: 17 additions & 0 deletions
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: true
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)