| 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_cluster.go", |
| "cmd_cluster_configure.go", |
| "cmd_cluster_takeownership.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", |
| "main.go", |
| "rpc.go", |
| "table_node.go", |
| ], |
| importpath = "source.monogon.dev/metropolis/cli/metroctl", |
| visibility = ["//visibility:private"], |
| deps = [ |
| "//go/clitable", |
| "//go/logging", |
| "//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/logtree", |
| "//osbase/logtree/proto", |
| "//osbase/net/sshtakeover", |
| "//osbase/oci", |
| "//osbase/structfs", |
| "//version", |
| "@com_github_adrg_xdg//:xdg", |
| "@com_github_schollz_progressbar_v3//:progressbar", |
| "@com_github_spf13_cobra//:cobra", |
| "@io_bazel_rules_go//go/runfiles", |
| "@io_k8s_apimachinery//pkg/apis/meta/v1:meta", |
| "@io_k8s_client_go//pkg/apis/clientauthentication/v1:clientauthentication", |
| "@io_k8s_utils//ptr", |
| "@org_golang_google_grpc//:grpc", |
| "@org_golang_google_protobuf//encoding/prototext", |
| "@org_golang_google_protobuf//proto", |
| "@org_golang_google_protobuf//types/known/fieldmaskpb", |
| "@org_golang_x_crypto//ssh", |
| "@org_golang_x_crypto//ssh/agent", |
| "@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:oci_image", |
| ], |
| }), |
| 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__"], |
| ) |