cos-customizer: Add arm64 targets for some binaries

To support cos-customizer on arm64, some binaries that need to run in
the cos-customizer build VM need to have arm64 targets. We create arm64
targets and update references to use the amd64 targets for now, to
ensure that this change doesn't modify cos-customizer behavior.

BUG=b/176990931
TEST=`bazel test`

Change-Id: Iee91764a03875f8790a99701498ad68785ba4f2f
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/25880
Reviewed-by: Arnav Kansal <rnv@google.com>
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Tested-by: Robert Kolchmeyer <rkolchmeyer@google.com>
diff --git a/src/cmd/handle_disk_layout/BUILD.bazel b/src/cmd/handle_disk_layout/BUILD.bazel
index b170ce1..6e07851 100644
--- a/src/cmd/handle_disk_layout/BUILD.bazel
+++ b/src/cmd/handle_disk_layout/BUILD.bazel
@@ -23,7 +23,17 @@
 )
 
 go_binary(
-    name = "handle_disk_layout_bin",
+    name = "handle_disk_layout_bin_amd64",
     embed = [":handle_disk_layout_lib"],
+    goos = "linux",
+    goarch = "amd64",
+    visibility = ["//visibility:public"],
+)
+
+go_binary(
+    name = "handle_disk_layout_bin_arm64",
+    embed = [":handle_disk_layout_lib"],
+    goos = "linux",
+    goarch = "arm64",
     visibility = ["//visibility:public"],
 )
diff --git a/src/cmd/metadata_watcher/BUILD.bazel b/src/cmd/metadata_watcher/BUILD.bazel
index 55b2bb3..8a65e3e 100644
--- a/src/cmd/metadata_watcher/BUILD.bazel
+++ b/src/cmd/metadata_watcher/BUILD.bazel
@@ -23,7 +23,17 @@
 )
 
 go_binary(
-    name = "metadata_watcher",
+    name = "metadata_watcher_amd64",
     embed = [":metadata_watcher_lib"],
+    goos = "linux",
+    goarch = "amd64",
+    visibility = ["//visibility:public"],
+)
+
+go_binary(
+    name = "metadata_watcher_arm64",
+    embed = [":metadata_watcher_lib"],
+    goos = "linux",
+    goarch = "arm64",
     visibility = ["//visibility:public"],
 )
diff --git a/src/cmd/provisioner/BUILD.bazel b/src/cmd/provisioner/BUILD.bazel
index 997a236..21ea897 100644
--- a/src/cmd/provisioner/BUILD.bazel
+++ b/src/cmd/provisioner/BUILD.bazel
@@ -21,7 +21,7 @@
 # package source.
 genrule(
     name = "handle_disk_layout.bin",
-    srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin"],
+    srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64"],
     outs = ["_handle_disk_layout.bin"],
     cmd = "cp $< $@",
 )
diff --git a/src/pkg/preloader/BUILD.bazel b/src/pkg/preloader/BUILD.bazel
index 8c67675..8faff8c 100644
--- a/src/pkg/preloader/BUILD.bazel
+++ b/src/pkg/preloader/BUILD.bazel
@@ -19,7 +19,7 @@
     srcs = [
         "//:src/data/startup.yaml",
         "//src/cmd/provisioner",
-        "//src/cmd/metadata_watcher",
+        "//src/cmd/metadata_watcher:metadata_watcher_amd64",
     ],
     outs = ["cidata.img"],
     cmd = "\
@@ -28,7 +28,7 @@
 $(location @mtools//:mcopy) -i $@ $(location //:src/data/startup.yaml) ::/user-data;\
 $(location @mtools//:mcopy) -i $@ meta-data ::/meta-data;\
 $(location @mtools//:mcopy) -i $@ $(location //src/cmd/provisioner:provisioner) ::/provisioner;\
-$(location @mtools//:mcopy) -i $@ $(location //src/cmd/metadata_watcher:metadata_watcher) ::/metadata_watcher;",
+$(location @mtools//:mcopy) -i $@ $(location //src/cmd/metadata_watcher:metadata_watcher_amd64) ::/metadata_watcher;",
     tools = [
         "@dosfstools//:mkfs.fat",
         "@mtools//:mcopy",