blob: 1a43336384fd41224947c69483e1122b36c68690 [file] [log] [blame]
Serge Bazanskie0c06172023-09-19 12:28:16 +00001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Serge Bazanski394b67e2023-07-19 17:34:34 +02002load(":defs.bzl", "buildkind")
3
4buildkind(
5 name = "buildkind",
6 build_setting_default = "full",
7)
8
9# True if user requested a lite build via --//metropolis/cli/metroctl:buildkind=lite .
10config_setting(
11 name = "buildkind_lite",
12 flag_values = {
13 ":buildkind": "lite",
14 },
15)
Lorenz Brun6adf8842021-10-05 13:39:11 +020016
17go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +020018 name = "metroctl_lib",
Lorenz Brune6573102021-11-02 14:15:37 +010019 srcs = [
Tim Windelschmidtf0ec0f62023-07-17 13:43:38 +020020 "cmd_certs.go",
Serge Bazanskibeec27c2024-10-31 12:27:08 +000021 "cmd_cluster.go",
22 "cmd_cluster_takeownership.go",
Serge Bazanskicfbbbdb2023-03-22 17:48:08 +010023 "cmd_install.go",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010024 "cmd_install_ssh.go",
Tim Windelschmidt7006caf2024-02-27 16:49:39 +010025 "cmd_install_usb.go",
Serge Bazanski7d1a0de2023-07-05 01:17:15 +020026 "cmd_k8s_configure.go",
Serge Bazanskicfbbbdb2023-03-22 17:48:08 +010027 "cmd_k8scredplugin.go",
28 "cmd_node.go",
29 "cmd_node_approve.go",
Serge Bazanskib91938f2023-03-29 14:31:22 +020030 "cmd_node_logs.go",
Serge Bazanskia3e38cf2024-07-31 14:40:04 +000031 "cmd_node_metrics.go",
Serge Bazanskicfbbbdb2023-03-22 17:48:08 +010032 "cmd_node_set.go",
Lorenz Brune6573102021-11-02 14:15:37 +010033 "main.go",
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020034 "rpc.go",
Serge Bazanskicfbbbdb2023-03-22 17:48:08 +010035 "table_node.go",
Lorenz Brune6573102021-11-02 14:15:37 +010036 ],
Lorenz Brun6adf8842021-10-05 13:39:11 +020037 importpath = "source.monogon.dev/metropolis/cli/metroctl",
38 visibility = ["//visibility:private"],
Lorenz Brune6573102021-11-02 14:15:37 +010039 deps = [
Serge Bazanskie0c06172023-09-19 12:28:16 +000040 "//go/clitable",
Serge Bazanskica8d9512024-09-12 14:20:57 +020041 "//go/logging",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010042 "//go/net/ssh",
Jan Schära9b060b2024-08-07 10:42:29 +020043 "//metropolis/cli/flagdefs",
Lorenz Brund13c1c62022-03-30 19:58:58 +020044 "//metropolis/cli/metroctl/core",
Serge Bazanskia3e38cf2024-07-31 14:40:04 +000045 "//metropolis/node",
Lorenz Brund13c1c62022-03-30 19:58:58 +020046 "//metropolis/node/core/rpc",
Serge Bazanski925ec3d2024-02-05 14:38:20 +010047 "//metropolis/node/core/rpc/resolver",
Lorenz Brund13c1c62022-03-30 19:58:58 +020048 "//metropolis/proto/api",
Serge Bazanskida114862023-03-29 17:46:42 +020049 "//metropolis/proto/common",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020050 "//osbase/blkio",
51 "//osbase/fat32",
52 "//osbase/logtree",
53 "//osbase/logtree/proto",
Serge Bazanski0ccc85b2023-11-20 12:59:20 +010054 "//version",
Lorenz Brund13c1c62022-03-30 19:58:58 +020055 "@com_github_adrg_xdg//:xdg",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010056 "@com_github_schollz_progressbar_v3//:progressbar",
Lorenz Brund13c1c62022-03-30 19:58:58 +020057 "@com_github_spf13_cobra//:cobra",
Tim Windelschmidt2a1d1b22024-02-06 07:07:42 +010058 "@io_bazel_rules_go//go/runfiles:go_default_library",
Lorenz Brund13c1c62022-03-30 19:58:58 +020059 "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
Lorenz Brun20d1dd12022-07-01 12:21:42 +000060 "@io_k8s_client_go//pkg/apis/clientauthentication/v1:clientauthentication",
Tim Windelschmidt3325b4b2024-07-15 19:19:49 +020061 "@org_golang_google_grpc//:grpc",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010062 "@org_golang_google_protobuf//proto",
63 "@org_golang_x_crypto//ssh",
64 "@org_golang_x_crypto//ssh/agent",
65 "@org_golang_x_crypto//ssh/terminal",
Serge Bazanskia3e38cf2024-07-31 14:40:04 +000066 "@org_golang_x_net//proxy",
Lorenz Brun9ce40712024-02-13 21:54:46 +010067 "@org_golang_x_sync//semaphore",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010068 "@org_golang_x_term//:term",
Lorenz Brune6573102021-11-02 14:15:37 +010069 ],
Lorenz Brun6adf8842021-10-05 13:39:11 +020070)
71
72go_binary(
73 name = "metroctl",
Tim Windelschmidt6120f382024-09-03 16:31:10 +020074 data = select({
75 ":buildkind_lite": [],
76 "//conditions:default": [
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010077 "//metropolis/cli/takeover",
Tim Windelschmidt6120f382024-09-03 16:31:10 +020078 "//metropolis/installer:kernel",
79 "//metropolis/node:bundle",
80 ],
81 }),
Lorenz Brund13c1c62022-03-30 19:58:58 +020082 embed = [":metroctl_lib"],
Lorenz Brun6adf8842021-10-05 13:39:11 +020083 visibility = ["//visibility:public"],
84)
Tim Windelschmidt6120f382024-09-03 16:31:10 +020085
86# metroctl_lite is the same binary as normal metroctl, but without any data
87# dependencies.
88go_binary(
89 name = "metroctl_lite",
90 data = [],
91 embed = [":metroctl_lib"],
92 visibility = ["//metropolis:__subpackages__"],
93)