kubernetes/build/release-tars/BUILD
Tim Hockin 325ea6e3c2 Restructure licenses again (revert cd4474a)
This moves licenses of vendored code from one monolith file into a tree
of individual files for easier reviews.  This fixes both the bash and
bazel paths.
2020-05-07 21:48:59 -07:00

278 lines
6.3 KiB
Python

package(default_visibility = ["//visibility:public"])
load(
"//build:platforms.bzl",
"CLIENT_PLATFORMS",
"NODE_PLATFORMS",
"SERVER_PLATFORMS",
"TEST_PLATFORMS",
"for_platforms",
"go_platform_constraint",
)
load("@io_k8s_repo_infra//defs:build.bzl", "release_filegroup")
load("@io_k8s_repo_infra//defs:pkg.bzl", "pkg_tar")
load("//staging:repos_generated.bzl", "staging_repos")
# Bazel doesn't make the output filename
# (such as kubernetes-server-{OS}-{ARCH}.tar.gz) configurable, so we instead
# create rules for all platforms and tag them manual.
# We then select the correct set of platform-specific tarballs in this filegroup
# using a select() statement.
# Thus the release-tars target always selects the correct set of tarballs
# for the configured platform being built.
release_filegroup(
name = "release-tars",
conditioned_srcs = for_platforms(
for_all = [
":kubernetes.tar.gz",
":kubernetes-src.tar.gz",
],
for_client = [":kubernetes-client-{OS}-{ARCH}.tar.gz"],
for_node = [":kubernetes-node-{OS}-{ARCH}.tar.gz"],
for_server = [
":kubernetes-server-{OS}-{ARCH}.tar.gz",
":kubernetes-manifests.tar.gz",
],
for_test = [
":kubernetes-test-portable.tar.gz",
":kubernetes-test-{OS}-{ARCH}.tar.gz",
],
),
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)
pkg_tar(
name = "kubernetes-src",
srcs = ["//:all-srcs"],
extension = "tar.gz",
package_dir = "kubernetes",
strip_prefix = "//",
symlinks = {
"kubernetes/vendor/%s" % repo: "../../staging/src/%s" % repo
for repo in staging_repos
},
tags = [
"manual",
"no-cache",
],
)
# Included in node and server tarballs.
pkg_tar(
name = "license-artifacts",
srcs = [
":kubernetes-src.tar.gz", # we want the tar file itself
],
mode = "0755",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
deps = [
"//:LICENSES", # we want to expand this
],
)
pkg_tar(
name = "_client-bin",
srcs = ["//build:client-targets"],
mode = "0755",
package_dir = "client/bin",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
[[pkg_tar(
name = "kubernetes-client-%s-%s" % (os, arch),
extension = "tar.gz",
package_dir = "kubernetes",
tags = [
"manual",
"no-cache",
],
deps = select({go_platform_constraint(os, arch): [":_client-bin"]}),
) for arch in archs] for os, archs in CLIENT_PLATFORMS.items()]
pkg_tar(
name = "_node-bin",
srcs = [
"//build:client-targets",
"//build:node-targets",
],
mode = "0755",
package_dir = "node/bin",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
[[pkg_tar(
name = "kubernetes-node-%s-%s" % (os, arch),
srcs = [],
extension = "tar.gz",
mode = "0644",
package_dir = "kubernetes",
tags = [
"manual",
"no-cache",
],
deps = select({go_platform_constraint(os, arch): [":_node-bin"]}) + [
":license-artifacts",
],
) for arch in archs] for os, archs in NODE_PLATFORMS.items()]
pkg_tar(
name = "_server-bin",
srcs = [
"//build:client-targets",
"//build:docker-artifacts",
"//build:node-targets",
"//build:server-targets",
],
mode = "0755",
package_dir = "server/bin",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
genrule(
name = "dummy",
outs = [".dummy"],
cmd = "touch $@",
visibility = ["//visibility:private"],
)
# Some of the startup scripts fail if there isn't an addons/ directory in the server tarball.
pkg_tar(
name = "_server-addons",
srcs = [
":.dummy",
],
package_dir = "addons",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
[[pkg_tar(
name = "kubernetes-server-%s-%s" % (os, arch),
srcs = [],
extension = "tar.gz",
mode = "0644",
package_dir = "kubernetes",
tags = [
"manual",
"no-cache",
],
deps = select({
go_platform_constraint(os, arch): [
":_server-addons",
":_server-bin",
],
}) + [
":license-artifacts",
],
) for arch in archs] for os, archs in SERVER_PLATFORMS.items()]
pkg_tar(
name = "kubernetes-test-portable",
srcs = ["//build:test-portable-targets"],
extension = "tar.gz",
package_dir = "kubernetes",
strip_prefix = "//",
tags = ["no-cache"],
)
pkg_tar(
name = "_test-bin",
srcs = ["//build:test-targets"],
mode = "0755",
package_dir = "test/bin",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
[[pkg_tar(
name = "kubernetes-test-%s-%s" % (os, arch),
extension = "tar.gz",
package_dir = "kubernetes",
strip_prefix = "//",
tags = [
"manual",
"no-cache",
],
deps = select({go_platform_constraint(os, arch): [":_test-bin"]}),
) for arch in archs] for os, archs in TEST_PLATFORMS.items()]
pkg_tar(
name = "_full_server",
srcs = [
":kubernetes-manifests.tar.gz",
],
package_dir = "server",
tags = [
"manual",
"no-cache",
],
visibility = ["//visibility:private"],
)
pkg_tar(
name = "kubernetes",
srcs = [
"//:README.md",
"//:version",
"//cluster:all-srcs",
"//docs:all-srcs",
"//hack/lib:all-srcs",
],
extension = "tar.gz",
package_dir = "kubernetes",
strip_prefix = "//",
symlinks = {
"kubernetes/cluster/gce/cos/": "gci",
"kubernetes/cluster/gce/custom/": "gci",
"kubernetes/cluster/gce/ubuntu/": "gci",
},
tags = ["no-cache"],
deps = [
":_full_server",
":license-artifacts",
],
)
pkg_tar(
name = "kubernetes-manifests",
extension = "tar.gz",
tags = ["no-cache"],
deps = [
"//cluster:manifests",
],
)