Commit Graph

191 Commits (47ee746fcc71fb86c64c9bc6221e475e98ee0139)

Author SHA1 Message Date
Daniel Smith 97ebc1aad9 improve output of kube_get_url 2015-06-09 15:26:09 -07:00
Daniel Smith 6e95388672 allow kubectl to be built statically
* Package kubectl in a container
* Add example with a pod using kubectl as a sidecar
2015-06-03 15:41:09 -07:00
Filip Grzadkowski 98115facfd Revert "Gracefully delete pods from the Kubelet" 2015-06-02 23:40:05 +02:00
Clayton Coleman 984692d205 Verify in hack/test-cmd 2015-06-01 19:24:01 -04:00
Tim Hockin a3d5367156 Merge pull request #8765 from eparis/hack-test-failure
Fix build with --use_go_build (e2e.test failure)
2015-05-27 12:43:04 -07:00
Wojciech Tyczynski b2280db724 Deep-copy functions autogeneration. 2015-05-26 21:16:26 +02:00
Eric Paris d8187e26d3 Fix build with --use_go_build (e2e.test failure)
hack/build-go.sh --use_go_build would fail because e2e.test was not being
excluded from the set of things that we were "go build"ing

Instead of walking all binaries, only walk static and nonstatic
```
$ hack/build-go.sh
+++ [0524 18:09:51] Building go targets for linux/amd64:
    cmd/kube-proxy
    cmd/kube-apiserver
    cmd/kube-controller-manager
    cmd/kubelet
    cmd/hyperkube
    cmd/kubernetes
    plugin/cmd/kube-scheduler
    cmd/kubectl
    cmd/integration
    cmd/gendocs
    cmd/genman
    cmd/genbashcomp
    examples/k8petstore/web-server
    github.com/onsi/ginkgo/ginkgo
    test/e2e/e2e.test
+++ [0524 18:09:51] +++ Warning: stdlib pkg with cgo flag not found.
+++ [0524 18:09:51] +++ Warning: stdlib pkg cannot be rebuilt since /usr/lib/golang/pkg is not writable by eparis
+++ [0524 18:09:51] +++ Warning: Make /usr/lib/golang/pkg writable for eparis for a one-time stdlib install, Or
+++ [0524 18:09:51] +++ Warning: Rebuild stdlib using the command 'CGO_ENABLED=0 go install -a -installsuffix cgo std'
+++ [0524 18:09:51] +++ Falling back to go build, which is slower
    **************can't load package: package github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test: cannot find package "github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test" in any of:
    /usr/lib/golang/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test (from $GOROOT)
    /storage/kubernetes/_output/local/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test (from $GOPATH)
    /storage/kubernetes/Godeps/_workspace/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test
!!! Error in /storage/kubernetes/hack/lib/golang.sh:339
  'go build -o "${outfile}" "${goflags[@]:+${goflags[@]}}" -ldflags "${version_ldflags}" "${binary}"' exited with status 1
Call stack:
  1: /storage/kubernetes/hack/lib/golang.sh:339 kube::golang::build_binaries_for_platform(...)
  2: /storage/kubernetes/hack/lib/golang.sh:488 kube::golang::build_binaries(...)
  3: hack/build-go.sh:26 main(...)
Exiting with status 1
!!! Error in /storage/kubernetes/hack/lib/golang.sh:406
  '( kube::golang::setup_env; local version_ldflags; version_ldflags=$(kube::version::ldflags); local host_platform; host_platform=$(kube::golang::host_platform); local goflags; eval "goflags=(${KUBE_GOFLAGS:-})"; local use_go_build; local -a targets=(); local arg; for arg in "$@";
do
    if [[ "${arg}" == "--use_go_build" ]]; then
        use_go_build=true;
    else
        if [[ "${arg}" == -* ]]; then
            goflags+=("${arg}");
        else
            targets+=("${arg}");
        fi;
    fi;
done; if [[ ${#targets[@]} -eq 0 ]]; then
    targets=("${KUBE_ALL_TARGETS[@]}");
fi; local -a platforms=("${KUBE_BUILD_PLATFORMS[@]:+${KUBE_BUILD_PLATFORMS[@]}}"); if [[ ${#platforms[@]} -eq 0 ]]; then
    platforms=("${host_platform}");
fi; local binaries; binaries=($(kube::golang::binaries_from_targets "${targets[@]}")); local parallel=false; if [[ ${#platforms[@]} -gt 1 ]]; then
    local gigs; gigs=$(kube::golang::get_physmem); if [[ ${gigs} -gt ${KUBE_PARALLEL_BUILD_MEMORY} ]]; then
        kube::log::status "Multiple platforms requested and available ${gigs}G > threshold ${KUBE_PARALLEL_BUILD_MEMORY}G, building platforms in parallel"; parallel=true;
    else
        kube::log::status "Multiple platforms requested, but available ${gigs}G < threshold ${KUBE_PARALLEL_BUILD_MEMORY}G, building platforms in serial"; parallel=false;
    fi;
fi; if [[ "${parallel}" == "true" ]]; then
    kube::log::status "Building go targets for ${platforms[@]} in parallel (output will appear in a burst when complete):" "${targets[@]}"; local platform; for platform in "${platforms[@]}";
    do
        ( kube::golang::set_platform_envs "${platform}"; kube::log::status "${platform}: go build started"; kube::golang::build_binaries_for_platform ${platform} ${use_go_build:-}; kube::log::status "${platform}: go build finished" ) &> "/tmp//${platform//\//_}.build" &
    done; local fails=0; for job in $(jobs -p);
    do
        wait ${job} || let "fails+=1";
    done; for platform in "${platforms[@]}";
    do
        cat "/tmp//${platform//\//_}.build";
    done; exit ${fails};
else
    for platform in "${platforms[@]}";
    do
        kube::log::status "Building go targets for ${platform}:" "${targets[@]}"; kube::golang::set_platform_envs "${platform}"; kube::golang::build_binaries_for_platform ${platform} ${use_go_build:-};
    done;
fi )' exited with status 1
Call stack:
  1: /storage/kubernetes/hack/lib/golang.sh:406 kube::golang::build_binaries(...)
  2: hack/build-go.sh:26 main(...)
Exiting with status 1
```
2015-05-24 19:16:26 -04:00
Tim Hockin 76a0a7dff2 Shush minor stdout noise on builds 2015-05-19 11:24:44 -07:00
Jeff Grafton 90f61f3005 Change into the output directory before running go test -c. 2015-05-19 10:04:27 -07:00
Jeff Grafton bf1de72f4a Revert "Revert "Use native Ginkgo test runner instead of cmd/e2e (attempt N)""
This reverts commit f4bb6aa37d.
2015-05-19 09:13:08 -07:00
Quinton Hoole f4bb6aa37d Revert "Use native Ginkgo test runner instead of cmd/e2e (attempt N)" 2015-05-18 21:04:26 -07:00
Jeff Grafton 35c4b92e92 Make e2e compatible with Go 1.3 and OS X.
Go 1.4 added the -o flag to the "go test" command as well as support for
the TestMain() function, so we must work around these not existing in
Go 1.3.

