siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.46k stars 516 forks source link

Support dracut style bond device selectors #8389

Open maxpain opened 6 months ago

maxpain commented 6 months ago

In our case, we rent a lot of dedicated servers from various hosting providers, and they provide the ability to set up an LACP bond, but after that, it's not possible to automatically provision Talos nodes because the hosting provider's switches discard ports and reject packets until the LACP bond is configured on Talos side.

As a workaround, I have to generate an ISO on https://factory.talos.dev with the following configuration:

customization:
    extraKernelArgs:
        - net.ifnames=0
        - bond=bond0:eth0,eth1,eth2,eth3:mode=802.3ad:1500

So, basically, I disable predictable network names and try to configure the LACP bond using the first 4 (or more) network interfaces. After installing Talos, I have to reboot the machine and manually remove net.ifnames=0 from kernel args in the GRUB menu; after that, I do talosctl upgrade to save this change. For some reason, deleting net.ifnames=0 from the kernel args doesn't work when using -net.ifnames in the machineconfig.

It would be better to provide some way to configure the LACP bond on all physical network interfaces using kernel args since we have this selector in Talos 1.7:

network:
    interfaces:
    -   bond:
            deviceSelectors:
            -   physical: true
EirikAskheim commented 6 months ago

Can you add a description of what and where you want these selectors?

maxpain commented 6 months ago

@EirikAskheim done

alexandrem commented 2 months ago

Isn't this available in v1.7.0 ?

smira commented 2 months ago

I guess this is about kernel args - not available there atm