blob: 4cee5ba31991cd55ed0fbda7c14b64fd8ff34522 [file] [log] [blame]
Lorenz Brun52f7f292020-06-24 16:42:02 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01002load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
Lorenz Brun52f7f292020-06-24 16:42:02 +02003
4go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02005 name = "nanoswitch_lib",
Serge Bazanskibe742842022-04-04 13:18:50 +02006 srcs = [
7 "nanoswitch.go",
8 "socks.go",
9 ],
Serge Bazanski31370b02021-01-07 16:31:14 +010010 importpath = "source.monogon.dev/metropolis/test/nanoswitch",
Lorenz Brun52f7f292020-06-24 16:42:02 +020011 visibility = ["//visibility:private"],
12 deps = [
Lorenz Brund13c1c62022-03-30 19:58:58 +020013 "//metropolis/node",
14 "//metropolis/node/core/network/dhcp4c",
15 "//metropolis/node/core/network/dhcp4c/callback",
Tim Windelschmidt4f586b52025-04-02 15:04:10 +020016 "//osbase/bringup",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020017 "//osbase/socksproxy",
18 "//osbase/supervisor",
Tim Windelschmidtd0cdb572025-03-27 17:18:39 +010019 "//osbase/test/qemu",
Lorenz Brund13c1c62022-03-30 19:58:58 +020020 "@com_github_google_nftables//:nftables",
21 "@com_github_google_nftables//expr",
22 "@com_github_insomniacslk_dhcp//dhcpv4",
23 "@com_github_insomniacslk_dhcp//dhcpv4/server4",
24 "@com_github_vishvananda_netlink//:netlink",
Lorenz Brun52f7f292020-06-24 16:42:02 +020025 ],
26)
27
28go_binary(
29 name = "nanoswitch",
Lorenz Brund13c1c62022-03-30 19:58:58 +020030 embed = [":nanoswitch_lib"],
Serge Bazanski0be9be82021-01-07 15:23:44 +010031 visibility = ["//visibility:private"],
Lorenz Brun52f7f292020-06-24 16:42:02 +020032)
33
Serge Bazanski662b5b32020-12-21 13:49:00 +010034node_initramfs(
Lorenz Brun52f7f292020-06-24 16:42:02 +020035 name = "initramfs",
36 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010037 "/init": ":nanoswitch",
Lorenz Brun52f7f292020-06-24 16:42:02 +020038
39 # CA Certificate bundle
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010040 "/etc/ssl/cert.pem": "@cacerts//file",
Lorenz Brun52f7f292020-06-24 16:42:02 +020041 },
Serge Bazanskia3938142022-04-04 17:04:47 +020042 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020043 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020044 ],
Serge Bazanski0be9be82021-01-07 15:23:44 +010045 visibility = ["//metropolis/test:__subpackages__"],
Lorenz Brun52f7f292020-06-24 16:42:02 +020046)