cloud/agent: migrate to bringup package

Change-Id: Ibe89c37cae058395723c9ed5ad5914d62a9af891
Reviewed-on: https://review.monogon.dev/c/monogon/+/3392
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/cloud/agent/install.go b/cloud/agent/install.go
index 7752517..29641bd 100644
--- a/cloud/agent/install.go
+++ b/cloud/agent/install.go
@@ -8,6 +8,7 @@
 	"fmt"
 	"io/fs"
 	"net/http"
+	"os"
 	"path/filepath"
 
 	"github.com/cenkalti/backoff/v4"
@@ -41,17 +42,18 @@
 
 // install dispatches OSInstallationRequests to the appropriate installer
 // method
-func install(req *bpb.OSInstallationRequest, netConfig *npb.Net, l logtree.LeveledLogger, isEFIBoot bool) error {
+func install(req *bpb.OSInstallationRequest, netConfig *npb.Net, l logtree.LeveledLogger) error {
 	switch reqT := req.Type.(type) {
 	case *bpb.OSInstallationRequest_Metropolis:
-		return installMetropolis(reqT.Metropolis, netConfig, l, isEFIBoot)
+		return installMetropolis(reqT.Metropolis, netConfig, l)
 	default:
 		return errors.New("unknown installation request type")
 	}
 }
 
-func installMetropolis(req *bpb.MetropolisInstallationRequest, netConfig *npb.Net, l logtree.LeveledLogger, isEFIBoot bool) error {
-	if !isEFIBoot {
+func installMetropolis(req *bpb.MetropolisInstallationRequest, netConfig *npb.Net, l logtree.LeveledLogger) error {
+	// Validate we are running via EFI.
+	if _, err := os.Stat("/sys/firmware/efi"); os.IsNotExist(err) {
 		//nolint:ST1005
 		return errors.New("Monogon OS can only be installed on EFI-booted machines, this one is not")
 	}