treewide: replace error assertions with errors.As

Change-Id: I369cc1dd8f745203f6f24093049d60d971acdf11
Reviewed-on: https://review.monogon.dev/c/monogon/+/3038
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/build/mkpayload/mkpayload.go b/metropolis/node/build/mkpayload/mkpayload.go
index aee3a81..a66d458 100644
--- a/metropolis/node/build/mkpayload/mkpayload.go
+++ b/metropolis/node/build/mkpayload/mkpayload.go
@@ -20,6 +20,7 @@
 package main
 
 import (
+	"errors"
 	"flag"
 	"fmt"
 	"io"
@@ -179,7 +180,8 @@
 		return
 	}
 	// Exit with objcopy's return code.
-	if e, ok := err.(*exec.ExitError); ok {
+	var e *exec.ExitError
+	if errors.As(err, &e) {
 		os.Exit(e.ExitCode())
 	}
 	log.Fatalf("Could not start command: %v", err)
diff --git a/metropolis/node/core/network/dhcp4c/transport/transport.go b/metropolis/node/core/network/dhcp4c/transport/transport.go
index 32b2bd7..c3e6e0b 100644
--- a/metropolis/node/core/network/dhcp4c/transport/transport.go
+++ b/metropolis/node/core/network/dhcp4c/transport/transport.go
@@ -43,7 +43,8 @@
 }
 
 func deadlineFromTimeout(err error) error {
-	if timeoutErr, ok := err.(net.Error); ok && timeoutErr.Timeout() {
+	var timeoutErr net.Error
+	if errors.As(err, &timeoutErr) && timeoutErr.Timeout() {
 		return DeadlineExceededErr
 	}
 	return err