The version of readlink on OS X does not have the -f flag - so we'll
just skip canonicalizing the path.
2015-05-18 12:11:33 -07:00
Jeff Grafton b79fae5d71 Revert "Revert "Once again, use native Ginkgo test runner instead of cmd/e2e.""
This reverts commit 67da1ac0c8.
2015-05-18 11:39:21 -07:00
Jeff Lowdermilk 553f9f822b Add ga-beacon analytics to gendocs scripts
hack/run-gendocs.sh puts ga-beacon analytics link into all md files,
hack/verify-gendocs.sh verifies presence of link.
2015-05-15 18:56:38 -07:00
Jeff Grafton 67da1ac0c8 Revert "Once again, use native Ginkgo test runner instead of cmd/e2e."
This change broke compilation on go 1.3 and running e2e tests on OS X.

This reverts commit 86b023fdd6.
2015-05-15 16:41:55 -07:00
Jeff Grafton 86b023fdd6 Once again, use native Ginkgo test runner instead of cmd/e2e.
This commit deletes cmd/e2e and updates hack/ginkgo-e2e.sh to use the
'ginkgo' command instead. All logic from cmd/e2e/e2e.go and
test/e2e/driver.go have been combined into the new file
test/e2e/e2e_test.go.

The test tarball now includes a built version of the test/e2e test
binary, which includes all tests under test/e2e. This was accomplished
by updating the build scripts to use 'go test -c' when a target name
ended with '.test', and adding a dependency on test/e2e/e2e.test.

