blob: 5372cc59258e8d5029f9a6a737e6c0c9e6db5a55 [file] [log] [blame]
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load(":defs.bzl", "buildkind")
buildkind(
name = "buildkind",
build_setting_default = "full",
)
# True if user requested a lite build via --//metropolis/cli/metroctl:buildkind=lite .
config_setting(
name = "buildkind_lite",
flag_values = {
":buildkind": "lite",
},
)
go_library(
name = "metroctl_lib",
srcs = [
"cmd_certs.go",
"cmd_install.go",
"cmd_install_ssh.go",
"cmd_install_usb.go",
"cmd_k8s_configure.go",
"cmd_k8scredplugin.go",
"cmd_node.go",
"cmd_node_approve.go",
"cmd_node_logs.go",
"cmd_node_metrics.go",
"cmd_node_set.go",
"cmd_takeownership.go",
"main.go",
"rpc.go",
"table_node.go",
],
importpath = "source.monogon.dev/metropolis/cli/metroctl",
visibility = ["//visibility:private"],
deps = [
"//go/clitable",
"//go/logging",
"//go/net/ssh",
"//metropolis/cli/flagdefs",
"//metropolis/cli/metroctl/core",
"//metropolis/node",
"//metropolis/node/core/rpc",
"//metropolis/node/core/rpc/resolver",
"//metropolis/proto/api",
"//metropolis/proto/common",
"//osbase/blkio",
"//osbase/fat32",
"//osbase/logtree",
"//osbase/logtree/proto",
"//version",
"@com_github_adrg_xdg//:xdg",
"@com_github_schollz_progressbar_v3//:progressbar",
"@com_github_spf13_cobra//:cobra",
"@io_bazel_rules_go//go/runfiles:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
"@io_k8s_client_go//pkg/apis/clientauthentication/v1:clientauthentication",
"@org_golang_google_grpc//:grpc",
"@org_golang_google_protobuf//proto",
"@org_golang_x_crypto//ssh",
"@org_golang_x_crypto//ssh/agent",
"@org_golang_x_crypto//ssh/terminal",
"@org_golang_x_net//proxy",
"@org_golang_x_sync//semaphore",
"@org_golang_x_term//:term",
],
)
go_binary(
name = "metroctl",
data = select({
":buildkind_lite": [],
"//conditions:default": [
"//metropolis/cli/takeover",
"//metropolis/installer:kernel",
"//metropolis/node:bundle",
],
}),
embed = [":metroctl_lib"],
visibility = ["//visibility:public"],
)
# metroctl_lite is the same binary as normal metroctl, but without any data
# dependencies.
go_binary(
name = "metroctl_lite",
data = [],
embed = [":metroctl_lib"],
visibility = ["//metropolis:__subpackages__"],
)