blob: c9049e48eeefdaeb48ebb2683a3f3400af41b57c [file] [log] [blame]
Lorenz Brun04904962019-11-11 15:21:14 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2
3# This is a hack to make go modules ignore all of kube-controlplane since Kubernetes is not importable
4# and we still need normal go mod tooling to work. Instead we're just depending on our own Kubernetes
5# which is already being built with Bazel and thus works fine as a dependency.
6
7genrule(
8 name = "hack_ignore",
9 srcs = [
10 "main.go",
11 ],
12 outs = [
13 "main_patched.go",
14 ],
15 cmd = """
16 sed '/+build ignore/d' $(location main.go) > "$@"
17 """,
18 visibility = ["//visibility:public"],
19)
20
21go_library(
22 name = "go_default_library",
23 srcs = [":main_patched.go"],
24 importpath = "git.monogon.dev/source/nexantic.git/core/cmd/kubemaster",
25 visibility = ["//visibility:private"],
26 deps = [
Serge Bazanskibb7db922020-04-30 12:43:10 +020027 "@io_k8s_kubernetes//cmd/kube-apiserver/app:go_default_library",
28 "@io_k8s_kubernetes//cmd/kube-controller-manager/app:go_default_library",
29 "@io_k8s_kubernetes//cmd/kube-scheduler/app:go_default_library",
30 "@io_k8s_component_base//cli/flag:go_default_library",
31 "@io_k8s_component_base//logs:go_default_library",
32 "@io_k8s_component_base//metrics/prometheus/restclient:go_default_library",
33 "@io_k8s_component_base//metrics/prometheus/version:go_default_library",
34 "@com_github_spf13_cobra//:go_default_library",
35 "@com_github_spf13_pflag//:go_default_library",
Lorenz Brun04904962019-11-11 15:21:14 +010036 ],
37)
38
39go_binary(
40 name = "kube-controlplane",
41 embed = [":go_default_library"],
42 pure = "on",
43 visibility = ["//visibility:public"],
44)