Currently FCOS for ARM does not provide wifi modules. Your use-case is similar to mine save for the fact that I don’t use wifi on my raspberry pi 400 or 4Bs.
For a mostly “stock” FCOS ARM save for pre-loading and running microshift here is my ip addr
output for the master
node:
⬢[core@toolbox ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:5f:01:19:17:b3 brd ff:ff:ff:ff:ff:ff
inet <SNIP> brd <SNIP> scope global dynamic noprefixroute eth0
valid_lft 76042sec preferred_lft 76042sec
inet6 <SNIP> scope link noprefixroute
valid_lft forever preferred_lft forever
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 36:dc:dc:13:be:9f brd ff:ff:ff:ff:ff:ff
inet 10.42.0.0/32 brd 10.42.0.0 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::34dc:dcff:fe13:be9f/64 scope link
valid_lft forever preferred_lft forever
4: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
link/ether 12:1e:bf:39:82:73 brd ff:ff:ff:ff:ff:ff
inet 10.42.0.1/24 brd 10.42.0.255 scope global cni0
valid_lft forever preferred_lft forever
inet6 fe80::101e:bfff:fe39:8273/64 scope link
valid_lft forever preferred_lft forever
5: veth71086f53@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether f2:77:e2:62:b0:0f brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::f077:e2ff:fe62:b00f/64 scope link
valid_lft forever preferred_lft forever
6: veth92e5db72@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 42:07:f5:4e:5c:50 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::fc75:18ff:fe2d:b1aa/64 scope link
valid_lft forever preferred_lft forever
7: veth2ce75233@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master cni0 state UP group default
link/ether 12:c3:81:ac:d6:27 brd ff:ff:ff:ff:ff:ff link-netnsid 2
inet6 fe80::10c3:81ff:feac:d627/64 scope link
valid_lft forever preferred_lft forever
If you’re interested in customizing your FCOS ARM installation, you can take some inspiration from this repo where I customize the FCOS image via some Ansible playbooks. If you wanted to enable wifi post-installation, you could simply write a playbook that uses the rpm-ostree Ansible module to layer the necessary wifi packages, such as bcm2711-firmware.aarch64
, bcm283x-firmware.aarch64
, and NetworkManager-wifi.aarch64
at a minimum.
From there, you should be able to load up k0s, k3s, microshift, or another preferred minimal k8s distribution and use the wifi devices for egress/ingress as intended.