bottlerocket-os / bottlerocket-os/bottlerocket-core-kit
Improve Network Configuration
- Dominant language
- Rust
- Stars
- 34
- Forks
- 77
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 23
Description
**What I'd like:**
We're supporting using bottlerocket on bare metal as part of EKS Anywhere running on Equinix Metal.
One of the most limiting and difficult to configure aspects is the NIC configuration. This is due to bare metal servers (even those of a particular plan type like m3.large.x86 or c3.medium.x86) not always having identical configurations. Sometimes network cards aren't the same, sometimes they don't all get plugged into the same slot. The current method of specifying the exact name of the networking card makes supporting this sort of environment near impossible.
Ideas we think would be good:
1. Some way to specify a match pattern for NICs that bottlerocket will configure any that match a specified pattern. IE instead of `enp5s0f0np0`, just specify `ens*`
1. The ability to specify multiple NICs and bottlerocket to try configuring them in order and once one works, use it as primary.
So in this scenario we would have a net.toml that looks like this (primary=auto just a made up idea to express the desired behavior):
```toml
[enp131s0f0np0]
dhcp4 = true
dhcp6 = false
primary = auto
[enp5s0f0np0]
dhcp4 = true
dhcp6 = false
primary = auto
[enp1s0f0np0]
dhcp4 = true
dhcp6 = false
primary = auto
```
1. The ability to specify MAC address and have it configure whatever NIC has that address.
1. Auto configuration of any NICs discovered to just do DHCP and pick the first available to communicate on.
Contributor guide
Research direction
Start by locating the existing Bottlerocket NIC configuration entry point and its tests; the issue does not name files or test targets. Read how exact interface names are resolved before evaluating pattern, ordered fallback, MAC-address, and automatic DHCP behavior. Done requires an agreed design and tests covering the selected behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100