Skip to content

Commit 16f3ffe

Browse files
committed
[uni04delta-ipv6] Add octavia
Add service values and network configuration for octavia
1 parent 21ece11 commit 16f3ffe

File tree

6 files changed

+316
-0
lines changed

6 files changed

+316
-0
lines changed

dt/uni04delta-ipv6/kustomization.yaml

+107
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,110 @@ replacements:
9292
name: ironic
9393
fieldPaths:
9494
- spec.config
95+
96+
- source:
97+
kind: ConfigMap
98+
name: service-values
99+
fieldPath: data.octavia.enabled
100+
targets:
101+
- select:
102+
kind: OpenStackControlPlane
103+
fieldPaths:
104+
- spec.octavia.enabled
105+
options:
106+
create: true
107+
108+
- source:
109+
kind: ConfigMap
110+
name: service-values
111+
fieldPath: data.octavia.amphoraImageContainerImage
112+
targets:
113+
- select:
114+
kind: OpenStackControlPlane
115+
fieldPaths:
116+
- spec.octavia.template.amphoraImageContainerImage
117+
options:
118+
create: true
119+
120+
- source:
121+
kind: ConfigMap
122+
name: service-values
123+
fieldPath: data.octavia.apacheContainerImage
124+
targets:
125+
- select:
126+
kind: OpenStackControlPlane
127+
fieldPaths:
128+
- spec.octavia.template.apacheContainerImage
129+
options:
130+
create: true
131+
132+
- source:
133+
kind: ConfigMap
134+
name: service-values
135+
fieldPath: data.octavia.availabilityZones
136+
targets:
137+
- select:
138+
kind: OpenStackControlPlane
139+
fieldPaths:
140+
- spec.octavia.template.lbMgmtNetwork.availabilityZones
141+
options:
142+
create: true
143+
144+
- source:
145+
kind: ConfigMap
146+
name: service-values
147+
fieldPath: data.octavia.octaviaAPI.networkAttachments
148+
targets:
149+
- select:
150+
kind: OpenStackControlPlane
151+
fieldPaths:
152+
- spec.octavia.template.octaviaAPI.networkAttachments
153+
options:
154+
create: true
155+
156+
- source:
157+
kind: ConfigMap
158+
name: service-values
159+
fieldPath: data.octavia.octaviaHousekeeping.networkAttachments
160+
targets:
161+
- select:
162+
kind: OpenStackControlPlane
163+
fieldPaths:
164+
- spec.octavia.template.octaviaHousekeeping.networkAttachments
165+
options:
166+
create: true
167+
168+
- source:
169+
kind: ConfigMap
170+
name: service-values
171+
fieldPath: data.octavia.octaviaHealthManager.networkAttachments
172+
targets:
173+
- select:
174+
kind: OpenStackControlPlane
175+
fieldPaths:
176+
- spec.octavia.template.octaviaHealthManager.networkAttachments
177+
options:
178+
create: true
179+
180+
- source:
181+
kind: ConfigMap
182+
name: service-values
183+
fieldPath: data.octavia.octaviaWorker.networkAttachments
184+
targets:
185+
- select:
186+
kind: OpenStackControlPlane
187+
fieldPaths:
188+
- spec.octavia.template.octaviaWorker.networkAttachments
189+
options:
190+
create: true
191+
192+
- source:
193+
kind: ConfigMap
194+
name: network-values
195+
fieldPath: data.octavia.net-attach-def
196+
targets:
197+
- select:
198+
kind: NetworkAttachmentDefinition
199+
name: octavia
200+
fieldPaths:
201+
- 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

@@ -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

+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

+19
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,25 @@ data:
163163
compute-ironic:
164164
computeDriver: ironic.IronicDriver
165165

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

0 commit comments

Comments
 (0)