blob: 6ae215ae3a417abf3af6f0a09baaa5bba0837afa [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",
30 "@kubernetes//pkg/client/metrics/prometheus:go_default_library",
31 "@kubernetes//pkg/version/prometheus:go_default_library",
32 "@kubernetes//staging/src/k8s.io/component-base/cli/flag:go_default_library",
33 "@kubernetes//staging/src/k8s.io/component-base/logs:go_default_library",
34 "@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)