This prebuilt test binary is passed to the Ginkgo runner in
hack/ginkgo-e2e.sh. In a future change, we can add support to run
Ginkgo against the source tree if it is available.

This change is generally intended to have no externally visible changes,
aside from the following caveats:
 - The -t/--tests flag has been removed
 - Calling cmd/e2e/e2e directly obviously won't work, but that was never
   intended to be supported anyway
 - If the GINKGO_PARALLEL environment variable is set to y, then ginkgo
   will run test specs in parallel. (Currently defaults to n, since some
   tests are broken in this mode.)

Additionally, several tests which made poor assumptions about cwd or
used testContext before it had been set have been fixed.
2015-05-15 11:54:53 -07:00
Tim Hockin 8e7970f2a1 mkdir -p in doc generation 2015-05-13 12:50:25 -07:00
Kenjiro Nakayama 4c9f2d89ba Add genbashcomp to KUBE_TEST_TARGETS 2015-05-05 16:42:23 +09:00
Wojciech Tyczynski a7205b1fe9 Merge pull request #7685 from jayunit100/etcd-minor
(minor) Add pgrep debugging to etcd error
2015-05-04 11:21:02 +02:00
jayunit100 cdf068495a (minor) Add pgrep debugging to etcd error 2015-05-03 16:59:45 +00:00
Eric Paris 6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Jeff Grafton 1359125a4e Build github.com/onsi/ginkgo/ginkgo as a part of the release.
Additionally, add hack/lib to the testing tarball.
2015-05-01 11:29:11 -07:00
Quinton Hoole bfaf976df7 Revert "Use native Ginkgo test runner instead of cmd/e2e" 2015-04-30 13:45:46 -07:00
Jeff Grafton 57750ccb51 Use native Ginkgo test runner instead of cmd/e2e.
This commit deletes cmd/e2e and updates hack/ginkgo-e2e.sh to use the
'ginkgo' command instead. All logic from cmd/e2e/e2e.go and
test/e2e/driver.go have been combined into the new file
test/e2e/e2e_test.go.

Additionally, several tests which made poor assumptions about cwd or
used testContext before it was set have been fixed.

This change is generally intended to have no externally visible changes,
aside from the following caveats:
- The -t/--tests flag has been removed
- Calling cmd/e2e/e2e directly obviously won't work, but that was never
  supported anyway
- If the GINKGO_PARALLEL environment variable is set to y, then ginkgo
  will run test specs in parallel. (Currently defaults to n, since some
  tests are broken in this mode.)
2015-04-28 18:42:37 -07:00
Alex Robinson 79b9b1b0ef Build hyperkube into a static binary. 2015-04-28 02:13:09 +00:00
Jeff Lowdermilk a8e2f6e9c8 Add examples for kubectl describe, and make gendocs less spammy
Makes hack/{run/verify}-gendocs.sh ignore generated-timestamp-only
changes so minor changes to kubectl don't have to touch the entire
set of md docs.
2015-04-23 14:53:10 -07:00
Eric Paris 2915c90200 Remove -installsuffix from go build
This is a go install argument which has no use in go build. Clean it up.
2015-04-17 15:33:00 -04:00
Eric Paris d7fefb6f39 Indicate progress when doing a go build
It is slow.
2015-04-17 15:32:26 -04:00
Eric Paris 5fb8602c65 fall back to go build when static cgo not possible
Instead of just failing, use go build if people don't have the magic cgo
stuff we need build-able/write-able.
2015-04-17 09:50:54 -04:00
Xiang Li 5466dd8138 hack: reliable sort in util.sh 2015-04-14 12:52:28 -07:00
Eric Paris 26149bd83d Doc generation should remove old doc files
Right now, our doc generation scripts notice if you make changes and
don't regen docs, don't include new docs, etc.  But they miss it if your
changes should have REMOVED a doc.  Both kubectl-apiversion and
kubectl-clusterinfo should have been removed, but weren't.

