| Lorenz Brun | 0490496 | 2019-11-11 15:21:14 +0100 | [diff] [blame] | 1 | load("@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 |  | 
 | 7 | genrule( | 
 | 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 |  | 
 | 21 | go_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 |  | 
 | 39 | go_binary( | 
 | 40 |     name = "kube-controlplane", | 
 | 41 |     embed = [":go_default_library"], | 
 | 42 |     pure = "on", | 
 | 43 |     visibility = ["//visibility:public"], | 
 | 44 | ) |