Override network interfaces naming and order¶
An L2 template contains the ifMapping
field that allows you to
identify Ethernet interfaces for the template. The Machine
object
API enables the Operator to override the mapping from the L2 template
by enforcing a specific order of names of the interfaces when applied
to the template.
The field l2TemplateIfMappingOverride
in the spec of the Machine
object contains a list of interfaces names. The order of the interfaces
names in the list is important because the L2Template
object will
be rendered with NICs ordered as per this list.
Note
Changes in the l2TemplateIfMappingOverride
field will apply
only once when the Machine
and corresponding IpamHost
objects
are created. Further changes to l2TemplateIfMappingOverride
will not reset the interfaces assignment and configuration.
Caution
The l2TemplateIfMappingOverride
field must contain the names of
all interfaces of the bare metal host.
The following example illustrates how to include the override field to the
Machine
object. In this example, we configure the interface eno1
,
which is the second on-board interface of the server, to precede the first
on-board interface eno0
.
apiVersion: cluster.k8s.io/v1alpha1
kind: Machine
metadata:
finalizers:
- foregroundDeletion
- machine.cluster.sigs.k8s.io
labels:
cluster.sigs.k8s.io/cluster-name: kaas-mgmt
cluster.sigs.k8s.io/control-plane: "true"
kaas.mirantis.com/provider: baremetal
kaas.mirantis.com/region: region-one
spec:
providerSpec:
value:
apiVersion: baremetal.k8s.io/v1alpha1
hostSelector:
matchLabels:
kaas.mirantis.com/baremetalhost-id: hw-master-0
image: {}
kind: BareMetalMachineProviderSpec
l2TemplateIfMappingOverride:
- eno1
- eno0
- enp0s1
- enp0s2
Note
The kaas.mirantis.com/region
label is removed from all
Container Cloud and MOSK objects in 24.1.
Therefore, do not add the label starting with these releases. On existing clusters updated to these releases, or if added manually, Container Cloud ignores this label.
As a result of the configuration above, when used with the example
L2 template for bonds and bridges described in Create L2 templates,
the enp0s1
and enp0s2
interfaces will be in predictable
ordered state. This state will be used to create subinterfaces for
Kubernetes networks (k8s-pods
) and for Kubernetes external
network (k8s-ext
).