This patch starts tracking all generated doc files and will cause
problems if files should be removed and aren't.
2015-04-13 17:48:24 -04:00
Eric Paris d7a89117b7 Use a helper to find built binaries
Instead of doing it all outselves....
2015-04-13 15:27:55 -04:00
Rohit Jnagal 8b4914dd0f Merge pull request #6472 from zmerlynn/fix_build_status
Add kube::util::wait-for-jobs to report status, unlike builtin wait
2015-04-06 13:39:58 -07:00
Zach Loafman 2bc5dd559a Add kube::util::wait-for-jobs to report status, unlike builtin wait
** Sigh **

Fixes an additional complaint in #6463
2015-04-06 11:11:49 -07:00
Young 802610b13a etcd should be started after the trap func set 2015-04-05 03:41:26 -04:00
Zach Loafman c0ed73a10d Only build in parallel if the build machine is >8G 2015-04-02 17:56:45 -07:00
Zach Loafman e159c02a2a Completely neutral commit that just factors each platform build out to
a function (to make it kinder on reviewers for the next piece).
2015-04-02 17:56:44 -07:00
Zach Loafman 04813f0dcd Revert "Revert "Parallelize architectures in both the building and packaging phases of `make release`""
This reverts commit 9f60dde320.
2015-04-02 17:56:44 -07:00
Zach Loafman 9f60dde320 Revert "Parallelize architectures in both the building and packaging phases of `make release`" 2015-04-02 08:49:11 -07:00
Zach Loafman 0bbf4e99f6 Re tab-ify golang.sh 2015-04-01 17:31:15 -07:00
Zach Loafman 44b4c9ff26 Parallelize architectures in "make release"
On my desktop, this took the KUBE_RELEASE_RUN_TESTS=n
"make release" down from 172s to 115s
2015-04-01 17:29:22 -07:00
Tim Hockin 005da75f4a Make the build faster - call 'go install' once 2015-04-01 10:10:27 -07:00
Paul Morie fdae6748d2 Fix typo in std install instructions for build 2015-03-31 17:36:47 -04:00
Brian Grant 3354cffbf0 Merge pull request #6182 from thockin/plural_services_20
Implement multi-port Services
2015-03-31 12:55:21 -07:00
Abhishek Shah 745368d6b2 Nicer error msg if stdlib pkg with cgo flag is not installed 2015-03-31 08:37:33 -07:00
Tim Hockin eeff1b74fb Fixes from feedback and testing 2015-03-30 23:52:37 -07:00
Clayton Coleman 1618c39a46 Convert List query parameters via object conversion
Convert url.Values -> an object, with appropriate versioning. ListOptions
should also expose parameter names to swagger.
2015-03-27 15:03:57 -04:00
Jeff Grafton 46e8c08fe8 Update kube::log::{error,status} to include timestamp.
Additionally, make the build scripts call these rather than calling
'echo' directly.
2015-03-25 16:02:48 -07:00
Filip Grzadkowski aa9e25f293 Wait for etcd shutdown in integration tests 2015-03-25 17:01:04 +01:00
Abhishek Shah 9a901ed46d build kube-apiserver, kube-scheduler and kube-controller-manager statically. 2015-03-17 16:03:31 -07:00
Brendan Burns 60b2b5d5b4 Merge pull request #5447 from jayunit100/k8petstore
K8petstore
2015-03-17 07:28:30 -07:00
Jeff Lowdermilk 404b20e6b8 Add dependencies for k8petstore to Godeps
Cleanup k8petstore to use Godeps dependencies, add to hack/build-go.sh
Remove trailing spaces, README
2015-03-17 07:06:01 -04:00
Victor Marmol d7a7d4da08 Revert #5479, don't force no cgo.
We allow cgo when available since some of our server components (mainly
Kubelet) rely on it. The current driving factor for the static binaries
was building Docker images from scratch. We will instead use images
built from small busybox bases.

