bottlerocket-os / bottlerocket-os/bottlerocket-core-kit

Improve Network Configuration

Open
#416 14 comments 5 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.