From 5a3a84968bbe9251c7138f33606218c391964961 Mon Sep 17 00:00:00 2001 From: "Madhusudan.C.S" Date: Mon, 25 Jul 2016 18:36:09 -0700 Subject: [PATCH] [Federation] Do not build separate binaries for federation control plane components, hyperkube should be sufficient. --- build/common.sh | 10 ---------- federation/cluster/common.sh | 7 ++++--- .../manifests/federation-apiserver-deployment.yaml | 3 ++- .../federation-controller-manager-deployment.yaml | 3 ++- hack/lib/golang.sh | 5 +---- hack/lib/util.sh | 5 +++++ 6 files changed, 14 insertions(+), 19 deletions(-) diff --git a/build/common.sh b/build/common.sh index b70bf1b6d8d..5407818b09d 100755 --- a/build/common.sh +++ b/build/common.sh @@ -97,8 +97,6 @@ kube::build::get_docker_wrapped_binaries() { kube-controller-manager,busybox kube-scheduler,busybox kube-proxy,gcr.io/google_containers/debian-iptables-amd64:v3 - federation-apiserver,busybox - federation-controller-manager,busybox );; "arm") local targets=( @@ -106,8 +104,6 @@ kube::build::get_docker_wrapped_binaries() { kube-controller-manager,armel/busybox kube-scheduler,armel/busybox kube-proxy,gcr.io/google_containers/debian-iptables-arm:v3 - federation-apiserver,armel/busybox - federation-controller-manager,armel/busybox );; "arm64") local targets=( @@ -115,8 +111,6 @@ kube::build::get_docker_wrapped_binaries() { kube-controller-manager,aarch64/busybox kube-scheduler,aarch64/busybox kube-proxy,gcr.io/google_containers/debian-iptables-arm64:v3 - federation-apiserver,aarch64/busybox - federation-controller-manager,aarch64/busybox );; "ppc64le") local targets=( @@ -124,8 +118,6 @@ kube::build::get_docker_wrapped_binaries() { kube-controller-manager,ppc64le/busybox kube-scheduler,ppc64le/busybox kube-proxy,gcr.io/google_containers/debian-iptables-ppc64le:v3 - federation-apiserver,ppc64le/busybox - federation-controller-manager,ppc64le/busybox );; esac @@ -1550,8 +1542,6 @@ function kube::release::docker::release() { "kube-scheduler" "kube-proxy" "hyperkube" - "federation-apiserver" - "federation-controller-manager" ) local docker_push_cmd=("${DOCKER[@]}") diff --git a/federation/cluster/common.sh b/federation/cluster/common.sh index e93fa9757f3..2f89bb17186 100644 --- a/federation/cluster/common.sh +++ b/federation/cluster/common.sh @@ -52,6 +52,7 @@ KUBE_PLATFORM=${KUBE_PLATFORM:-linux} KUBE_ARCH=${KUBE_ARCH:-amd64} KUBE_BUILD_STAGE=${KUBE_BUILD_STAGE:-release-stage} +source "${KUBE_ROOT}/build/common.sh" source "${KUBE_ROOT}/cluster/common.sh" source "${KUBE_ROOT}/hack/lib/util.sh" @@ -66,11 +67,11 @@ function create-federation-api-objects { ( : "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}" export FEDERATION_APISERVER_DEPLOYMENT_NAME="federation-apiserver" - export FEDERATION_APISERVER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-apiserver" + export FEDERATION_APISERVER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/hyperkube" 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_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-controller-manager" + export FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/hyperkube" 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 @@ -229,7 +230,7 @@ function create-federation-api-objects { # FEDERATION_IMAGE_TAG: push all federated images with this tag. Used for ci testing function push-federation-images { : "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}" - local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"federation-apiserver federation-controller-manager"} + local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"hyperkube"} local imageFolder="${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin" diff --git a/federation/manifests/federation-apiserver-deployment.yaml b/federation/manifests/federation-apiserver-deployment.yaml index 1b21dbb999b..7c86485a291 100644 --- a/federation/manifests/federation-apiserver-deployment.yaml +++ b/federation/manifests/federation-apiserver-deployment.yaml @@ -17,7 +17,8 @@ spec: - name: apiserver image: {{.FEDERATION_APISERVER_IMAGE_REPO}}:{{.FEDERATION_APISERVER_IMAGE_TAG}} command: - - /usr/local/bin/federation-apiserver + - /usr/local/bin/hyperkube + - federation-apiserver - --bind-address=0.0.0.0 - --etcd-servers=http://localhost:2379 - --service-cluster-ip-range={{.FEDERATION_SERVICE_CIDR}} diff --git a/federation/manifests/federation-controller-manager-deployment.yaml b/federation/manifests/federation-controller-manager-deployment.yaml index 85a50b34751..410936c0ce2 100644 --- a/federation/manifests/federation-controller-manager-deployment.yaml +++ b/federation/manifests/federation-controller-manager-deployment.yaml @@ -25,7 +25,8 @@ spec: mountPath: /etc/ssl/certs image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}} command: - - /usr/local/bin/federation-controller-manager + - /usr/local/bin/hyperkube + - federation-controller-manager - --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443 - --dns-provider={{.FEDERATION_DNS_PROVIDER}} - --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}} diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index f0397b5c542..2c6193f891b 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -37,8 +37,6 @@ kube::golang::server_targets() { cmd/kubelet cmd/kubemark cmd/hyperkube - federation/cmd/federation-apiserver - federation/cmd/federation-controller-manager plugin/cmd/kube-scheduler ) if [ -n "${KUBERNETES_CONTRIB:-}" ]; then @@ -169,8 +167,7 @@ readonly KUBE_STATIC_LIBRARIES=( kube-scheduler kube-proxy kubectl - federation-apiserver - federation-controller-manager + hyperkube ) kube::golang::is_statically_linked_library() { diff --git a/hack/lib/util.sh b/hack/lib/util.sh index cd6db72bfb5..c790c98a348 100755 --- a/hack/lib/util.sh +++ b/hack/lib/util.sh @@ -197,8 +197,13 @@ kube::util::gen-docs() { "${genkubedocs}" "${dest}/docs/admin/" "kube-proxy" "${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler" "${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-controller-manager" + mkdir -p "${dest}/docs/man/man1/" "${genman}" "${dest}/docs/man/man1/" mkdir -p "${dest}/docs/yaml/kubectl/"