Skip to content

Commit 5d0e767

Browse files
Merge pull request #1692 from rabi/bond_docs
Add docs for using bonded nic with ctlplane
2 parents f201c73 + 553fc53 commit 5d0e767

15 files changed

+466
-17
lines changed

apis/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,23 @@ spec:
6161
cloudUserName:
6262
default: cloud-admin
6363
type: string
64+
ctlplaneBond:
65+
properties:
66+
bondInterfaces:
67+
items:
68+
type: string
69+
minItems: 2
70+
type: array
71+
bondMode:
72+
default: active-backup
73+
type: string
74+
bondOptions:
75+
additionalProperties:
76+
type: string
77+
type: object
78+
required:
79+
- bondInterfaces
80+
type: object
6481
ctlplaneInterface:
6582
type: string
6683
deploymentSSHSecret:

apis/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20251103113532-c4a3d7916c65
2424
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20251103074111-0ec969e832ad
2525
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20251112213455-aa03725e0f2b
26-
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251112191014-b4c8cca9b6fc
26+
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251113131806-5029e383a1e5
2727
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20251111072459-1ceb14e1eab0
2828
github.com/openstack-k8s-operators/placement-operator/api v0.6.1-0.20251112201103-7583889cdb89
2929
github.com/openstack-k8s-operators/swift-operator/api v0.6.1-0.20251112213455-cc9071dc6aa0

apis/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20251103074111-0ec
148148
github.com/openstack-k8s-operators/nova-operator/api v0.6.1-0.20251103074111-0ec969e832ad/go.mod h1:4Bp2ias9AUXvPBOSOlEkuuegDkAcJEYB9K1UtmX4q8c=
149149
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20251112213455-aa03725e0f2b h1:j4S0Ir3U5SeBK1m5bdkHa27X8inJkWogDQ20bgOlHiE=
150150
github.com/openstack-k8s-operators/octavia-operator/api v0.6.1-0.20251112213455-aa03725e0f2b/go.mod h1:itmNEGzWRK3aQEIfmGENWEtDRVOporqOqqzX+JOwGJg=
151-
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251112191014-b4c8cca9b6fc h1:YLyj7+T5JDW9CSxc0GFWGxNHurLkwqLxZoUi/hv9hVg=
152-
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251112191014-b4c8cca9b6fc/go.mod h1:xCA4HMEiU8jvL+Y2/5V+z7sNpszjnCPNWy+JaCOmsBc=
151+
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251113131806-5029e383a1e5 h1:1q54oiyxF7z11M9Fsf9JFv3NWbTjWQzuPBYT8Mp5Ry0=
152+
github.com/openstack-k8s-operators/openstack-baremetal-operator/api v0.6.1-0.20251113131806-5029e383a1e5/go.mod h1:xCA4HMEiU8jvL+Y2/5V+z7sNpszjnCPNWy+JaCOmsBc=
153153
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20251111072459-1ceb14e1eab0 h1:r+s+puu/50Ca0Hw7BFQE25GNu/pI/bDClX8vZx0SVTQ=
154154
github.com/openstack-k8s-operators/ovn-operator/api v0.6.1-0.20251111072459-1ceb14e1eab0/go.mod h1:7QF+qByM+6rC2iy7VfeaZmLPCau1jKPcXQAEahMoz1Y=
155155
github.com/openstack-k8s-operators/placement-operator/api v0.6.1-0.20251112201103-7583889cdb89 h1:5Rzc3Y3oizFVY6p+cRBZ/dPiKQ/y5xkwIaCX/s5tsP0=

bindata/crds/baremetal.openstack.org_openstackbaremetalsets.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,28 @@ spec:
146146
default: cloud-admin
147147
description: CloudUser to be configured for remote access
148148
type: string
149+
ctlplaneBond:
150+
description: CtlplaneBond - Bonding configuration for ctlplane network
151+
properties:
152+
bondInterfaces:
153+
description: BondInterfaces - List of physical interfaces to bond
154+
items:
155+
type: string
156+
minItems: 2
157+
type: array
158+
bondMode:
159+
default: active-backup
160+
description: BondMode - Bonding mode (e.g., active-backup, 802.3ad)
161+
type: string
162+
bondOptions:
163+
additionalProperties:
164+
type: string
165+
description: BondOptions - Additional bonding options as key-value
166+
pairs
167+
type: object
168+
required:
169+
- bondInterfaces
170+
type: object
149171
ctlplaneGateway:
150172
description: 'CtlplaneGateway - IP of gateway for ctrlplane network
151173
(TODO: acquire this is another manner?)'

