BUILD 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. load("@io_bazel_rules_docker//container:container.bzl", "container_layer")
  2. load("//build:container.bzl", "multi_arch_container")
  3. load("//build:platforms.bzl", "SERVER_PLATFORMS")
  4. container_layer(
  5. name = "scripts",
  6. directory = "/",
  7. files = [
  8. "hyperkube",
  9. ],
  10. )
  11. container_layer(
  12. name = "bins",
  13. directory = "/usr/local/bin",
  14. files = [
  15. "//cmd/kube-apiserver",
  16. "//cmd/kube-controller-manager",
  17. "//cmd/kube-proxy",
  18. "//cmd/kube-scheduler",
  19. "//cmd/kubectl",
  20. "//cmd/kubelet",
  21. ],
  22. )
  23. multi_arch_container(
  24. name = "image",
  25. architectures = SERVER_PLATFORMS["linux"],
  26. base = "@debian-hyperkube-base-{ARCH}//image",
  27. cmd = [
  28. "/hyperkube",
  29. ],
  30. # {ARCH} is replaced by the macro, but STABLE_ vars are replaced by the
  31. # build stamping, so we need to escape them
  32. docker_push_tags = ["{{STABLE_DOCKER_PUSH_REGISTRY}}/hyperkube-{ARCH}:{{STABLE_DOCKER_TAG}}"],
  33. docker_tags = ["{{STABLE_DOCKER_REGISTRY}}/hyperkube-{ARCH}:{{STABLE_DOCKER_TAG}}"],
  34. layers = [
  35. ":bins",
  36. ":scripts",
  37. ],
  38. stamp = True,
  39. tags = ["manual"],
  40. visibility = ["//visibility:public"],
  41. )
  42. filegroup(
  43. name = "package-srcs",
  44. srcs = glob(["**"]),
  45. tags = ["automanaged"],
  46. visibility = ["//visibility:private"],
  47. )
  48. filegroup(
  49. name = "all-srcs",
  50. srcs = [":package-srcs"],
  51. tags = ["automanaged"],
  52. visibility = ["//visibility:public"],
  53. )