blob: cc0427abffbc7c681a4892e6cd7ab99fded1be27 [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 = [
27 "@kubernetes//cmd/kube-apiserver/app:go_default_library",
28 "@kubernetes//cmd/kube-controller-manager/app:go_default_library",
29 "@kubernetes//cmd/kube-scheduler/app:go_default_library",
Lorenz Brun04904962019-11-11 15:21:14 +010030 "@kubernetes//staging/src/k8s.io/component-base/cli/flag:go_default_library",
31 "@kubernetes//staging/src/k8s.io/component-base/logs:go_default_library",
Lorenz Brun5d7d2a42020-04-06 14:11:02 +020032 "@kubernetes//staging/src/k8s.io/component-base/metrics/prometheus/restclient:go_default_library",
33 "@kubernetes//staging/src/k8s.io/component-base/metrics/prometheus/version:go_default_library",
Lorenz Brun04904962019-11-11 15:21:14 +010034 "@kubernetes//vendor/github.com/spf13/cobra:go_default_library",
35 "@kubernetes//vendor/github.com/spf13/pflag:go_default_library",
36 ],
37)
38
39go_binary(
40 name = "kube-controlplane",
41 embed = [":go_default_library"],
42 pure = "on",
43 visibility = ["//visibility:public"],
44)