Fixes #5517
2015-03-16 16:03:46 -07:00
Tim Hockin dab2d1a14b Merge pull request #5420 from vmarmol/cross
Make "kubernetes" a server binary.
2015-03-16 14:29:51 -07:00
Abhishek Shah 4b24aa2d7f Build statically linked binaryies. With the change to go 1.4, we probably were generating dynamically linked binaries accidentally. 2015-03-13 23:33:10 -07:00
Victor Marmol adbc8e2f9c Make "kubernetes" a server binary.
It includes many of the server components which we only expect to be
able to build in the server target architectures, but it is included in
the client build targets.
2015-03-12 17:37:56 -07:00
Deyuan Deng 58776da6a4 Add more information to node describe 2015-03-09 18:56:59 -04:00
Salvatore Dario Minonne 75f2efb500 moving ParseSelector to Parse for labels only. 2015-03-05 22:39:36 +01:00
Filip Grzadkowski 6ad2b86181 Fix hack/test-cmd.sh so that it passes on a local machine 2015-03-03 17:23:55 +01:00
Lénaïc Huard c23046dc0a Assert pre and post conditions of all commands in test-cmd.sh
`hack/test-cmd.sh` contains a list of `kubectl` commands to test.
However, the effect of the execution of those commands was not systematically
checked. As a consequence, it was possible to break a command without breaking
those tests.

This commit surrounds every single `kubectl` command with assertions on
pre and post condition.
2015-02-25 18:26:30 +01:00
Tim Hockin 0810e1fa99 build hyperkube 2015-02-20 08:49:11 -08:00
Eric Paris 8e64be1c66 Add godeps for man page autogeneration 2015-02-12 18:38:25 -05:00
Jeff Lowdermilk 197059b65d Remove kubecfg, cleanup a few stray references. 2015-02-10 16:43:12 -08:00
CJ Cullen a840c20939 Merge pull request #4158 from HackToday/master
Check curl before use it
2015-02-10 16:24:53 -08:00
Clayton Coleman 4369e31b9d Integration tests should use 127.0.0.1 consistently 2015-02-09 14:30:31 -05:00
Filipe Brandenburger e63ccfff6c Reintroduce "Turn the hack/e2e.go commands into standalone scripts."
This reverts commit 2765660101,
which reverted a commit 0c7dce77dd, so
we're reintroducing the same code from that commit here.
2015-02-06 14:35:43 -08:00
Zach Loafman 2765660101 Revert "Turn the hack/e2e.go commands into standalone scripts." 2015-02-06 14:13:00 -08:00
Filipe Brandenburger 0c7dce77dd Turn the hack/e2e.go commands into standalone scripts.
This gets rid of bashWrap() and of running bash -s passing it a script
on stdin. Also get rid of most of the runBash*() helpers.

In particular, `go run hack/e2e.go -build` will now work when it needs
to ask whether it is OK to download a large docker image, it used to
fail since stdin was not available for the bash script using the `read`
command.

Tested by running a full `hack/e2e-test.sh` run including the build
stage without the docker image loaded, which used to fail before this
change.
2015-02-06 11:18:14 -08:00
Kennan 903ed06774 Merge remote-tracking branch 'upstream/master' 2015-02-06 08:16:28 +08:00
Kennan 492e03697f Merge branch 'master' of https://github.com/HackToday/kubernetes 2015-02-06 08:10:49 +08:00
Kennan eaab84a414 Check curl before use it
This check can help user figure out what's the issue during
local cluster setup
2015-02-06 08:02:50 +08:00
Zach Loafman f21a25e7fc Add hack/ginkgo-e2e.sh to kubernetes-test.tgz 2015-02-05 08:06:50 -08:00
Kennan 222c714cf6 Check curl before use it
This check can help user figure out what's the issue during
local cluster setup
2015-02-05 16:31:07 +08:00
Clayton Coleman 449f9d915e Make hack/local-up-cluster.sh work again for etcd 2 2015-02-04 17:45:53 -05:00
Filipe Brandenburger 1d981f9345 Convert load of api/examples/pod.json into native Go definition of the api.Pod
This is another step in removing external dependencies of the Go e2e tests.

