mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Revert "[Federation] Downsize the release binary distribution."
This commit is contained in:
parent
88172c4815
commit
31f5525f43
@ -97,6 +97,8 @@ kube::build::get_docker_wrapped_binaries() {
|
|||||||
kube-controller-manager,busybox
|
kube-controller-manager,busybox
|
||||||
kube-scheduler,busybox
|
kube-scheduler,busybox
|
||||||
kube-proxy,gcr.io/google_containers/debian-iptables-amd64:v3
|
kube-proxy,gcr.io/google_containers/debian-iptables-amd64:v3
|
||||||
|
federation-apiserver,busybox
|
||||||
|
federation-controller-manager,busybox
|
||||||
);;
|
);;
|
||||||
"arm")
|
"arm")
|
||||||
local targets=(
|
local targets=(
|
||||||
@ -104,6 +106,8 @@ kube::build::get_docker_wrapped_binaries() {
|
|||||||
kube-controller-manager,armel/busybox
|
kube-controller-manager,armel/busybox
|
||||||
kube-scheduler,armel/busybox
|
kube-scheduler,armel/busybox
|
||||||
kube-proxy,gcr.io/google_containers/debian-iptables-arm:v3
|
kube-proxy,gcr.io/google_containers/debian-iptables-arm:v3
|
||||||
|
federation-apiserver,armel/busybox
|
||||||
|
federation-controller-manager,armel/busybox
|
||||||
);;
|
);;
|
||||||
"arm64")
|
"arm64")
|
||||||
local targets=(
|
local targets=(
|
||||||
@ -111,6 +115,8 @@ kube::build::get_docker_wrapped_binaries() {
|
|||||||
kube-controller-manager,aarch64/busybox
|
kube-controller-manager,aarch64/busybox
|
||||||
kube-scheduler,aarch64/busybox
|
kube-scheduler,aarch64/busybox
|
||||||
kube-proxy,gcr.io/google_containers/debian-iptables-arm64:v3
|
kube-proxy,gcr.io/google_containers/debian-iptables-arm64:v3
|
||||||
|
federation-apiserver,aarch64/busybox
|
||||||
|
federation-controller-manager,aarch64/busybox
|
||||||
);;
|
);;
|
||||||
"ppc64le")
|
"ppc64le")
|
||||||
local targets=(
|
local targets=(
|
||||||
@ -118,6 +124,8 @@ kube::build::get_docker_wrapped_binaries() {
|
|||||||
kube-controller-manager,ppc64le/busybox
|
kube-controller-manager,ppc64le/busybox
|
||||||
kube-scheduler,ppc64le/busybox
|
kube-scheduler,ppc64le/busybox
|
||||||
kube-proxy,gcr.io/google_containers/debian-iptables-ppc64le:v3
|
kube-proxy,gcr.io/google_containers/debian-iptables-ppc64le:v3
|
||||||
|
federation-apiserver,ppc64le/busybox
|
||||||
|
federation-controller-manager,ppc64le/busybox
|
||||||
);;
|
);;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -1542,6 +1550,8 @@ function kube::release::docker::release() {
|
|||||||
"kube-scheduler"
|
"kube-scheduler"
|
||||||
"kube-proxy"
|
"kube-proxy"
|
||||||
"hyperkube"
|
"hyperkube"
|
||||||
|
"federation-apiserver"
|
||||||
|
"federation-controller-manager"
|
||||||
)
|
)
|
||||||
|
|
||||||
local docker_push_cmd=("${DOCKER[@]}")
|
local docker_push_cmd=("${DOCKER[@]}")
|
||||||
|
@ -52,7 +52,6 @@ KUBE_PLATFORM=${KUBE_PLATFORM:-linux}
|
|||||||
KUBE_ARCH=${KUBE_ARCH:-amd64}
|
KUBE_ARCH=${KUBE_ARCH:-amd64}
|
||||||
KUBE_BUILD_STAGE=${KUBE_BUILD_STAGE:-release-stage}
|
KUBE_BUILD_STAGE=${KUBE_BUILD_STAGE:-release-stage}
|
||||||
|
|
||||||
source "${KUBE_ROOT}/build/common.sh"
|
|
||||||
source "${KUBE_ROOT}/cluster/common.sh"
|
source "${KUBE_ROOT}/cluster/common.sh"
|
||||||
source "${KUBE_ROOT}/hack/lib/util.sh"
|
source "${KUBE_ROOT}/hack/lib/util.sh"
|
||||||
|
|
||||||
@ -67,11 +66,11 @@ function create-federation-api-objects {
|
|||||||
(
|
(
|
||||||
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
|
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
|
||||||
export FEDERATION_APISERVER_DEPLOYMENT_NAME="federation-apiserver"
|
export FEDERATION_APISERVER_DEPLOYMENT_NAME="federation-apiserver"
|
||||||
export FEDERATION_APISERVER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/hyperkube"
|
export FEDERATION_APISERVER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-apiserver"
|
||||||
export FEDERATION_APISERVER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-apiserver.docker_tag)}"
|
export FEDERATION_APISERVER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-apiserver.docker_tag)}"
|
||||||
|
|
||||||
export FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME="federation-controller-manager"
|
export FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME="federation-controller-manager"
|
||||||
export FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/hyperkube"
|
export FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-controller-manager"
|
||||||
export FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-controller-manager.docker_tag)}"
|
export FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-controller-manager.docker_tag)}"
|
||||||
|
|
||||||
if [[ -z "${FEDERATION_DNS_PROVIDER:-}" ]]; then
|
if [[ -z "${FEDERATION_DNS_PROVIDER:-}" ]]; then
|
||||||
@ -225,64 +224,58 @@ function create-federation-api-objects {
|
|||||||
|
|
||||||
# Required
|
# Required
|
||||||
# FEDERATION_PUSH_REPO_BASE: the docker repo where federated images will be pushed
|
# FEDERATION_PUSH_REPO_BASE: the docker repo where federated images will be pushed
|
||||||
# FEDERATION_IMAGE_TAG: the tag of the image to be pushed
|
|
||||||
|
# Optional
|
||||||
|
# FEDERATION_IMAGE_TAG: push all federated images with this tag. Used for ci testing
|
||||||
function push-federation-images {
|
function push-federation-images {
|
||||||
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
|
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
|
||||||
: "${FEDERATION_IMAGE_TAG?Must set FEDERATION_IMAGE_TAG env var}"
|
local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"federation-apiserver federation-controller-manager"}
|
||||||
local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"hyperkube"}
|
|
||||||
|
|
||||||
local bin_dir="${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin"
|
local imageFolder="${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin"
|
||||||
|
|
||||||
if [[ ! -d "${bin_dir}" ]];then
|
if [[ ! -d "$imageFolder" ]];then
|
||||||
echo "${bin_dir} does not exist! Run make quick-release or make release"
|
echo "${imageFolder} does not exist! Run make quick-release or make release"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for binary in ${FEDERATION_BINARIES}; do
|
for binary in $FEDERATION_BINARIES;do
|
||||||
local bin_path="${bin_dir}/${binary}"
|
local imageFile="${imageFolder}/${binary}.tar"
|
||||||
|
|
||||||
if [[ ! -f "${bin_path}" ]]; then
|
if [[ ! -f "$imageFile" ]];then
|
||||||
echo "${bin_path} does not exist!"
|
echo "${imageFile} does not exist!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local docker_build_path="${bin_path}.dockerbuild"
|
echo "Load: ${imageFile}"
|
||||||
local docker_file_path="${docker_build_path}/Dockerfile"
|
# Load the image. Trust we know what it's called, as docker load provides no help there :(
|
||||||
|
docker load < "${imageFile}"
|
||||||
|
|
||||||
rm -rf ${docker_build_path}
|
local srcImageTag="$(cat ${imageFolder}/${binary}.docker_tag)"
|
||||||
mkdir -p ${docker_build_path}
|
local dstImageTag="${FEDERATION_IMAGE_TAG:-$srcImageTag}"
|
||||||
|
local srcImageName="${FEDERATION_IMAGE_REPO_BASE}/${binary}:${srcImageTag}"
|
||||||
|
local dstImageName="${FEDERATION_PUSH_REPO_BASE}/${binary}:${dstImageTag}"
|
||||||
|
|
||||||
ln "${bin_path}" "${docker_build_path}/${binary}"
|
echo "Tag: ${srcImageName} --> ${dstImageName}"
|
||||||
printf " FROM busybox \n ADD ${binary} /usr/local/bin/${binary}\n" > ${docker_file_path}
|
docker tag -f "$srcImageName" "$dstImageName"
|
||||||
|
|
||||||
local docker_image_tag="${FEDERATION_PUSH_REPO_BASE}/${binary}:${FEDERATION_IMAGE_TAG}"
|
echo "Push: $dstImageName"
|
||||||
|
if [[ "${FEDERATION_PUSH_REPO_BASE}" == "gcr.io/"* ]];then
|
||||||
|
echo " -> GCR repository detected. Using gcloud"
|
||||||
|
gcloud docker push "$dstImageName"
|
||||||
|
else
|
||||||
|
docker push "$dstImageName"
|
||||||
|
fi
|
||||||
|
|
||||||
# Build the docker image on-the-fly.
|
echo "Remove: $srcImageName"
|
||||||
#
|
docker rmi "$srcImageName"
|
||||||
# NOTE: This is only a temporary fix until the proposal in issue
|
|
||||||
# https://github.com/kubernetes/kubernetes/issues/28630 is implemented.
|
|
||||||
# Also, the new turn up mechanism completely obviates this step.
|
|
||||||
#
|
|
||||||
# TODO(madhusudancs): Remove this code when the new turn up mechanism work
|
|
||||||
# is merged.
|
|
||||||
kube::log::status "Building docker image ${docker_image_tag} from the binary"
|
|
||||||
docker build -q -t "${docker_image_tag}" ${docker_build_path} >/dev/null
|
|
||||||
|
|
||||||
rm -rf ${docker_build_path}
|
if [[ "$srcImageName" != "dstImageName" ]];then
|
||||||
|
echo "Remove: $dstImageName"
|
||||||
|
docker rmi "$dstImageName"
|
||||||
|
fi
|
||||||
|
|
||||||
kube::log::status "Pushing ${docker_image_tag}"
|
|
||||||
if [[ "${FEDERATION_PUSH_REPO_BASE}" == "gcr.io/"* ]]; then
|
|
||||||
echo " -> GCR repository detected. Using gcloud"
|
|
||||||
gcloud docker push "${docker_image_tag}"
|
|
||||||
else
|
|
||||||
docker push "${docker_image_tag}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
kube::log::status "Deleting docker image ${docker_image_tag}"
|
|
||||||
docker rmi "${docker_image_tag}" 2>/dev/null || true
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup-federation-api-objects {
|
function cleanup-federation-api-objects {
|
||||||
# Delete all resources with the federated-cluster label.
|
# Delete all resources with the federated-cluster label.
|
||||||
$host_kubectl delete pods,svc,rc,deployment,secret -lapp=federated-cluster
|
$host_kubectl delete pods,svc,rc,deployment,secret -lapp=federated-cluster
|
||||||
|
@ -17,8 +17,7 @@ spec:
|
|||||||
- name: apiserver
|
- name: apiserver
|
||||||
image: {{.FEDERATION_APISERVER_IMAGE_REPO}}:{{.FEDERATION_APISERVER_IMAGE_TAG}}
|
image: {{.FEDERATION_APISERVER_IMAGE_REPO}}:{{.FEDERATION_APISERVER_IMAGE_TAG}}
|
||||||
command:
|
command:
|
||||||
- /usr/local/bin/hyperkube
|
- /usr/local/bin/federation-apiserver
|
||||||
- federation-apiserver
|
|
||||||
- --bind-address=0.0.0.0
|
- --bind-address=0.0.0.0
|
||||||
- --etcd-servers=http://localhost:2379
|
- --etcd-servers=http://localhost:2379
|
||||||
- --service-cluster-ip-range={{.FEDERATION_SERVICE_CIDR}}
|
- --service-cluster-ip-range={{.FEDERATION_SERVICE_CIDR}}
|
||||||
|
@ -25,8 +25,7 @@ spec:
|
|||||||
mountPath: /etc/ssl/certs
|
mountPath: /etc/ssl/certs
|
||||||
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
|
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
|
||||||
command:
|
command:
|
||||||
- /usr/local/bin/hyperkube
|
- /usr/local/bin/federation-controller-manager
|
||||||
- federation-controller-manager
|
|
||||||
- --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
|
- --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
|
||||||
- --dns-provider={{.FEDERATION_DNS_PROVIDER}}
|
- --dns-provider={{.FEDERATION_DNS_PROVIDER}}
|
||||||
- --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}}
|
- --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}}
|
||||||
|
@ -37,6 +37,8 @@ kube::golang::server_targets() {
|
|||||||
cmd/kubelet
|
cmd/kubelet
|
||||||
cmd/kubemark
|
cmd/kubemark
|
||||||
cmd/hyperkube
|
cmd/hyperkube
|
||||||
|
federation/cmd/federation-apiserver
|
||||||
|
federation/cmd/federation-controller-manager
|
||||||
plugin/cmd/kube-scheduler
|
plugin/cmd/kube-scheduler
|
||||||
)
|
)
|
||||||
if [ -n "${KUBERNETES_CONTRIB:-}" ]; then
|
if [ -n "${KUBERNETES_CONTRIB:-}" ]; then
|
||||||
@ -167,7 +169,8 @@ readonly KUBE_STATIC_LIBRARIES=(
|
|||||||
kube-scheduler
|
kube-scheduler
|
||||||
kube-proxy
|
kube-proxy
|
||||||
kubectl
|
kubectl
|
||||||
hyperkube
|
federation-apiserver
|
||||||
|
federation-controller-manager
|
||||||
)
|
)
|
||||||
|
|
||||||
kube::golang::is_statically_linked_library() {
|
kube::golang::is_statically_linked_library() {
|
||||||
|
@ -197,13 +197,8 @@ kube::util::gen-docs() {
|
|||||||
"${genkubedocs}" "${dest}/docs/admin/" "kube-proxy"
|
"${genkubedocs}" "${dest}/docs/admin/" "kube-proxy"
|
||||||
"${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler"
|
"${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler"
|
||||||
"${genkubedocs}" "${dest}/docs/admin/" "kubelet"
|
"${genkubedocs}" "${dest}/docs/admin/" "kubelet"
|
||||||
|
|
||||||
# We don't really need federation-apiserver and federation-controller-manager
|
|
||||||
# binaries to generate the docs. We just pass their names to decide which docs
|
|
||||||
# to generate. The actual binary for running federation is hyperkube.
|
|
||||||
"${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver"
|
"${genfeddocs}" "${dest}/docs/admin/" "federation-apiserver"
|
||||||
"${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager"
|
"${genfeddocs}" "${dest}/docs/admin/" "federation-controller-manager"
|
||||||
|
|
||||||
mkdir -p "${dest}/docs/man/man1/"
|
mkdir -p "${dest}/docs/man/man1/"
|
||||||
"${genman}" "${dest}/docs/man/man1/"
|
"${genman}" "${dest}/docs/man/man1/"
|
||||||
mkdir -p "${dest}/docs/yaml/kubectl/"
|
mkdir -p "${dest}/docs/yaml/kubectl/"
|
||||||
|
Loading…
Reference in New Issue
Block a user