bindata/crds/crds.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16619,6 +16619,23 @@ spec:
1661916619
cloudUserName:
1662016620
default: cloud-admin
1662116621
type: string
16622+
ctlplaneBond:
16623+
properties:
16624+
bondInterfaces:
16625+
items:
16626+
type: string
16627+
minItems: 2
16628+
type: array
16629+
bondMode:
16630+
default: active-backup
16631+
type: string
16632+
bondOptions:
16633+
additionalProperties:
16634+
type: string
16635+
type: object
16636+
required:
16637+
- bondInterfaces
16638+
type: object
1662216639
ctlplaneInterface:
1662316640
type: string
1662416641
deploymentSSHSecret:

config/crd/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,23 @@ spec:
6161
cloudUserName:
6262
default: cloud-admin
6363
type: string
64+
ctlplaneBond:
65+
properties:
66+
bondInterfaces:
67+
items:
68+
type: string
69+
minItems: 2
70+
type: array
71+
bondMode:
72+
default: active-backup
73+
type: string
74+
bondOptions:
75+
additionalProperties:
76+
type: string
77+
type: object
78+
required:
79+
- bondInterfaces
80+
type: object
6481
ctlplaneInterface:
6582
type: string
6683
deploymentSSHSecret:

config/operator/manager_operator_images.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ spec:
4242
- name: RELATED_IMAGE_OCTAVIA_OPERATOR_MANAGER_IMAGE_URL
4343
value: quay.io/openstack-k8s-operators/octavia-operator@sha256:442c269d79163f8da75505019c02e9f0815837aaadcaddacb8e6c12df297ca13
4444
- name: RELATED_IMAGE_OPENSTACK_BAREMETAL_OPERATOR_MANAGER_IMAGE_URL
45-
value: quay.io/openstack-k8s-operators/openstack-baremetal-operator@sha256:3f3e58058021dc15b28688a7744273d3b6467d29b085aad52895817f4721b24e
45+
value: quay.io/openstack-k8s-operators/openstack-baremetal-operator@sha256:78852f8ba332a5756c1551c126157f735279101a0fc3277ba4aa4db3478789dd
4646
- name: RELATED_IMAGE_OVN_OPERATOR_MANAGER_IMAGE_URL
4747
value: quay.io/openstack-k8s-operators/ovn-operator@sha256:5d49d4594c66eda7b151746cc6e1d3c67c0129b4503eeb043a64ae8ec2da6a1b
4848
- name: RELATED_IMAGE_PLACEMENT_OPERATOR_MANAGER_IMAGE_URL

docs/assemblies/con_provisioning-bare-metal-data-plane-nodes.adoc

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,55 @@ select BMHs for the node.
114114
bmhLabelSelector:
115115
nodeName: edpm-compute-01
116116

117+
== Configuring Network Interface Bonding for Control Plane
118+
119+
Network interface bonding (also known as NIC teaming) can be configured for the control plane
120+
network to provide redundancy and increased throughput. The bonding configuration is specified
121+
in the `baremetalSetTemplate` section using the `ctlplaneBond` field.
122+
123+
The bonding configuration includes:
124+
125+
* `bondInterfaces` - List of physical interfaces to bond (minimum 2 interfaces required)
126+
* `bondMode` - Bonding mode to use (default: "active-backup")
127+
* `bondOptions` - Additional bonding options as key-value pairs
128+
129+
Supported bonding modes include:
130+
131+
* `active-backup` - Only one interface is active at a time for fault tolerance
132+
* `802.3ad` - IEEE 802.3ad Dynamic link aggregation (LACP)
133+
* `balance-rr` - Round-robin policy for load balancing
134+
* `balance-xor` - XOR policy for load balancing
135+
* Other modes supported by cloud-init
136+
137+
Example configuration with bonding:
138+
139+
apiVersion: dataplane.openstack.org/v1beta1
140+
kind: OpenStackDataPlaneNodeSet
141+
metadata:
142+
name: openstack-edpm
143+
spec:
144+
baremetalSetTemplate:
145+
bmhLabelSelector:
146+
app: openstack
147+
workload: compute
148+
ctlplaneInterface: bond0
149+
ctlplaneBond:
150+
bondInterfaces:
151+
- eno1
152+
- eno2
153+
bondMode: "802.3ad"
154+
bondOptions:
155+
bond-miimon: "100"
156+
bond-xmit-hash-policy: "layer3+4"
157+
cloudUserName: cloud-admin
158+
nodes:
159+
edpm-compute-0:
160+
hostName: edpm-compute-0
161+
162+
When bonding is configured, the `ctlplaneInterface` should be set to the bond interface name
163+
(e.g., `bond0`), and the physical interfaces specified in `bondInterfaces` will be configured
164+
as members of the bond during node provisioning.
165+
117166
=== Relevant Status Condition
118167

119168
`NodeSetBaremetalProvisionReady` condition in status condtions reflects the status of

0 commit comments

Comments
 (0)