Commit Graph

359 Commits (21b661ecf3038dc50f75d345276c9cf460af9df2)

Author SHA1 Message Date
Daniel Smith e62280d84a Merge pull request #2957 from brendandburns/e2e
Add an e2e test for http liveness.
2014-12-16 11:42:33 -08:00
Brendan Burns f1b55c04e2 Add an e2e test for http liveness. 2014-12-16 11:38:52 -08:00
Alex Robinson fe76243b05 Make it easy to use the e2e tests to test upgrading a running master
by adding support for testing official release versions and writing a
simple script to first bring up and test the old version before
upgrading it and testing it again. Related to supporting in-place
upgrades of masters (#2524).
2014-12-15 16:03:11 -08:00
Max Forbes f9108c62c2 Use GCLOUD var consistently. 2014-12-15 13:08:10 -08:00
Max Forbes bea37d5b17 Fix up e2e tests. 2014-12-15 11:53:51 -08:00
Brendan Burns 2d1b279311 Merge pull request #2905 from smarterclayton/misc_cleanup
Small fixes to prepare for v1beta3
2014-12-15 11:49:29 -08:00
Clayton Coleman 7d2a64b2a8 test-cmd should test all api versions 2014-12-12 18:23:17 -05:00
Zach Loafman 43addc7202 Add Test Anything Protocol (TAP) output to e2e.go
Adds a --tap option to change outputs to match the TAP format. Changes
pass/fail in general to "ok" / "not ok".
2014-12-11 12:20:38 -08:00
Zach Loafman 369064c69f Add --times to e2e.go
Make each test available for execution --times times. Acts like a
multi-deck shoe. (Otherwise this is easily scriptable outside the
e2e.go command).

Useful for "I want to walk away for a few hours leaving some end-to-ends
running", until we have more stress tests. Also useful for detecting
flakes.

Reporting is changed to break out Passed, Flaky and Failed. I chose to
keep all three lines even if --times isn't on, just for consistency in
scraping. Similarly, it always outputs the counts now. A report looks
like:

2014/12/09 07:31:21 Passed tests: goe2e.sh[100/100] guestbook.sh[100/100] private.sh[100/100] services.sh[100/100]
2014/12/09 07:31:21 Flaky tests: basic.sh[99/100] certs.sh[99/100] monitoring.sh[98/100] pd.sh[98/100] update.sh[98/100]
2014/12/09 07:31:21 Failed tests:
2014/12/09 07:31:21 8 test(s) failed.
2014-12-11 12:18:56 -08:00
Brendan Burns a670f833bd Improve the pd e2e test by deleting the pod, and verifying that the PD was unmounted by
recreating the pod.
2014-12-10 20:31:46 -08:00
Clayton Coleman d1d7505272 Rename client Minions->Nodes, select the correct path for v1beta3
Replaces the client public interface but leaves old references to "minions"
for a later refactor.  Selects the path "nodes" for v1beta3 and "minions"
for older versions.
2014-12-10 12:08:19 -05:00
Deyuan Deng bf42ea26d5 Use EXIT pseudo-signal 2014-12-08 21:28:18 -05:00
Zach Loafman b7a7e92ad1 Add --pushup to e2e.go
Silly but hopefully memorable name for an option to --push OR --up
depending on cluster state.
2014-12-08 15:23:30 -08:00
Daniel Smith c5667e1cfe Merge pull request #2782 from zmerlynn/e2e.shuffle
Run e2e tests in deterministic random order
2014-12-08 13:01:32 -08:00
Zach Loafman f3a992aa08 Run e2e tests in deterministic random order
Currently, we run the e2e tests in whatever order readdir happens to
return, which is random on some filesystems, name sorted on others,
create order on others, etc. Eventually, we may want to be
automatically hermetic between e2e tests (especially as we introduce
more resource destructive tests), but until then, it would be useful
if we permute the test order randomly between runs to ensure that
developers don't accidentally rely on a particular order. This
introduces a form of forced hermeticism, since improper state cleanup
from one test may not perturb a given test, but there's probably *a*
test in the suite that the order will perturb, so the RNG will find
that order eventually.

Adds logging of the generated seed, and an --orderseed argument that
can be used to re-run in the same order. Also sorts the pass/fail list
now for easier human reading.
2014-12-08 11:10:39 -08:00
Daniel Smith 0166649364 Merge pull request #2783 from zmerlynn/IsUp
Check if cluster is up before e2e test without -up
2014-12-08 10:54:22 -08:00
Zach Loafman 3afcebecca Fix e2e-suite/certs.sh unbound variables
Fixes e2e failure on GCE
2014-12-07 16:39:56 -08:00
Zach Loafman 3009c88865 Check if cluster is up before e2e test without -up
Minor usability nuisance: If you run:
  go run hack/e2e.go -v -test
.. and you don't happen to have an up e2e cluster, it should fail
fast, rather than chugging through every test and having them fall
over.
2014-12-07 15:35:22 -08:00
Brendan Burns 2a53b002ef Fix the update test. 2014-12-05 15:21:53 -08:00
Brendan Burns f5dd5138ef Merge pull request #2774 from brendandburns/fix
Make certs.sh executable.
2014-12-05 15:19:18 -08:00
Brendan Burns c60742a436 Make certs.sh executable. 2014-12-05 14:11:19 -08:00
Jordan Liggitt 4ab41f5be8 Add script to build ui assets, rebuild with latest go-bindata 2014-12-04 22:38:00 -08:00
Daniel Smith 9dfd5a1247 Merge pull request #2731 from brendandburns/bash
Adjust the regexp so that we can handle extra sub versions.
2014-12-04 11:12:47 -08:00
Tim Hockin 2486331d34 Add an e2e case for public IPs 2014-12-03 08:30:00 -08:00
Tim Hockin bf1395f06a use a here-doc instead of kubecfg run 2014-12-02 23:55:45 -08:00
Brendan Burns 373cf77ae1 Adjust the regexp so that we can handle extra sub versions. 2014-12-02 23:00:01 -08:00
Brendan Burns 77d4950f83 Add an e2e test for cert generation. 2014-12-02 17:08:48 -08:00
Brendan Burns 6ec5da9f6a Merge pull request #2706 from vishh/monitoring_e2e
Adding an e2e test for monitoring.
2014-12-02 14:00:18 -08:00
Vishnu Kannan 090eb966f2 Adding an e2e test for monitoring. 2014-12-02 06:54:59 +00:00
James Kyle 361c8dbae5 Support remote docker hosts on OS X.
This commit brings two main changes, notably:

Two new options that can be set as environment variables

- DOCKER_OPTS: any arbitrary set of docker options. Example: --tlsverify
- DOCKER_NATIVE: This forces the use of the native docker available.
                 This is most useful if you're on OS X and do not want
                 to use boot2docker.

Now uses 'docker cp' instead of tar piping to transfer files. This
currently must be done by copying the binaries off of the docker volume
and into a local filesystem (/tmp) before a docker cp is done. This
workaround will no longer be necessary after bug fix
https://github.com/docker/docker/pull/8509 makes it into stable.

This was necessary because the tar | tar method was creating corrupted
archives on OS X even with the < /dev/null workaround.
2014-12-01 11:47:16 -08:00
Joe Beda 6ba07b38fc Convert gcutil to gcloud compute 2014-11-25 15:17:00 -08:00
Joe Beda 175ca37bc7 trace-bash flag for e2e.go 2014-11-25 15:16:35 -08:00
Brendan Burns 45d1f26889 Merge pull request #2583 from jbeda/window-build
Support building/packaging Windows client binaries.
2014-11-25 11:17:20 -08:00
Brendan Burns e1764e2e01 Add an e2e test for gce pd.
Add an example for gce pd.
Add an extra log message.
2014-11-25 09:02:00 -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
Eric Tune 248dddf34a Merge pull request #2538 from brendandburns/fix
Increase the verbosity of integration test runs.
2014-11-24 09:41:08 -08:00
Brendan Burns 5bda4f9292 Increase the verbosit of integration test runs. 2014-11-21 21:45:21 -08:00
Brian Grant 2ac8400cb2 Add API documentation pre-commit hook. 2014-11-20 20:25:44 +00:00
Brendan Burns cea52d7e4f Merge pull request #2409 from mattmoor/master
Implements a credentialprovider library for use by DockerPuller.
2014-11-17 21:53:25 -08:00
Matt Moore 0c5d9ed0d2 Implements a credentialprovider library for use by DockerPuller.
This change refactors the way Kubelet's DockerPuller handles the docker config credentials to utilize a new credentialprovider library.

The credentialprovider library is based on several of the files from the Kubelet's dockertools directory, but supports a new pluggable model for retrieving a .dockercfg-compatible JSON blob with credentials.

With this change, the Kubelet will lazily ask for the docker config from a set of DockerConfigProvider extensions each time it needs a credential.

This change provides common implementations of DockerConfigProvider for:
 - "Default": load .dockercfg from disk
 - "Caching": wraps another provider in a cache that expires after a pre-specified lifetime.

GCP-only:
 - "google-dockercfg": reads a .dockercfg from a GCE instance's metadata
 - "google-dockercfg-url": reads a .dockercfg from a URL specified in a GCE instance's metadata.
 - "google-container-registry": reads an access token from GCE metadata into a password field.
2014-11-17 21:46:54 -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
Brendan Burns 403e57be09 Merge pull request #2404 from jbeda/fix-nogo-build
Make dockerized build work when golang isn't installed.
2014-11-17 09:43:08 -08:00
Joe Beda f18cd53687 Make dockerized build work when golang isn't installed. 2014-11-16 16:29:58 -08:00
Brendan Burns c38880047d Update guestbook to fix given recent changes. 2014-11-15 19:36:02 -08:00
Tim Hockin eafdc684e9 Merge pull request #1922 from brendandburns/guestbook
Update the services now that Services v2 has IP per service.
2014-11-14 21:13:19 -08:00
Daniel Smith e4eb6149f8 Merge pull request #2383 from brendandburns/fix
Fix service e2e test, by eliminating the assumption that ips are re-used
2014-11-14 17:22:50 -08:00
Brendan Burns 97001e317b Fix service e2e test, by eliminating the assumption that ips are re-used. 2014-11-14 17:22:01 -08:00
Joe Beda 06d838ffb1 Merge pull request #2369 from jbeda/vagrant-fix
Vagrant fixes
2014-11-14 16:43:06 -08:00
Dawn Chen aa711af39e Merge pull request #2355 from brendandburns/kubelet
Add support for the a clusters cloud interface to cloud provider.
2014-11-14 11:14:17 -08:00
Brendan Burns d3e48c9525 Add the container API to our dependencies.
Update google-api-go-client
2014-11-14 10:38:22 -08:00
Joe Beda 5a0159ea00 Get Vagrant to start using TLS client certs.
Also fix up cert generation. It was failing during the first salt highstate when trying to chown the certs as the apiserver user didn't exist yet.  Fix this by creating a 'kube-cert' group and chgrping the files to that.  Then make the apiserver a member of that group.

Fixes #2365
Fixes #2368
2014-11-13 22:16:45 -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
Daniel Smith c219d138ef make e2e test get events in background, for easier debugging after the fact. 2014-11-13 17:03:06 -08:00
Dawn Chen 143d986b28 Merge pull request #2336 from davidopp/master
Change update example to use a trivial webserver instead of nginx (issue...
2014-11-13 09:57:00 -08:00
Daniel Smith 4e1ab8045b fix e2e.go args for kubectl 2014-11-12 15:22:09 -08:00
David Oppenheimer 3d69351924 Change update example to use a trivial webserver instead of nginx (issue #1803). 2014-11-12 15:13:11 -08:00
Brendan Burns 110b5a3345 Update the services now that Services v2 has IP per service. 2014-11-12 11:31:28 -08:00
davidopp 6a736901ca Revert "Change update example to use a trivial webserver instead of nginx (issue..." 2014-11-11 23:03:23 -08:00
davidopp 004bc49349 Merge pull request #2320 from davidopp/master
Change update example to use a trivial webserver instead of nginx (issue...
2014-11-11 22:56:27 -08:00
David Oppenheimer 03ae4b54a3 Change update example to use a trivial webserver instead of nginx (issue #1803). 2014-11-11 22:16:18 -08:00
Eric Tune cf21f97cd2 Merge pull request #2309 from lavalamp/fix3
Refactors of kubectl object printers.
2014-11-11 16:39:04 -08:00
Daniel Smith d6d6229fea Actually let hack/e2e.go run kubectl 2014-11-11 15:32:12 -08:00
Daniel Smith 10c2a98eb0 Merge pull request #2043 from hmrm/e2e-vagrant
Clean up e2e bash-in-go script
2014-11-11 13:39:39 -08: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
Haney Maxwell fae27e2f17 Clean up e2e test 2014-11-11 11:03:07 -08:00
Brendan Burns 2c1221864d Make a standalone binary. 2014-11-10 13:34:11 -08:00
Daniel Smith d5c6499d93 Update scripts to expect versioned output in templates. 2014-11-07 16:47:22 -08:00
Daniel Smith b8aa87ed50 Add handy -cfg and -ctl options to make it easy to run a kubecfg or kubectl command against your e2e cluster. 2014-11-07 16:47:22 -08:00
Daniel Smith 5d0036070c Remove test verbosity; makes it hard to find failures when travis reports one. 2014-11-05 17:36:47 -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
Clayton Coleman 6026c8b56a Add more extensive test-cmd scenarios for output 2014-11-04 10:44:56 -05:00
Clayton Coleman 179213f61c local-up-cluster: terminate all processes on SIGINT 2014-11-04 10:44:56 -05:00
Brendan Burns a4abafea02 Merge pull request #2129 from ddysher/fix-local-up
Fix local cluster scripts
2014-11-03 13:24:42 -08:00
Dawn Chen 2d92305338 Merge pull request #2132 from erikstmartin/kubelet-rootdir-fix
Fixes #1612 kubelet should fail to start if it cannot create rootDir
2014-11-03 12:51:47 -08:00
Erik St. Martin f75f2bbc0f Fixes #1612 kubelet should fail to start if it cannot create rootDir 2014-11-03 14:44:46 -05:00
Clayton Coleman 3836d24838 Merge pull request #2109 from smarterclayton/test_cmd_can_fail_on_public_addr
test-cmd.sh can fail if public IP not available
2014-11-03 11:21:27 -05:00
Deyuan Deng a7bdb362da Fix local cluster scripts 2014-11-02 23:30:14 -05:00
Joe Beda bbb66af3db Merge pull request #2092 from jbeda/1729-hack-build
Rationalize `build` and `hack` directories
2014-11-01 18:02:12 -07: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
Clayton Coleman c1c11557a4 hack/local-up-cluster fails to even launch apiserver
--machines was removed but still referenced in hack/local-up-cluster.
This is not a total fix, but at least allows the apiserver to start.
2014-11-01 12:20:16 -04:00
Clayton Coleman 6e1527ed06 test-cmd.sh can fail if public IP not available
test-cmd runs a 127.0.0.1 version of the apiservers, but does not
set --public_address_override, which means it can fail on some systems
(like Macs) which don't expose a bindable external port by default.

Since reachability is not necessary for test-cmd.sh today, set
public_address_override to 127.0.0.1
2014-11-01 12:19:13 -04:00
Eric Tune 55c2d6bbbb Add basic Authorization.
Added basic interface for authorizer implementations.
Added default "authorize everything" and "authorize nothing
implementations.
Added authorization check immediately after authentication check.
Added an integration test of authorization at the HTTP level of
abstraction.
2014-10-31 12:04:33 -07:00
Deyuan Deng 019b7fc74c Separate minion controller from master. 2014-10-30 20:24:15 -04:00
Daniel Smith 6befc75da5 Build local go components as well as a release 2014-10-28 12:37:03 -07:00
bgrant0607 653d9d70d1 Merge pull request #1993 from hmrm/e2e-vagrant
Allow e2e tests to run with vagrant
2014-10-27 19:19:29 -07:00
bgrant0607 e45910fb08 Merge pull request #2017 from jbeda/fix-e2e
Fix e2e tests
2014-10-27 16:51:19 -07:00
Joe Beda 053d65c086 Fix e2e tests 2014-10-27 16:31:31 -07:00
bgrant0607 ddea4ff709 Merge pull request #1977 from lavalamp/fix4
Start running e2e go tests. Disable broken test.
2014-10-27 16:27:11 -07:00
Brendan Burns df3dd288f2 Fix the e2e tests and kubecfg given recent additional validation. 2014-10-27 13:39:21 -07:00
Joe Beda 019170e6fb Merge pull request #1716 from proppy/boot2docker-bootstrap
docker: add cluster bootstrap and doc
2014-10-27 11:46:55 -07:00
Haney Maxwell d709d8561a Allow e2e tests to run with vagrant 2014-10-24 17:16:10 -07:00
Johan Euphrosine 966c3dae70 boot2docker: add cluster bootstrap and doc 2014-10-23 18:06:17 -07:00
Daniel Smith 1e249be99d Start running e2e go tests. Disable broken test. 2014-10-23 16:13:46 -07:00
Daniel Smith 47f1cb966b Fixes to e2e script 2014-10-23 14:54:50 -07:00
Brendan Burns e1ae7bd16c Merge pull request #1973 from lavalamp/fix4
fix backwards compatible script
2014-10-23 12:52:37 -07:00
Daniel Smith d055e279fe fix backwards compatible script 2014-10-23 12:51:21 -07:00
Brendan Burns dbb23abac2 Fix the guestbook e2e test. 2014-10-23 11:32:01 -07:00
Daniel Smith bfabb41604 New e2e script (in go this time) that doesn't completely suck 2014-10-23 11:03:30 -07:00