Remove references to this file on list of files required to run e2e tests.

Also use an unique name for the pod, so that failure in cleanup of a
previous run should not break a new run with a name conflict.

Tested by running cmd/e2e -t TestPodUpdate against an API server in GCE.
2015-01-30 15:25:56 -08:00
Filipe Brandenburger a74fce5bd7 Convert load of test/e2e/pod.json into native Go definition of the api.Pod
This is another step in removing external dependencies of the Go e2e tests.

Also remove other references to this file.

Tested by running cmd/e2e -t TestKubeletSendsEvent against an API server in GCE.
2015-01-30 13:21:09 -08:00
Brendan Burns a20ca78fb3 Update etcd to version 2.0.0 2015-01-29 17:53:53 -08:00
Satnam Singh 1bff012c36 Convert basic.sh e2e test to Go 2015-01-15 11:41:29 -08:00
Jeff Lowdermlk 250c948ae7 Autogenerate markdown docs for kubectl
Add test to verify generated docs are up to date.
2015-01-14 13:21:14 -08:00
Zach Loafman d3aed6c9cd Add kubernetes-test.tar.gz
Add test artifacts to the build. This lets you do:

tar -xzf kubernetes.tar.gz
tar -xzf kubernetes-test.tar.gz
cd kubernetes
go run ./hack/e2e.go -up -test -down

without having a git checkout.
2014-12-17 14:30:30 -08:00
Brendan Burns 373cf77ae1 Adjust the regexp so that we can handle extra sub versions. 2014-12-02 23:00:01 -08:00
Joe Beda 5bf43236e3 Support building/packaging Windows client binaries.
Ug -- .exe suffix is a pain.  These are largely untested.
2014-11-24 14:10:28 -08:00
Joe Beda 66d287f7e4 Merge branch 'rename-to-kube' of https://github.com/eparis/kubernetes into eparis-rename-to-kube
* 'rename-to-kube' of https://github.com/eparis/kubernetes:
  rename kube server binaries to kube-

Conflicts:
	docs/salt.md
2014-11-17 09:52:10 -08:00
Joe Beda f18cd53687 Make dockerized build work when golang isn't installed. 2014-11-16 16:29:58 -08:00
Eric Paris a99c3c7963 rename kube server binaries to kube-
apiserver becomes kube-apiserver
controller-manager -> kube-controller-manager
scheduler and proxy similarly.

Only thing I promise is that right now hack/build-go.sh and
build/release.sh exit with 0.  That's it.  Who knows if any of this
actually works....
2014-11-13 20:08:26 -05:00
Joe Beda ba611c2e31 Merge pull request #2299 from jbeda/version-fix
Use all tags for version detection
2014-11-11 12:19:10 -08:00
Joe Beda e02322ba4e Use all tags for version detection 2014-11-11 11:20:19 -08:00
Brendan Burns 2c1221864d Make a standalone binary. 2014-11-10 13:34:11 -08:00
Eric Paris 8a0e3e51e0 fix unbounded host_platform when building with --use_go_build
It's actually used unset a couple of lines after this patch, but this
just resolves it in one place instead of calling
$(kube::golang::host_platform) twice.
2014-11-04 13:58:06 -05:00
Eric Paris 7403de8bd4 add --use_go_build option when building binaries
Because of Fedora's crazy packaging guidelines, go install basically
isn't allowed.  So allow us to use go build instead of go install.
test-integration also needs to accept the flag to be able to pass it
along to the build function.
2014-11-04 13:04:22 -05:00
Joe Beda 5d33ce46cc Rework hack/ and build/ directories.
* Rewrite a bunch of the hack/ directory with modular reusable bash libraries.
* Have 'build/*' build on 'hack/*'.  The stuff in build now just runs hack/* in a docker container.
* Use a docker data container to enable faster incremental builds.
* Standardize output to _output/{local,dockerized}/bin/OS/ARCH/*.  This regularized placement makes cross compilation work.
* Move travis specific scripts under hack/travis

With new dockerized incremental builds, I can do a no-op `make quick-release` in ~30s.  This is a significant improvement.
2014-11-01 17:56:41 -07:00