BUILD 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package(default_visibility = ["//visibility:public"])
  2. load("//build:platforms.bzl", "CLIENT_PLATFORMS", "NODE_PLATFORMS", "for_platforms")
  3. load("//build:workspace.bzl", "CNI_VERSION", "CRI_TOOLS_VERSION")
  4. load("@io_k8s_repo_infra//defs:build.bzl", "release_filegroup")
  5. load("@io_k8s_repo_infra//defs:rpm.bzl", "pkg_rpm_for_goarch")
  6. release_filegroup(
  7. name = "rpms",
  8. conditioned_srcs = for_platforms(
  9. default = [],
  10. for_client = [":kubectl.rpm"],
  11. for_node = [
  12. ":cri-tools.rpm",
  13. ":kubeadm.rpm",
  14. ":kubelet.rpm",
  15. ":kubernetes-cni.rpm",
  16. ],
  17. only_os = "linux",
  18. ),
  19. tags = ["manual"],
  20. visibility = ["//visibility:public"],
  21. )
  22. # Create genrules to copy the arch-specific RPMs to RPMs without the arch in their filename.
  23. genrule(
  24. name = "kubectl",
  25. srcs = select(for_platforms(
  26. for_client = [":kubectl-{ARCH}.rpm"],
  27. only_os = "linux",
  28. )),
  29. outs = ["kubectl.rpm"],
  30. cmd = "cp $< $@",
  31. output_to_bindir = True,
  32. )
  33. [genrule(
  34. name = pkg,
  35. srcs = select(for_platforms(
  36. for_client = [":%s-{ARCH}.rpm" % pkg],
  37. only_os = "linux",
  38. )),
  39. outs = ["%s.rpm" % pkg],
  40. cmd = "cp $< $@",
  41. output_to_bindir = True,
  42. ) for pkg in [
  43. "cri-tools",
  44. "kubeadm",
  45. "kubelet",
  46. "kubernetes-cni",
  47. ]]
  48. [pkg_rpm_for_goarch(
  49. name = "kubectl",
  50. changelog = "//:CHANGELOG.md",
  51. data = [
  52. "//cmd/kubectl",
  53. ],
  54. goarch = arch,
  55. spec_file = "kubectl.spec",
  56. tags = ["manual"],
  57. version_file = "//build:os_package_version",
  58. ) for arch in CLIENT_PLATFORMS["linux"]]
  59. [pkg_rpm_for_goarch(
  60. name = "kubelet",
  61. changelog = "//:CHANGELOG.md",
  62. data = [
  63. "kubelet.service",
  64. "//cmd/kubelet",
  65. ],
  66. goarch = arch,
  67. spec_file = "kubelet.spec",
  68. tags = ["manual"],
  69. version_file = "//build:os_package_version",
  70. ) for arch in NODE_PLATFORMS["linux"]]
  71. [pkg_rpm_for_goarch(
  72. name = "kubeadm",
  73. changelog = "//:CHANGELOG.md",
  74. data = [
  75. "10-kubeadm.conf",
  76. "50-kubeadm.conf",
  77. "kubeadm.conf",
  78. "kubelet.env",
  79. "//cmd/kubeadm",
  80. ],
  81. goarch = arch,
  82. spec_file = "kubeadm.spec",
  83. tags = ["manual"],
  84. version_file = "//build:os_package_version",
  85. ) for arch in NODE_PLATFORMS["linux"]]
  86. [pkg_rpm_for_goarch(
  87. name = "kubernetes-cni",
  88. changelog = "//:CHANGELOG.md",
  89. data = [
  90. "@kubernetes_cni_{GOARCH}//file",
  91. ],
  92. goarch = arch,
  93. spec_file = "kubernetes-cni.spec",
  94. tags = ["manual"],
  95. version = CNI_VERSION,
  96. ) for arch in NODE_PLATFORMS["linux"]]
  97. [pkg_rpm_for_goarch(
  98. name = "cri-tools",
  99. data = [
  100. "@cri_tools_{GOARCH}//file",
  101. ],
  102. goarch = arch,
  103. spec_file = "cri-tools.spec",
  104. tags = ["manual"],
  105. version = CRI_TOOLS_VERSION,
  106. ) for arch in NODE_PLATFORMS["linux"]]
  107. filegroup(
  108. name = "package-srcs",
  109. srcs = glob(["**"]),
  110. tags = ["automanaged"],
  111. visibility = ["//visibility:private"],
  112. )
  113. filegroup(
  114. name = "all-srcs",
  115. srcs = [":package-srcs"],
  116. tags = ["automanaged"],
  117. )