metropolis/node/build: allow impure code in root if race checking is enabled

This allows us to build the root filesystem with race detection enabled.

Change-Id: I370ce2114090f828f0d9843fd4a7dc87c47bd153
Reviewed-on: https://review.monogon.dev/c/monogon/+/1835
Reviewed-by: Leopold Schabel <leo@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/build/def.bzl b/metropolis/node/build/def.bzl
index 2438deb..e0aa548 100644
--- a/metropolis/node/build/def.bzl
+++ b/metropolis/node/build/def.bzl
@@ -18,14 +18,19 @@
     """
     Transition that enables pure, static build of Go binaries.
     """
+    race = settings['@io_bazel_rules_go//go/config:race']
+    pure = not race
+
     return {
-        "@io_bazel_rules_go//go/config:pure": True,
+        "@io_bazel_rules_go//go/config:pure": pure,
         "@io_bazel_rules_go//go/config:static": True,
     }
 
 build_pure_transition = transition(
     implementation = _build_pure_transition_impl,
-    inputs = [],
+    inputs = [
+        "@io_bazel_rules_go//go/config:race",
+    ],
     outputs = [
         "@io_bazel_rules_go//go/config:pure",
         "@io_bazel_rules_go//go/config:static",