aboutsummaryrefslogtreecommitdiffstats
path: root/testing/kubernetes
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2017-01-12 16:26:46 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2017-01-12 16:27:09 +0000
commitf24402c59aee6fcdd4383258e544135f2c19039b (patch)
tree41c25b0ffdaf6fe6a932e399c393f6709855dc10 /testing/kubernetes
parentc91bba7beb3a5cb3204fa59656532a80def51c39 (diff)
downloadaports-f24402c59aee6fcdd4383258e544135f2c19039b.tar.bz2
aports-f24402c59aee6fcdd4383258e544135f2c19039b.tar.xz
testing/kubernetes: moved from unmaintained, fixed build, upgrade to 1.5.2
Diffstat (limited to 'testing/kubernetes')
-rw-r--r--testing/kubernetes/APKBUILD67
-rw-r--r--testing/kubernetes/build-with-debug-info.patch34
-rw-r--r--testing/kubernetes/fix-support-for-ppc64le.patch53
-rw-r--r--testing/kubernetes/get-rid-of-the-git-commands-in-mungedocs.patch25
-rw-r--r--testing/kubernetes/hyperkube-remove-federation-cmds.patch105
-rw-r--r--testing/kubernetes/make-e2e_node-run-over-distro-bins.patch51
-rw-r--r--testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch67
-rw-r--r--testing/kubernetes/no-gnu-grep.patch103
-rw-r--r--testing/kubernetes/remove-apiserver-add-kube-prefix-for-hyperkube.patch66
9 files changed, 571 insertions, 0 deletions
diff --git a/testing/kubernetes/APKBUILD b/testing/kubernetes/APKBUILD
new file mode 100644
index 0000000000..3a30c42d45
--- /dev/null
+++ b/testing/kubernetes/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=kubernetes
+pkgver=1.5.2
+pkgrel=0
+pkgdesc="Container Cluster Manager for Docker"
+url="http://kubernetes.io/"
+arch="x86_64"
+license="APACHE"
+options="!nostrip"
+depends="bash"
+makedepends="go rsync bash linux-headers findutils coreutils"
+subpackages=""
+source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
+no-gnu-grep.patch
+make-e2e_node-run-over-distro-bins.patch
+hyperkube-remove-federation-cmds.patch
+make-test-cmd-run-over-hyperkube-based-kubectl.patch
+build-with-debug-info.patch
+fix-support-for-ppc64le.patch
+remove-apiserver-add-kube-prefix-for-hyperkube.patch
+get-rid-of-the-git-commands-in-mungedocs.patch"
+
+builddir="$srcdir"/$pkgname-$pkgver
+
+build() {
+ cd "$builddir"
+ make -j1
+}
+
+package() {
+ cd "$builddir"
+ binaries="kube-dns kube-proxy kube-apiserver kube-controller-manager kubelet kubeadm kubemark hyperkube kube-scheduler kubectl kube-discovery kubefed"
+ for bin in $binaries; do
+ install -Dm755 _output/local/bin/linux/amd64/$bin "$pkgdir"/usr/bin/$bin
+ done
+
+ install -d $pkgdir/var/lib/kubelet
+}
+
+md5sums="b9562e55bef1aa6d74caf0ff95f7ba54 kubernetes-1.5.2.tar.gz
+165b04cecdd70c222258dd8526884147 no-gnu-grep.patch
+dce3f64c931ac4cfffcfebbc5e646dea make-e2e_node-run-over-distro-bins.patch
+f0c83d6bd2fce20fb4186f946aa37648 hyperkube-remove-federation-cmds.patch
+f034f2b3326e9bbeb2586c55ab4160bb make-test-cmd-run-over-hyperkube-based-kubectl.patch
+502d8fd704504ff929b51e3c44cd419a build-with-debug-info.patch
+84b9c2e8c56e0f566aff50ef4cebd4bc fix-support-for-ppc64le.patch
+a991e8fe6ba9998a02df69c11223ffa7 remove-apiserver-add-kube-prefix-for-hyperkube.patch
+cc96c27511272055e0bd422a57cf162b get-rid-of-the-git-commands-in-mungedocs.patch"
+sha256sums="e1c4050ff67d31a2a98d303785f52fbf5033c2f33b61d525a821fb82c8820eae kubernetes-1.5.2.tar.gz
+5ad044c88f1943896d1a4594d1d50658efc4e0a9af12feef2447627cabb50fb7 no-gnu-grep.patch
+5e90c80a47deb946fc21467aa053f96d4a67bd8bcdb7d1da3a74f2ffe9a5fa20 make-e2e_node-run-over-distro-bins.patch
+6dc932a8fd313119127ca095d88cd6a2da498d30e55c8bccad4aac7c39f1f4a1 hyperkube-remove-federation-cmds.patch
+ed1a00eef35b16a5595abd37fe3cb8f19ea0aafa3b8dfa196d0d306a6f8db406 make-test-cmd-run-over-hyperkube-based-kubectl.patch
+590cb72ff13332817985ef4d6c93adf7217e2f75c362088c3e17a702e760b428 build-with-debug-info.patch
+bf4f18d7c678718c5d557e4f9e0f80c8fb982a6f21291d95130e5766cd21aa46 fix-support-for-ppc64le.patch
+4480c266cff7ef01a3f12560c9f3aab4108da21415f0b0971272ab0f36cf79fa remove-apiserver-add-kube-prefix-for-hyperkube.patch
+7ea42197c1733c34e73f8b3fcff8fbf99201578b8ce98317002f8394c89a7cc3 get-rid-of-the-git-commands-in-mungedocs.patch"
+sha512sums="9c29767a356619cc6d4e49c37ab502706666e0857cad0695023b831d7a8d750169d9d7da55c35fbc109ad47466a1add7253196d816c96ca60468d5e41ca8876a kubernetes-1.5.2.tar.gz
+66f9cb208ed8074532f6013480560af44b49adca25b7e266772beaf148771af4e0d01dc42409ac81af3006036d90b822214d43fd1840d33a120dfcb0a9422a9b no-gnu-grep.patch
+93bf77d0b9321f895d6d778561a7d9a0df742201b4d361a3c9d43ef2c510ca20872853cab9d2bbb577f0cb7358a58c2ef6e6b371cdba0e7d5585501246150afe make-e2e_node-run-over-distro-bins.patch
+79059cdd54e5fd54b81c7d3836cc63b0546cce33929b4ce546f8b10918c362d7f4dcc9ca3fc6732d17625404dffe69b839412f20a99251021c204ac112441069 hyperkube-remove-federation-cmds.patch
+6d8a9c6197025744f97db7c643e2ca651678af967c35a018185bf066d8c31ac5cfedb8fd179fd86b95e538810bf68651cfb58113fdc067d0d6837d8d0ff1110c make-test-cmd-run-over-hyperkube-based-kubectl.patch
+9f1a86529893aca8a3c757bf61e7f0bd0c6c92ccc94f48ddc583374cf92d3961f4f98a3a6c2c87c29ebeaae04a95ccdd8435d1e1eebdd82eff9c0827e810fbe6 build-with-debug-info.patch
+641f8be76eb5fcfed96128e6f1ca8a35279b9cb5ce5375dfb62ce0e86e7c38cfae8e91cde0fec3fc61efd36470a046bf031c8e3ee644b8d1335336d7ebb48d75 fix-support-for-ppc64le.patch
+0b6128b290a7b0f4a2466e6b46102337a15a2c6c7fee80066ccd39a43cdcd8481399f4baec4004c93e33237227b5da5517d3504d0f58ad138c0f7e97c0eabc68 remove-apiserver-add-kube-prefix-for-hyperkube.patch
+1de56401931458d94143a6494cc1ec8fccd9ac551e9c065ca8ad5b0cfbba4f77d93b8e4a0c63ea71b31d94063401735e55e2b17bef7049793428a27d2b1283df get-rid-of-the-git-commands-in-mungedocs.patch"
diff --git a/testing/kubernetes/build-with-debug-info.patch b/testing/kubernetes/build-with-debug-info.patch
new file mode 100644
index 0000000000..866c640fd6
--- /dev/null
+++ b/testing/kubernetes/build-with-debug-info.patch
@@ -0,0 +1,34 @@
+From 7e07ff7120f2c5ed1030ed603f9bd2714c709ed6 Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Mon, 31 Oct 2016 09:02:37 +0100
+Subject: [PATCH] build with debug info
+
+---
+ hack/lib/golang.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
+index ccd6c0a..c29bf85 100755
+--- a/hack/lib/golang.sh
++++ b/hack/lib/golang.sh
+@@ -484,7 +484,7 @@ kube::golang::build_binaries_for_platform() {
+ CGO_ENABLED=0 go build -o "${outfile}" \
+ "${goflags[@]:+${goflags[@]}}" \
+ -gcflags "${gogcflags}" \
+- -ldflags "${goldflags}" \
++ -ldflags "-B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') ${goldflags}" \
+ "${binary}"
+ kube::log::progress "*"
+ done
+@@ -493,7 +493,7 @@ kube::golang::build_binaries_for_platform() {
+ go build -o "${outfile}" \
+ "${goflags[@]:+${goflags[@]}}" \
+ -gcflags "${gogcflags}" \
+- -ldflags "${goldflags}" \
++ -ldflags "-B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') ${goldflags}" \
+ "${binary}"
+ kube::log::progress "*"
+ done
+--
+1.9.3
+
diff --git a/testing/kubernetes/fix-support-for-ppc64le.patch b/testing/kubernetes/fix-support-for-ppc64le.patch
new file mode 100644
index 0000000000..820c44c030
--- /dev/null
+++ b/testing/kubernetes/fix-support-for-ppc64le.patch
@@ -0,0 +1,53 @@
+From 2bdaa87387d7d02afb52ccc0fee1f0f017ce5ecc Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Thu, 5 Jan 2017 12:21:39 +0100
+Subject: [PATCH] fix support for ppc64le
+
+---
+ src/k8s.io/kubernetes/Makefile | 2 +-
+ src/k8s.io/kubernetes/hack/lib/init.sh | 2 +-
+ src/k8s.io/kubernetes/hack/lib/util.sh | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index bce3533..e2f2bf9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -39,7 +39,7 @@ MAKEFLAGS += --no-builtin-rules
+ # Constants used throughout.
+ .EXPORT_ALL_VARIABLES:
+ OUT_DIR ?= _output
+-BIN_DIR := $(OUT_DIR)/bin
++BIN_DIR := $(OUT_DIR)/local/go/bin
+ PRJ_SRC_PATH := k8s.io/kubernetes
+ GENERATED_FILE_PREFIX := zz_generated.
+
+diff --git a/hack/lib/init.sh b/hack/lib/init.sh
+index 0a601ac..68029e2 100644
+--- a/hack/lib/init.sh
++++ b/hack/lib/init.sh
+@@ -42,7 +42,7 @@ source "${KUBE_ROOT}/hack/lib/version.sh"
+ source "${KUBE_ROOT}/hack/lib/golang.sh"
+ source "${KUBE_ROOT}/hack/lib/etcd.sh"
+
+-KUBE_OUTPUT_HOSTBIN="/usr/bin"
++KUBE_OUTPUT_HOSTBIN="${KUBE_OUTPUT_BINPATH}/go/bin"
+
+ # list of all available group versions. This should be used when generated code
+ # or when starting an API server that you want to have everything.
+diff --git a/hack/lib/util.sh b/hack/lib/util.sh
+index ada6e34..5911b65 100755
+--- a/hack/lib/util.sh
++++ b/hack/lib/util.sh
+@@ -168,7 +168,7 @@ kube::util::find-binary-for-platform() {
+ local -r lookfor="$1"
+ local -r platform="$2"
+ local -r locations=(
+- "${KUBE_ROOT}/_output/bin/${lookfor}"
++ "${KUBE_ROOT}/_output/local/go/bin/${lookfor}"
+ "${KUBE_ROOT}/_output/dockerized/bin/${platform}/${lookfor}"
+ "${KUBE_ROOT}/_output/local/bin/${platform}/${lookfor}"
+ "${KUBE_ROOT}/platforms/${platform}/${lookfor}"
+--
+2.7.4
+
diff --git a/testing/kubernetes/get-rid-of-the-git-commands-in-mungedocs.patch b/testing/kubernetes/get-rid-of-the-git-commands-in-mungedocs.patch
new file mode 100644
index 0000000000..e5542acd01
--- /dev/null
+++ b/testing/kubernetes/get-rid-of-the-git-commands-in-mungedocs.patch
@@ -0,0 +1,25 @@
+From d1e796b3e56b6f3237913cc6b57b6d5918bcac63 Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Thu, 5 Jan 2017 10:06:38 +0100
+Subject: [PATCH] get rid of the git commands in mungedocs
+
+---
+ src/k8s.io/kubernetes/hack/update-munge-docs.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hack/update-munge-docs.sh b/hack/update-munge-docs.sh
+index 4fa8d18..ec18685 100755
+--- a/hack/update-munge-docs.sh
++++ b/hack/update-munge-docs.sh
+@@ -21,7 +21,7 @@ set -o pipefail
+ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
+ source "${KUBE_ROOT}/hack/lib/init.sh"
+
+-git_upstream=$(kube::util::git_upstream_remote_name)
++git_upstream=origin
+ : ${git_upstream:="upstream"}
+
+ kube::golang::setup_env
+--
+2.7.4
+
diff --git a/testing/kubernetes/hyperkube-remove-federation-cmds.patch b/testing/kubernetes/hyperkube-remove-federation-cmds.patch
new file mode 100644
index 0000000000..8e3b6021df
--- /dev/null
+++ b/testing/kubernetes/hyperkube-remove-federation-cmds.patch
@@ -0,0 +1,105 @@
+diff --git a/cmd/hyperkube/federation-apiserver.go b/cmd/hyperkube/federation-apiserver.go
+deleted file mode 100644
+index 25c0f20..0000000
+--- a/cmd/hyperkube/federation-apiserver.go
++++ /dev/null
+@@ -1,38 +0,0 @@
+-/*
+-Copyright 2016 The Kubernetes Authors.
+-
+-Licensed under the Apache License, Version 2.0 (the "License");
+-you may not use this file except in compliance with the License.
+-You may obtain a copy of the License at
+-
+- http://www.apache.org/licenses/LICENSE-2.0
+-
+-Unless required by applicable law or agreed to in writing, software
+-distributed under the License is distributed on an "AS IS" BASIS,
+-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-See the License for the specific language governing permissions and
+-limitations under the License.
+-*/
+-
+-package main
+-
+-import (
+- "k8s.io/kubernetes/federation/cmd/federation-apiserver/app"
+- "k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options"
+-)
+-
+-// NewFederationAPIServer creates a new hyperkube Server object that includes the
+-// description and flags.
+-func NewFederationAPIServer() *Server {
+- s := options.NewServerRunOptions()
+-
+- hks := Server{
+- SimpleUsage: "federation-apiserver",
+- Long: "The API entrypoint for the federation control plane",
+- Run: func(_ *Server, args []string) error {
+- return app.Run(s)
+- },
+- }
+- s.AddFlags(hks.Flags())
+- return &hks
+-}
+diff --git a/cmd/hyperkube/federation-controller-manager.go b/cmd/hyperkube/federation-controller-manager.go
+deleted file mode 100644
+index e445f87..0000000
+--- a/cmd/hyperkube/federation-controller-manager.go
++++ /dev/null
+@@ -1,38 +0,0 @@
+-/*
+-Copyright 2016 The Kubernetes Authors.
+-
+-Licensed under the Apache License, Version 2.0 (the "License");
+-you may not use this file except in compliance with the License.
+-You may obtain a copy of the License at
+-
+- http://www.apache.org/licenses/LICENSE-2.0
+-
+-Unless required by applicable law or agreed to in writing, software
+-distributed under the License is distributed on an "AS IS" BASIS,
+-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-See the License for the specific language governing permissions and
+-limitations under the License.
+-*/
+-
+-package main
+-
+-import (
+- "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app"
+- "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options"
+-)
+-
+-// NewFederationCMServer creates a new hyperkube Server object that includes the
+-// description and flags.
+-func NewFederationCMServer() *Server {
+- s := options.NewCMServer()
+-
+- hks := Server{
+- SimpleUsage: "federation-controller-manager",
+- Long: "Controller manager for federation control plane. Manages federation service endpoints and controllers",
+- Run: func(_ *Server, args []string) error {
+- return app.Run(s)
+- },
+- }
+- s.AddFlags(hks.Flags())
+- return &hks
+-}
+diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go
+index 48dea32..24316df 100644
+--- a/cmd/hyperkube/main.go
++++ b/cmd/hyperkube/main.go
+@@ -40,9 +40,5 @@ func main() {
+ hk.AddServer(NewKubelet())
+ hk.AddServer(NewKubeProxy())
+
+- //Federation servers
+- hk.AddServer(NewFederationAPIServer())
+- hk.AddServer(NewFederationCMServer())
+-
+ hk.RunToExit(os.Args)
+ }
+--
+1.9.3
+
diff --git a/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch b/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch
new file mode 100644
index 0000000000..05d6d431b6
--- /dev/null
+++ b/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch
@@ -0,0 +1,51 @@
+From 43f9b66744362240332241788d9811f863366f4e Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Thu, 5 Jan 2017 10:01:34 +0100
+Subject: [PATCH] make e2e_node run over distro bins
+
+---
+ src/k8s.io/kubernetes/hack/lib/init.sh | 2 +-
+ src/k8s.io/kubernetes/hack/make-rules/test-e2e-node.sh | 2 +-
+ src/k8s.io/kubernetes/test/e2e_node/builder/build.go | 6 +++++-
+ src/k8s.io/kubernetes/test/e2e_node/services/services.go | 5 +++++
+ 4 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/hack/lib/init.sh b/hack/lib/init.sh
+index ae50779..0a601ac 100644
+--- a/hack/lib/init.sh
++++ b/hack/lib/init.sh
+@@ -42,7 +42,7 @@ source "${KUBE_ROOT}/hack/lib/version.sh"
+ source "${KUBE_ROOT}/hack/lib/golang.sh"
+ source "${KUBE_ROOT}/hack/lib/etcd.sh"
+
+-KUBE_OUTPUT_HOSTBIN="${KUBE_OUTPUT_BINPATH}/$(kube::util::host_platform)"
++KUBE_OUTPUT_HOSTBIN="/usr/bin"
+
+ # list of all available group versions. This should be used when generated code
+ # or when starting an API server that you want to have everything.
+diff --git a/hack/make-rules/test-e2e-node.sh b/hack/make-rules/test-e2e-node.sh
+index e98842d..3d51a06 100755
+--- a/hack/make-rules/test-e2e-node.sh
++++ b/hack/make-rules/test-e2e-node.sh
+@@ -148,6 +148,6 @@ else
+ # Provided for backwards compatibility
+ go run test/e2e_node/runner/local/run_local.go --ginkgo-flags="$ginkgoflags" \
+ --test-flags="--alsologtostderr --v 4 --report-dir=${artifacts} --node-name $(hostname) \
+- $test_args" --build-dependencies=true 2>&1 | tee -i "${artifacts}/build-log.txt"
++ $test_args --k8s-bin-dir /usr/bin" --build-dependencies=true 2>&1 | tee -i "${artifacts}/build-log.txt"
+ exit $?
+ fi
+diff --git a/test/e2e_node/builder/build.go b/test/e2e_node/builder/build.go
+index f22232a..c49c35f 100644
+--- a/test/e2e_node/builder/build.go
++++ b/test/e2e_node/builder/build.go
+@@ -31,7 +31,7 @@ import (
+ var k8sBinDir = flag.String("k8s-bin-dir", "", "Directory containing k8s kubelet binaries.")
+
+ var buildTargets = []string{
+- "cmd/kubelet",
++ //"cmd/kubelet",
+ "test/e2e_node/e2e_node.test",
+ "vendor/github.com/onsi/ginkgo/ginkgo",
+ }
+
diff --git a/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch b/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch
new file mode 100644
index 0000000000..30d4fdbf2e
--- /dev/null
+++ b/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch
@@ -0,0 +1,67 @@
+From 40fda813b0c33faa060f44dd2b078b8a8674b793 Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Mon, 14 Nov 2016 12:02:27 +0100
+Subject: [PATCH] make test-cmd run over hyperkube based kubectl
+
+---
+ src/k8s.io/kubernetes/hack/lib/test.sh | 3 ++-
+ src/k8s.io/kubernetes/hack/make-rules/test-cmd.sh | 14 +-------------
+ 2 files changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/hack/lib/test.sh b/hack/lib/test.sh
+index 00f7ceb..26d9d85 100644
+--- a/hack/lib/test.sh
++++ b/hack/lib/test.sh
+@@ -33,8 +33,9 @@ kube::test::get_object_assert() {
+ local request=$2
+ local expected=$3
+ local args=${4:-}
++ local get_args=${5:-}
+
+- res=$(eval kubectl ${args} get "${kube_flags[@]}" $object -o go-template=\"$request\")
++ res=$(eval kubectl ${args} get "${kube_flags[@]}" ${get_args} $object -o go-template=\"$request\")
+
+ if [[ "$res" =~ ^$expected$ ]]; then
+ echo -n ${green}
+diff --git a/hack/make-rules/test-cmd.sh b/hack/make-rules/test-cmd.sh
+index e77b06d..b1cc52e 100755
+--- a/hack/make-rules/test-cmd.sh
++++ b/hack/make-rules/test-cmd.sh
+@@ -147,13 +147,6 @@ function wait-for-pods-with-label()
+ kube::util::trap_add cleanup EXIT SIGINT
+ kube::util::ensure-temp-dir
+
+-BINS=(
+- cmd/kubectl
+- cmd/kube-apiserver
+- cmd/kube-controller-manager
+-)
+-make -C "${KUBE_ROOT}" WHAT="${BINS[*]}"
+-
+ kube::etcd::start
+
+ ETCD_HOST=${ETCD_HOST:-127.0.0.1}
+@@ -190,11 +183,6 @@ kube::log::status "Running kubectl with no options"
+ # Only run kubelet on platforms it supports
+ if [[ "$(go env GOHOSTOS)" == "linux" ]]; then
+
+-BINS=(
+- cmd/kubelet
+-)
+-make -C "${KUBE_ROOT}" WHAT="${BINS[*]}"
+-
+ kube::log::status "Starting kubelet in masterless mode"
+ "${KUBE_OUTPUT_HOSTBIN}/kubelet" \
+ --really-crash-for-testing=true \
+@@ -456,7 +444,7 @@ runTests() {
+ # Describe command should print events information when show-events=true
+ kube::test::describe_resource_events_assert pods true
+ ### Validate Export ###
+- kube::test::get_object_assert 'pods/valid-pod' "{{.metadata.namespace}} {{.metadata.name}}" '<no value> valid-pod' "--export=true"
++ kube::test::get_object_assert 'pods/valid-pod' "{{.metadata.namespace}} {{.metadata.name}}" '<no value> valid-pod' "" "--export=true"
+
+ ### Dump current valid-pod POD
+ output_pod=$(kubectl get pod valid-pod -o yaml --output-version=v1 "${kube_flags[@]}")
+--
+1.9.3
+
diff --git a/testing/kubernetes/no-gnu-grep.patch b/testing/kubernetes/no-gnu-grep.patch
new file mode 100644
index 0000000000..4c7d1991ba
--- /dev/null
+++ b/testing/kubernetes/no-gnu-grep.patch
@@ -0,0 +1,103 @@
+diff --git a/Makefile.generated_files b/Makefile.generated_files
+index 13a4bbb..a4ea832 100644
+--- a/Makefile.generated_files
++++ b/Makefile.generated_files
+@@ -156,7 +156,7 @@ $(foreach dir, $(ALL_GO_DIRS), $(eval \
+ # is what the .stamp file represents.
+ $(foreach dir, $(ALL_GO_DIRS), \
+ $(META_DIR)/$(dir)/$(GOFILES_META)):
+- FILES=$$(ls $</*.go | grep --color=never -v $(GENERATED_FILE_PREFIX)); \
++ FILES=$$(ls $</*.go | grep -v $(GENERATED_FILE_PREFIX)); \
+ mkdir -p $(@D); \
+ echo "gofiles__$< := $$(echo $${FILES})" >$@.tmp; \
+ cmp -s $@.tmp $@ || touch $@.stamp; \
+@@ -182,7 +182,7 @@ ifeq ($(DBG_MAKEFILE),1)
+ endif
+ ALL_K8S_TAG_FILES := $(shell \
+ find $(ALL_GO_DIRS) -maxdepth 1 -type f -name \*.go \
+- | xargs grep --color=never -l '^// *+k8s:' \
++ | xargs grep -l '^// *+k8s:' \
+ )
+
+ #
+@@ -209,7 +209,7 @@ ifeq ($(DBG_MAKEFILE),1)
+ $(warning ***** finding all +k8s:deepcopy-gen tags)
+ endif
+ DEEPCOPY_DIRS := $(shell \
+- grep --color=never -l '+k8s:deepcopy-gen=' $(ALL_K8S_TAG_FILES) \
++ grep -l '+k8s:deepcopy-gen=' $(ALL_K8S_TAG_FILES) \
+ | xargs -n1 dirname \
+ | LC_ALL=C sort -u \
+ )
+@@ -278,7 +278,7 @@ $(META_DIR)/$(DEEPCOPY_GEN).mk:
+ INDIRECT=$$(go list \
+ -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
+ ./cmd/libs/go2idl/deepcopy-gen \
+- | grep --color=never "^$(PRJ_SRC_PATH)" \
++ | grep "^$(PRJ_SRC_PATH)" \
+ | sed 's|^$(PRJ_SRC_PATH)|./|' \
+ | xargs go list -f '{{.Dir}} {{.Dir}}/*.go'); \
+ echo $$DIRECT $$INDIRECT \
+@@ -334,7 +334,7 @@ ifeq ($(DBG_MAKEFILE),1)
+ $(warning ***** finding all +k8s:defaulter-gen tags)
+ endif
+ DEFAULTER_DIRS := $(shell \
+- grep --color=never -l '+k8s:defaulter-gen=' $(ALL_K8S_TAG_FILES) \
++ grep -l '+k8s:defaulter-gen=' $(ALL_K8S_TAG_FILES) \
+ | xargs -n1 dirname \
+ | LC_ALL=C sort -u \
+ )
+@@ -429,7 +429,7 @@ $(META_DIR)/$(DEFAULTER_GEN).mk:
+ INDIRECT=$$(go list \
+ -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
+ ./cmd/libs/go2idl/defaulter-gen \
+- | grep --color=never "^$(PRJ_SRC_PATH)" \
++ | grep "^$(PRJ_SRC_PATH)" \
+ | sed 's|^$(PRJ_SRC_PATH)|./|' \
+ | xargs go list -f '{{.Dir}} {{.Dir}}/*.go'); \
+ echo $$DIRECT $$INDIRECT \
+@@ -475,7 +475,7 @@ ifeq ($(DBG_MAKEFILE),1)
+ $(warning ***** finding all +k8s:openapi-gen tags)
+ endif
+ OPENAPI_DIRS := $(shell \
+- grep --color=never -l '+k8s:openapi-gen=' $(ALL_K8S_TAG_FILES) \
++ grep -l '+k8s:openapi-gen=' $(ALL_K8S_TAG_FILES) \
+ | xargs -n1 dirname \
+ | LC_ALL=C sort -u \
+ )
+@@ -536,7 +536,7 @@ $(META_DIR)/$(OPENAPI_GEN).mk:
+ INDIRECT=$$(go list \
+ -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
+ ./cmd/libs/go2idl/openapi-gen \
+- | grep --color=never "^$(PRJ_SRC_PATH)" \
++ | grep "^$(PRJ_SRC_PATH)" \
+ | sed 's|^$(PRJ_SRC_PATH)|./|' \
+ | xargs go list -f '{{.Dir}} {{.Dir}}/*.go'); \
+ echo $$DIRECT $$INDIRECT \
+@@ -593,7 +593,7 @@ ifeq ($(DBG_MAKEFILE),1)
+ $(warning ***** finding all +k8s:conversion-gen tags)
+ endif
+ CONVERSION_DIRS := $(shell \
+- grep --color=never '^// *+k8s:conversion-gen=' $(ALL_K8S_TAG_FILES) \
++ grep '^// *+k8s:conversion-gen=' $(ALL_K8S_TAG_FILES) \
+ | cut -f1 -d: \
+ | xargs -n1 dirname \
+ | LC_ALL=C sort -u \
+@@ -651,7 +651,7 @@ $(foreach dir, $(CONVERSION_DIRS), $(eval \
+ # is what the .stamp file represents.
+ $(foreach dir, $(CONVERSION_DIRS), \
+ $(META_DIR)/$(dir)/$(CONVERSIONS_META)):
+- TAGS=$$(grep --color=never -h '^// *+k8s:conversion-gen=' $</*.go \
++ TAGS=$$(grep -h '^// *+k8s:conversion-gen=' $</*.go \
+ | cut -f2- -d= \
+ | sed 's|$(PRJ_SRC_PATH)/||'); \
+ mkdir -p $(@D); \
+@@ -731,7 +731,7 @@ $(META_DIR)/$(CONVERSION_GEN).mk:
+ INDIRECT=$$(go list \
+ -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
+ ./cmd/libs/go2idl/conversion-gen \
+- | grep --color=never "^$(PRJ_SRC_PATH)" \
++ | grep "^$(PRJ_SRC_PATH)" \
+ | sed 's|^$(PRJ_SRC_PATH)|./|' \
+ | xargs go list -f '{{.Dir}} {{.Dir}}/*.go'); \
+ echo $$DIRECT $$INDIRECT \
diff --git a/testing/kubernetes/remove-apiserver-add-kube-prefix-for-hyperkube.patch b/testing/kubernetes/remove-apiserver-add-kube-prefix-for-hyperkube.patch
new file mode 100644
index 0000000000..c498f0d8c0
--- /dev/null
+++ b/testing/kubernetes/remove-apiserver-add-kube-prefix-for-hyperkube.patch
@@ -0,0 +1,66 @@
+From f8748053d34c651230fbc317e25d74d404548c66 Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup@redhat.com>
+Date: Fri, 26 Feb 2016 16:17:24 +0100
+Subject: [PATCH] remove apiserver, add kube-prefix for hyperkube
+
+---
+ cmd/hyperkube/kube-controller-manager.go | 2 +-
+ cmd/hyperkube/kube-proxy.go | 2 +-
+ cmd/hyperkube/kube-scheduler.go | 2 +-
+ cmd/hyperkube/main.go | 1 -
+ 4 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/cmd/hyperkube/kube-controller-manager.go b/cmd/hyperkube/kube-controller-manager.go
+index 57d4856..1fc5107 100644
+--- a/cmd/hyperkube/kube-controller-manager.go
++++ b/cmd/hyperkube/kube-controller-manager.go
+@@ -29,7 +29,7 @@ func NewKubeControllerManager() *Server {
+ s := options.NewCMServer()
+
+ hks := Server{
+- SimpleUsage: "controller-manager",
++ SimpleUsage: "kube-controller-manager",
+ Long: "A server that runs a set of active components. This includes replication controllers, service endpoints and nodes.",
+ Run: func(_ *Server, args []string) error {
+ return app.Run(s)
+diff --git a/cmd/hyperkube/kube-proxy.go b/cmd/hyperkube/kube-proxy.go
+index 2f8678d..0a010d8 100644
+--- a/cmd/hyperkube/kube-proxy.go
++++ b/cmd/hyperkube/kube-proxy.go
+@@ -29,7 +29,7 @@ func NewKubeProxy() *Server {
+ config := options.NewProxyConfig()
+
+ hks := Server{
+- SimpleUsage: "proxy",
++ SimpleUsage: "kube-proxy",
+ Long: `The Kubernetes proxy server is responsible for taking traffic directed at
+ services and forwarding it to the appropriate pods. It generally runs on
+ nodes next to the Kubelet and proxies traffic from local pods to remote pods.
+diff --git a/cmd/hyperkube/kube-scheduler.go b/cmd/hyperkube/kube-scheduler.go
+index 799038d..4be08e1 100644
+--- a/cmd/hyperkube/kube-scheduler.go
++++ b/cmd/hyperkube/kube-scheduler.go
+@@ -29,7 +29,7 @@ func NewScheduler() *Server {
+ s := options.NewSchedulerServer()
+
+ hks := Server{
+- SimpleUsage: "scheduler",
++ SimpleUsage: "kube-scheduler",
+ Long: "Implements a Kubernetes scheduler. This will assign pods to kubelets based on capacity and constraints.",
+ Run: func(_ *Server, _ []string) error {
+ return app.Run(s)
+diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go
+index 4d9c499..8b060ba 100644
+--- a/cmd/hyperkube/main.go
++++ b/cmd/hyperkube/main.go
+@@ -32,7 +32,6 @@ func main() {
+ }
+
+ hk.AddServer(NewKubectlServer())
+- hk.AddServer(NewKubeAPIServer())
+ hk.AddServer(NewKubeControllerManager())
+ hk.AddServer(NewScheduler())
+ hk.AddServer(NewKubelet())
+--
+1.9.3
+