
This is the 2nd attempt. The previous was reverted while we figured out the regional mirrors (oops). New plan: k8s.gcr.io is a read-only facade that auto-detects your source region (us, eu, or asia for now) and pulls from the closest. To publish an image, push k8s-staging.gcr.io and it will be synced to the regionals automatically (similar to today). For now the staging is an alias to gcr.io/google_containers (the legacy URL). When we move off of google-owned projects (working on it), then we just do a one-time sync, and change the google-internal config, and nobody outside should notice. We can, in parallel, change the auto-sync into a manual sync - send a PR to "promote" something from staging, and a bot activates it. Nice and visible, easy to keep track of.
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build", "docker_bundle")
|
|
|
|
docker_build(
|
|
name = "hyperkube-internal",
|
|
base = "@debian-hyperkube-base-amd64//image",
|
|
files = [
|
|
"//cmd/hyperkube",
|
|
],
|
|
symlinks = {
|
|
"/%s" % path: "/hyperkube"
|
|
for path in [
|
|
"/apiserver",
|
|
"/controller-manager",
|
|
"/kubectl",
|
|
"/kubelet",
|
|
"/proxy",
|
|
"/scheduler",
|
|
"/usr/local/bin/kube-apiserver",
|
|
"/usr/local/bin/kube-controller-manager",
|
|
"/usr/local/bin/kubectl",
|
|
"/usr/local/bin/kubelet",
|
|
"/usr/local/bin/kube-proxy",
|
|
"/usr/local/bin/kube-scheduler",
|
|
]
|
|
},
|
|
)
|
|
|
|
docker_bundle(
|
|
name = "hyperkube",
|
|
images = {"k8s.gcr.io/hyperkube-amd64:{STABLE_DOCKER_TAG}": "hyperkube-internal"},
|
|
stamp = True,
|
|
)
|
|
|
|
filegroup(
|
|
name = "package-srcs",
|
|
srcs = glob(["**"]),
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "all-srcs",
|
|
srcs = [":package-srcs"],
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:public"],
|
|
)
|