mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Add a KUBERNETES_NODE_* section to build kubelet/kube-proxy for windows
This commit is contained in:
parent
9ba4a0effc
commit
ab0e245bc6
@ -85,6 +85,7 @@ function kube::release::package_tarballs() {
|
|||||||
mkdir -p "${RELEASE_DIR}"
|
mkdir -p "${RELEASE_DIR}"
|
||||||
kube::release::package_src_tarball &
|
kube::release::package_src_tarball &
|
||||||
kube::release::package_client_tarballs &
|
kube::release::package_client_tarballs &
|
||||||
|
kube::release::package_node_tarballs &
|
||||||
kube::release::package_server_tarballs &
|
kube::release::package_server_tarballs &
|
||||||
kube::release::package_salt_tarball &
|
kube::release::package_salt_tarball &
|
||||||
kube::release::package_kube_manifests_tarball &
|
kube::release::package_kube_manifests_tarball &
|
||||||
@ -148,6 +149,50 @@ function kube::release::package_client_tarballs() {
|
|||||||
kube::util::wait-for-jobs || { kube::log::error "client tarball creation failed"; exit 1; }
|
kube::util::wait-for-jobs || { kube::log::error "client tarball creation failed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Package up all of the node binaries
|
||||||
|
function kube::release::package_node_tarballs() {
|
||||||
|
local platform
|
||||||
|
for platform in "${KUBE_NODE_PLATFORMS[@]}"; do
|
||||||
|
local platform_tag=${platform/\//-} # Replace a "/" for a "-"
|
||||||
|
local arch=$(basename ${platform})
|
||||||
|
kube::log::status "Building tarball: node $platform_tag"
|
||||||
|
|
||||||
|
local release_stage="${RELEASE_STAGE}/node/${platform_tag}/kubernetes"
|
||||||
|
rm -rf "${release_stage}"
|
||||||
|
mkdir -p "${release_stage}/node/bin"
|
||||||
|
|
||||||
|
local node_bins=("${KUBE_NODE_BINARIES[@]}")
|
||||||
|
if [[ "${platform%/*}" == "windows" ]]; then
|
||||||
|
node_bins=("${KUBE_NODE_BINARIES_WIN[@]}")
|
||||||
|
fi
|
||||||
|
# This fancy expression will expand to prepend a path
|
||||||
|
# (${LOCAL_OUTPUT_BINPATH}/${platform}/) to every item in the
|
||||||
|
# KUBE_NODE_BINARIES array.
|
||||||
|
cp "${node_bins[@]/#/${LOCAL_OUTPUT_BINPATH}/${platform}/}" \
|
||||||
|
"${release_stage}/node/bin/"
|
||||||
|
|
||||||
|
# TODO: Docker images here
|
||||||
|
# kube::release::create_docker_images_for_server "${release_stage}/server/bin" "${arch}"
|
||||||
|
|
||||||
|
# Include the client binaries here too as they are useful debugging tools.
|
||||||
|
local client_bins=("${KUBE_CLIENT_BINARIES[@]}")
|
||||||
|
if [[ "${platform%/*}" == "windows" ]]; then
|
||||||
|
client_bins=("${KUBE_CLIENT_BINARIES_WIN[@]}")
|
||||||
|
fi
|
||||||
|
cp "${client_bins[@]/#/${LOCAL_OUTPUT_BINPATH}/${platform}/}" \
|
||||||
|
"${release_stage}/node/bin/"
|
||||||
|
|
||||||
|
cp "${KUBE_ROOT}/Godeps/LICENSES" "${release_stage}/"
|
||||||
|
|
||||||
|
cp "${RELEASE_DIR}/kubernetes-src.tar.gz" "${release_stage}/"
|
||||||
|
|
||||||
|
kube::release::clean_cruft
|
||||||
|
|
||||||
|
local package_name="${RELEASE_DIR}/kubernetes-node-${platform_tag}.tar.gz"
|
||||||
|
kube::release::create_tarball "${package_name}" "${release_stage}/.."
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Package up all of the server binaries
|
# Package up all of the server binaries
|
||||||
function kube::release::package_server_tarballs() {
|
function kube::release::package_server_tarballs() {
|
||||||
local platform
|
local platform
|
||||||
|
@ -39,8 +39,22 @@ kube::golang::server_targets() {
|
|||||||
readonly KUBE_SERVER_TARGETS=($(kube::golang::server_targets))
|
readonly KUBE_SERVER_TARGETS=($(kube::golang::server_targets))
|
||||||
readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}")
|
readonly KUBE_SERVER_BINARIES=("${KUBE_SERVER_TARGETS[@]##*/}")
|
||||||
|
|
||||||
|
# The set of server targets that we are only building for Kubernetes nodes
|
||||||
|
kube::golang::node_targets() {
|
||||||
|
local targets=(
|
||||||
|
cmd/kube-proxy
|
||||||
|
cmd/kubelet
|
||||||
|
)
|
||||||
|
echo "${targets[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
readonly KUBE_NODE_TARGETS=($(kube::golang::node_targets))
|
||||||
|
readonly KUBE_NODE_BINARIES=("${KUBE_NODE_TARGETS[@]##*/}")
|
||||||
|
readonly KUBE_NODE_BINARIES_WIN=("${KUBE_NODE_BINARIES[@]/%/.exe}")
|
||||||
|
|
||||||
if [[ "${KUBE_FASTBUILD:-}" == "true" ]]; then
|
if [[ "${KUBE_FASTBUILD:-}" == "true" ]]; then
|
||||||
readonly KUBE_SERVER_PLATFORMS=(linux/amd64)
|
readonly KUBE_SERVER_PLATFORMS=(linux/amd64)
|
||||||
|
readonly KUBE_NODE_PLATFORMS=(linux/amd64)
|
||||||
if [[ "${KUBE_BUILDER_OS:-}" == "darwin"* ]]; then
|
if [[ "${KUBE_BUILDER_OS:-}" == "darwin"* ]]; then
|
||||||
readonly KUBE_TEST_PLATFORMS=(
|
readonly KUBE_TEST_PLATFORMS=(
|
||||||
darwin/amd64
|
darwin/amd64
|
||||||
@ -68,6 +82,19 @@ else
|
|||||||
fi
|
fi
|
||||||
readonly KUBE_SERVER_PLATFORMS
|
readonly KUBE_SERVER_PLATFORMS
|
||||||
|
|
||||||
|
# The node platforms we build for
|
||||||
|
KUBE_NODE_PLATFORMS=(
|
||||||
|
linux/amd64
|
||||||
|
linux/arm
|
||||||
|
linux/arm64
|
||||||
|
linux/s390x
|
||||||
|
windows/amd64
|
||||||
|
)
|
||||||
|
if [[ "${KUBE_BUILD_PPC64LE:-}" =~ ^[yY]$ ]]; then
|
||||||
|
KUBE_NODE_PLATFORMS+=(linux/ppc64le)
|
||||||
|
fi
|
||||||
|
readonly KUBE_NODE_PLATFORMS
|
||||||
|
|
||||||
# If we update this we should also update the set of golang compilers we build
|
# If we update this we should also update the set of golang compilers we build
|
||||||
# in 'build/build-image/cross/Dockerfile'. However, it's only a bit faster since go 1.5, not mandatory
|
# in 'build/build-image/cross/Dockerfile'. However, it's only a bit faster since go 1.5, not mandatory
|
||||||
KUBE_CLIENT_PLATFORMS=(
|
KUBE_CLIENT_PLATFORMS=(
|
||||||
|
@ -29,6 +29,8 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
|
|||||||
|
|
||||||
make all WHAT="${KUBE_SERVER_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_SERVER_PLATFORMS[*]}"
|
make all WHAT="${KUBE_SERVER_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_SERVER_PLATFORMS[*]}"
|
||||||
|
|
||||||
|
make all WHAT="${KUBE_NODE_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_NODE_PLATFORMS[*]}"
|
||||||
|
|
||||||
make all WHAT="${KUBE_CLIENT_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_CLIENT_PLATFORMS[*]}"
|
make all WHAT="${KUBE_CLIENT_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_CLIENT_PLATFORMS[*]}"
|
||||||
|
|
||||||
make all WHAT="${KUBE_TEST_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_PLATFORMS[*]}"
|
make all WHAT="${KUBE_TEST_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_PLATFORMS[*]}"
|
||||||
|
Loading…
Reference in New Issue
Block a user