Enable network loopback interface
Absence of a properly enabled loopback interface caused weird
behavior in the Kubernetes control plane.
Test Plan: Issues with kube-apiserver were no longer observed.
X-Origin-Diff: phab/D257
GitOrigin-RevId: 9b8a18a28463a29e85945587765f155de86f68b3
diff --git a/core/internal/network/main.go b/core/internal/network/main.go
index b45b8db..0888de7 100644
--- a/core/internal/network/main.go
+++ b/core/internal/network/main.go
@@ -19,10 +19,11 @@
import (
"context"
"fmt"
- "git.monogon.dev/source/nexantic.git/core/internal/common/service"
"net"
"os"
+ "git.monogon.dev/source/nexantic.git/core/internal/common/service"
+
"github.com/insomniacslk/dhcp/dhcpv4/nclient4"
"github.com/vishvananda/netlink"
"go.uber.org/zap"
@@ -79,9 +80,8 @@
return err
}
if err := netlink.RouteAdd(&netlink.Route{
- Dst: &net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)},
- Gw: gw,
-
+ Dst: &net.IPNet{IP: net.IPv4(0, 0, 0, 0), Mask: net.IPv4Mask(0, 0, 0, 0)},
+ Gw: gw,
Scope: netlink.SCOPE_UNIVERSE,
}); err != nil {
return fmt.Errorf("Failed to add default route: %w", err)
@@ -137,6 +137,10 @@
} else {
s.Logger.Info("Ignoring non-Ethernet interface", zap.String("interface", attrs.Name))
}
+ } else if link.Attrs().Name == "lo" {
+ if err := netlink.LinkSetUp(link); err != nil {
+ s.Logger.Error("Failed to take up loopback interface", zap.Error(err))
+ }
}
}
if len(ethernetLinks) == 1 {