Skip to content

Commit b4763e7

Browse files
committed
Fix DNS setup on new machine
1 parent d92ed96 commit b4763e7

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

agent/cmd/agent/main.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ func main() {
112112

113113
log.Printf("Loaded config: serverID=%s, subnetId=%d, wireguardIP=%s", config.ServerID, config.SubnetID, config.WireGuardIP)
114114

115-
if err := dns.SetupLocalDNS(config.SubnetID); err != nil {
116-
log.Printf("Warning: Failed to setup local DNS: %v", err)
117-
}
118-
119115
if err := container.EnsureNetwork(config.SubnetID); err != nil {
120116
log.Printf("Warning: Failed to ensure container network: %v", err)
121117
}
118+
119+
if err := dns.SetupLocalDNS(config.SubnetID); err != nil {
120+
log.Printf("Warning: Failed to setup local DNS: %v", err)
121+
}
122122
} else {
123123
if token == "" {
124124
log.Fatal("--token is required for first-time registration")
@@ -186,19 +186,19 @@ func main() {
186186

187187
log.Println("WireGuard interface is up!")
188188

189-
log.Println("Setting up local DNS...")
190-
if err := dns.SetupLocalDNS(config.SubnetID); err != nil {
191-
log.Printf("Warning: Failed to setup local DNS: %v", err)
192-
} else {
193-
log.Println("Local DNS configured successfully")
194-
}
195-
196189
log.Println("Ensuring container network exists...")
197190
if err := container.EnsureNetwork(config.SubnetID); err != nil {
198191
log.Printf("Warning: Failed to create container network: %v", err)
199192
} else {
200193
log.Println("Container network ready")
201194
}
195+
196+
log.Println("Setting up local DNS...")
197+
if err := dns.SetupLocalDNS(config.SubnetID); err != nil {
198+
log.Printf("Warning: Failed to setup local DNS: %v", err)
199+
} else {
200+
log.Println("Local DNS configured successfully")
201+
}
202202
}
203203

204204
reconciler := reconcile.NewReconciler(config.EncryptionKey, dataDir)

agent/internal/container/runtime_linux.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,5 +506,9 @@ func EnsureNetwork(subnetId int) error {
506506
return fmt.Errorf("failed to create network: %s: %w", string(output), err)
507507
}
508508

509+
// Podman only creates the bridge interface when a container uses the network.
510+
// Run a throwaway container to force bridge creation so DNS can bind to the gateway IP.
511+
exec.Command("podman", "run", "--rm", "--network", NetworkName, "busybox", "true").Run()
512+
509513
return nil
510514
}

0 commit comments

Comments
 (0)