Commit Graph

289 Commits

Author SHA1 Message Date
Jordan Liggitt
ada60236f7 Make watch cache behave like uncached watch 2016-04-12 10:14:07 -04:00
James Ravn
5bb0595260 Make deserialization cache size configurable
Instead of the default 50K entries, allow users to specify more sensible
sizes for their cluster.
2016-04-12 13:42:27 +01:00
Hongchao Deng
ab9ac70e56 etcd3 store: provide compactor util 2016-04-09 11:01:27 -07:00
Hongchao Deng
71b46f3f57 fix build 2016-04-07 19:22:28 -07:00
Wojciech Tyczynski
53f433f019 Remove Set() from storage.Interface. 2016-04-04 17:54:18 +02:00
k8s-merge-robot
f5c93c8ddc Merge pull request #23472 from wojtek-t/fix_object_meta_for
Automatic merge from submit-queue

Switch from api.ObjectMetaFor to meta.Accessor in most of places

Fix #23278

@smarterclayton @lavalamp
2016-04-02 02:33:40 -07:00
Wojciech Tyczynski
2699be2e7e Switch api.ObjetaMetaFor to meta.Accessor 2016-03-31 17:52:31 +02:00
Hongchao Deng
00ddf0671d etcd (v3) store: implements KV methods of storage.Interface
This implements Get(), Create(), Delete(), GetToList(),
List(), GuaranteedUpdate().
2016-03-30 10:20:39 -07:00
Chao Xu
31b425b3a1 add delete precondition 2016-03-25 11:21:39 -07:00
k8s-merge-robot
4e4ad61260 Merge pull request #23366 from goltermann/vet
Auto commit by PR queue bot
2016-03-24 21:50:56 -07:00
k8s-merge-robot
2777cd7e75 Merge pull request #23295 from hongchaodeng/error
Auto commit by PR queue bot
2016-03-23 02:27:36 -07:00
k8s-merge-robot
4af38b52b9 Merge pull request #22736 from resouer/fix-util-dev
Auto commit by PR queue bot
2016-03-22 19:54:58 -07:00
goltermann
34d4eaea08 Fixing several (but not all) go vet errors. Most are around string formatting, or unreachable code. 2016-03-22 17:26:50 -07:00
Hongchao Deng
189ce6e397 storage: add custom storage error 2016-03-22 08:19:16 -07:00
k8s-merge-robot
2bb6f74bf9 Merge pull request #23099 from shawnps/patch-12
Auto commit by PR queue bot
2016-03-21 09:19:21 -07:00
harry
26dad2c428 Update generated docs 2016-03-21 15:36:24 +08:00
harry
b6924a322a Refactor cache into util sub pkg 2016-03-21 14:50:57 +08:00
k8s-merge-robot
08c706a8ab Merge pull request #23194 from hongchaodeng/dep
Auto commit by PR queue bot
2016-03-19 06:35:17 -07:00
Hongchao Deng
0a1ff0bb0b fix EtcdTestServer 2016-03-18 23:39:48 -07:00
Russ Cox
e4b369e1d7 storage: clean up timer in cacheWatcher.add
In the e2e benchmarks, this timer is a significant source of garbage
and stale timers. Because the timer is not stopped after its use
in the select, it stays in the timer heap until it eventually fires
(5 seconds later). Under load, a lot of 5-second timers can pile up
before any start going away. The timer heap being large makes timer
operations take longer; the operations are O(log N) but N is still big.

The way to fix this in current versions of Go is to stop the underlying
timer explicitly, which this CL does for this one case.

There are many other places in the code that use the same idiom,
but those do not show up on profiles of the e2e server.
I am investigating changes for Go 1.7's runtime that would make
the old code behave like this new code transparently, so I don't
think it's worth updating any uses of the idiom that are not in
hot spots found with profiling.

Measuring 'LIST nodes' latency in milliseconds during e2e test
shows the benefit of this change.

Using Go 1.4.2:

BEFORE  p50: 148±7   p90: 328±19  p99: 513±29  n: 10
AFTER   p50: 151±8   p90: 339±19  p99: 479±20  n: 9

Using Go 1.6.0:

BEFORE  p50: 141±9   p90: 383±32  p99: 604±44  n: 11
AFTER   p50: 140±14  p90: 360±31  p99: 483±39  n: 10
2016-03-18 15:58:34 -04:00
Shawn Smith
0ea3e43f1c use Fatalf 2016-03-17 15:18:04 +09:00
deads2k
ab03317d96 support CIDRs in NO_PROXY 2016-03-16 16:22:54 -04:00
Jordan Liggitt
a1c2267f20 Decrease parallelism in deletecollection test, lengthen test etcd certs 2016-03-12 18:30:12 -05:00
AdoHe
7228b9b987 restore ability to run against secured etcd 2016-03-11 11:21:16 -05:00
Fabio Yeon
d25449d58e Merge pull request #21310 from wojtek-t/require_versioner
Require versioner in etcdHelper to be non-null.
2016-02-26 15:44:59 -08:00
k8s-merge-robot
90d1276507 Merge pull request #21223 from hongchaodeng/fix
Auto commit by PR queue bot
2016-02-22 07:41:45 -08:00
Daniel Smith
3fb020b28d Fix a locking bug in the cacher. 2016-02-19 17:45:02 -08:00
k8s-merge-robot
17325ef6ef Merge pull request #20501 from piosz/hpa-ga
Auto commit by PR queue bot
2016-02-18 06:52:39 -08:00
Wojciech Tyczynski
20d704aa06 Fix cacher_test unit test 2016-02-18 10:25:04 +01:00
Wojciech Tyczynski
35a3394a0a Require versioner in etcdHelper to be non-null. 2016-02-16 16:22:43 +01:00
Daniel Smith
74400c33ae changes for cross-group moves 2016-02-15 21:39:00 +01:00
Hongchao Deng
0d89cfd6e5 remove unnecessary error check 2016-02-13 22:25:46 -08:00
k8s-merge-robot
f43b849e54 Merge pull request #20770 from liggitt/ugorji-var-reset
Auto commit by PR queue bot
2016-02-13 14:59:38 -08:00
Jordan Liggitt
dd5d98d80a regen codecs 2016-02-13 09:15:39 -05:00
Wojciech Tyczynski
2e97793840 Don't store no-op updates in etcd. 2016-02-12 09:23:28 +01:00
k8s-merge-robot
b3367b90d6 Merge pull request #20892 from lavalamp/fix-us-log
Auto commit by PR queue bot
2016-02-10 06:43:42 -08:00
Daniel Smith
4e85d42f99 fix logging every microsecond when etcd goes down 2016-02-09 00:12:19 -08:00
Jordan Liggitt
545f6be573 Regenerate types.go 2016-02-08 17:19:15 -05:00
Jan Chaloupka
4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
Wojciech Tyczynski
d3639aff73 Fix deadlock in watch cache 2016-02-05 08:31:55 +01:00
Wojciech Tyczynski
f23034d5da Reset more metrics before scalability tests 2016-02-04 11:47:13 +01:00
Jeff Lowdermilk
caa9433234 Merge pull request #20433 from lavalamp/fix-bad-rv
Add timeout, fix potential startup hang
2016-02-02 17:27:23 -08:00
k8s-merge-robot
c5260c8c71 Merge pull request #20145 from mqliang/quorum-read
Auto commit by PR queue bot
2016-02-02 05:50:41 -08:00
Daniel Smith
26683fda29 add timeout to cacher 2016-02-01 15:36:15 -08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
mqliang
b0e06c14e5 add a knob to enable quorum read 2016-01-30 20:32:12 +08:00
Chao Xu
ebcff4b5e4 fix the namespaceScoped of cachers 2016-01-28 16:24:54 -08:00
Filip Grzadkowski
2200aacbad Add tracing information in etcd helper.
Ref #19036
2016-01-26 17:18:15 +01:00
Brendan Burns
b8b074f41f Disable closing of the httptest Server due to https://github.com/golang/go/issues/12262 2016-01-25 15:31:48 -08:00
k8s-merge-robot
d3b869ae14 Merge pull request #17922 from smarterclayton/split_codec
Auto commit by PR queue bot
2016-01-25 06:30:39 -08:00
Daniel Smith
c0ffbd58db Remove TestWatchEtcdError
We decided to remove this test, as there's no way to get an upper bound
on its running time. Etcd restart behavior should be tested in
integration or e2e tests.
2016-01-22 16:43:44 -08:00
Clayton Coleman
4a6935b31f Remaining codec change refactors 2016-01-22 13:27:27 -05:00
Clayton Coleman
33085c0cf2 Update tests to handle codec changes 2016-01-22 13:27:26 -05:00
Mike Danese
558d0cc65d Merge pull request #19617 from hongchaodeng/watch_cache
small refactor on watch cache
2016-01-14 17:04:13 -08:00
Hongchao Deng
821a196373 small refactor on watch cache 2016-01-13 14:00:59 -08:00
Hongchao Deng
c5cebf44ce typo fix in watch_cache.go 2016-01-13 11:23:34 -08:00
David Oppenheimer
8ac484793d Comment out calls to httptest.Server.Close() to work around
https://github.com/golang/go/issues/12262 . See #19254 for
more details. This change should be reverted when we upgrade
to Go 1.6.
2016-01-11 23:02:11 -08:00
Wojciech Tyczynski
c8ad31161b Workaround races while closing etcd server. 2016-01-03 08:48:39 +01:00
Wojciech Tyczynski
60fc2bc09e Fix cacher_test flake 2015-12-31 07:53:41 +01:00
Wojciech Tyczynski
65696989b2 Extend logging for debugging 18928 2015-12-30 20:09:05 +01:00
Wojciech Tyczynski
9ada897057 Fix master_test flake 2015-12-30 13:49:43 +01:00
Wojciech Tyczynski
05b60a30cf Fix flakes in cacher_test 2015-12-28 15:28:07 +01:00
k8s-merge-robot
451f4bdbc2 Merge pull request #19130 from wojtek-t/fix_stop_cacher
Auto commit by PR queue bot
2015-12-28 03:45:34 -08:00
Wojciech Tyczynski
ec70eb16f3 Graceul termination in Cacher 2015-12-28 10:54:21 +01:00
Wojciech Tyczynski
0b7dce9505 Fix a bug in etcd_watcher_test 2015-12-28 10:43:33 +01:00
Mike Danese
bee582293c Merge pull request #19010 from wojtek-t/debug_watcher_test
Fix etcdWatcher test
2015-12-22 14:07:41 -08:00
Wojciech Tyczynski
9f35eebb81 Fix timeout in etcdwatcher tests 2015-12-22 16:56:54 +01:00
Wojciech Tyczynski
8cd50dd005 Fix etcdWatcher test 2015-12-22 15:40:52 +01:00
Wojciech Tyczynski
41c7835039 Fix race in watch tests 2015-12-22 13:21:02 +01:00
Wojciech Tyczynski
2b8854ba28 Close watchers in tests 2015-12-22 09:54:05 +01:00
Wojciech Tyczynski
6297232112 Fix race in EtcdWatcher 2015-12-21 19:24:37 +01:00
Wojciech Tyczynski
1f24297e7a Merge pull request #18921 from timothysc/etcd_datarace
Fix data race on cancel variable in etcd code
2015-12-19 08:09:45 +01:00
Timothy St. Clair
e3311aa93a Fix data race on cancel variable in etcd code 2015-12-18 18:37:45 -06:00
Timothy St. Clair
c13e4c8c2f re-disable TestWatchEtcdError due to flake 2015-12-18 17:57:46 -06:00
Wojciech Tyczynski
96b5ca0cc5 Fix test issue in Go 1.5 2015-12-18 14:17:52 +01:00
Wojciech Tyczynski
d1e039b646 Merge pull request #18635 from timothysc/etcd_client_post_cleanup
Update to use latest etcd client library
2015-12-18 14:14:21 +01:00
Eric Tune
1965fe1824 Rerun hack/update-codecgen.sh 2015-12-17 13:51:33 -08:00
Eric Tune
1752cf22d4 Merge pull request #17940 from soltysh/job_deadline
Added ActiveDeadlineSeconds to jobs
2015-12-17 13:11:13 -08:00
Maciej Szulik
327c104460 Added ActiveDeadlineSeconds to jobs, allowing failing a job after
exceeding allowed time.
2015-12-17 15:26:42 +01:00
deads2k
9fda7f1812 update StatusDetails to handle Groups 2015-12-17 09:14:12 -05:00
Brendan Burns
2efcccf981 Add a server side export facility 2015-12-16 15:01:13 -08:00
Timothy St. Clair
c505a5d49d Updating kubernetes proper to use latest etcd client library 2015-12-16 15:56:35 -06:00
k8s-merge-robot
e309583ff1 Merge pull request #18473 from smarterclayton/change_runtime_object
Auto commit by PR queue bot
2015-12-16 04:24:22 -08:00
Clayton Coleman
8f203a28f1 Change runtime.Object signature 2015-12-15 13:36:25 -05:00
deads2k
6e33403abf update CodecFor for GroupVersion 2015-12-15 10:56:00 -05:00
k8s-merge-robot
1f0e46abb8 Merge pull request #16237 from ZJU-SEL/fix-util
Auto commit by PR queue bot
2015-12-14 18:41:14 -08:00
Wojciech Tyczynski
960808bf08 Switch to versioned ListOptions in client. 2015-12-14 14:26:09 +01:00
Harry Zhang
8fe92c69d2 Update highwatermark 2015-12-14 16:47:47 +08:00
harry zhang
5405a5d98d Move atomic_value into folder
Change pkg to atomic
2015-12-14 05:50:29 +00:00
Jeff Lowdermilk
9c49cdaa6e Merge pull request #18276 from thockin/airplane_validation_pt6
Validation cleanup parts 5 & 6 together
2015-12-11 13:34:37 -08:00
k8s-merge-robot
d3243b8778 Merge pull request #18383 from timothysc/tools_removal
Auto commit by PR queue bot
2015-12-11 07:17:14 -08:00
Tim Hockin
7fb8f60735 Shorten names for better reading 2015-12-10 11:48:19 -08:00
Tim Hockin
87a35047dd Move FieldPath and errors to a sub-package
This makes the naming and reading a lot simpler.
2015-12-10 11:48:16 -08:00
Timothy St. Clair
a428246960 Abstract the error handling for the storage layer to eliminate the
direct etcd dependency.
2015-12-10 08:06:19 -06:00
Timothy St. Clair
413d8d18fe Futher storage isolation and removal of the tools interface. 2015-12-09 11:04:14 -06:00
Wojciech Tyczynski
0cefb43707 Enable listing from memory 2015-12-09 16:24:14 +01:00
Wojciech Tyczynski
0369805308 Merge pull request #18207 from wojtek-t/string_resource_version
Change resourceVersion to string in storage.Interface
2015-12-09 15:00:54 +01:00
Wojciech Tyczynski
a915b8b29a Merge pull request #18080 from wojtek-t/list_options_in_listwatch
Pass ListOptions to List in ListWatch.
2015-12-09 14:27:51 +01:00
deads2k
2ee3dfe415 update testapi to eliminate redundant fields 2015-12-07 15:54:26 -05:00
Wojciech Tyczynski
b0fcb5adef Pass ListOptions to List in ListWatch. 2015-12-07 11:53:53 +01:00
Wojciech Tyczynski
793da62c7f Change resourceVersion to string in storage.Interface 2015-12-07 09:22:59 +01:00
Tim Hockin
e6df0b1a24 Convert validation to use FieldPath
Before this change we have a mish-mash of ways to pass field names around for
error generation.  Sometimes string fieldnames, sometimes .Prefix(), sometimes
neither, often wrong names or not indexed when it should be.

Instead of that mess, this is part one of a couple of commits that will make it
more strongly typed and hopefully encourage correct behavior.  At least you
will have to think about field names, which is better than nothing.

It turned out to be really hard to do this incrementally.
2015-12-03 08:19:44 -08:00
k8s-merge-robot
55f5e48047 Merge pull request #16628 from caesarxuchao/change-error-type
Auto commit by PR queue bot
2015-11-30 17:21:52 -08:00
k8s-merge-robot
158fecd474 Merge pull request #17776 from wojtek-t/move_etcd_errors_from_tools
Auto commit by PR queue bot
2015-11-27 11:57:18 -08:00
k8s-merge-robot
fc694ea787 Merge pull request #16725 from wojtek-t/update_ugorji
Auto commit by PR queue bot
2015-11-25 22:14:20 -08:00
Chao Xu
a4700707b3 change the "too old resource version" error from InternalError to 410 Gone. 2015-11-25 10:27:03 -08:00
deads2k
ed95a6d77f update scheme to use GroupVersion 2015-11-25 12:15:48 -05:00
k8s-merge-robot
3bd23b185b Merge pull request #17730 from wojtek-t/use_unversioned_list_options_in_client
Auto commit by PR queue bot
2015-11-25 09:10:19 -08:00
Wojciech Tyczynski
65c381bfdb Hide internal etcd errors. 2015-11-25 14:47:08 +01:00
k8s-merge-robot
e95e3dec42 Merge pull request #17414 from timstclair/apiserver
Auto commit by PR queue bot
2015-11-25 05:28:07 -08:00
Wojciech Tyczynski
58062bc347 Regenerate files 2015-11-25 12:34:05 +01:00
k8s-merge-robot
431c67710b Merge pull request #17247 from thockin/airplane_validation_pt3
Auto commit by PR queue bot
2015-11-24 18:37:09 -08:00
Wojciech Tyczynski
b6ef62af24 Use unversioned.ListOptions in clients. 2015-11-24 16:52:09 +01:00
k8s-merge-robot
06ef4b0a83 Merge pull request #17156 from feihujiang/moveListFunctionsFromRuntimeToMetaPackage
Auto commit by PR queue bot
2015-11-23 14:13:25 -08:00
Tim St. Clair
20ead45af9 Move etcd_util.go to separate package 2015-11-23 11:32:50 -08:00
Tim Hockin
ceee678b29 Rename validation 'New' funcs 2015-11-23 10:01:43 -08:00
Tim Hockin
48b49a5cae s/ValidationErrorList/ErrorList/ 2015-11-22 20:13:20 -08:00
Tim Hockin
0ff66da346 Move fielderrors into validation 2015-11-22 20:12:20 -08:00
feihujiang
ad79fa6e84 Move list functions from runtime to meta package 2015-11-20 09:20:55 +08:00
Timothy St. Clair
02851dd1b7 Removal of fakeClient and shift to storage.Interface for
all registry tests.
2015-11-19 10:34:30 -06:00
Wojciech Tyczynski
a5a8717539 Pass versioner to cacher. 2015-11-13 08:35:28 +01:00
Wojciech Tyczynski
3df5d1dbc3 Move storage-related dirs under pkg/storage. 2015-11-12 19:49:32 +01:00
Daniel Smith
45a1ec73bb Lengthen delay 2015-11-06 13:03:58 -08:00
Wojciech Tyczynski
b6a775ca50 Terminate watcher if it is full 2015-11-06 13:40:21 +01:00
k8s-merge-robot
6b7115067d Merge pull request #16807 from smarterclayton/server_backpressure_on_etcd_down
Auto commit by PR queue bot
2015-11-05 21:19:30 -08:00
Timothy St. Clair
f6f2f41ab3 Removal of fakeClient from registry/generic/etcd/etcd_test.go in leiu of
NewEtcdTestClientServer
2015-11-05 08:28:58 -06:00
Clayton Coleman
3da15535b6 Provide backpressure to clients when etcd goes down
When etcd is down today we don't specifically handle the error involved,
which means clients get a generic 500 error. This commit adds a formal
error type internally for both WatchExpired and EtcdUnreachable, and
then converts them to api/errors before returning to the client. It also
upgrades the client to retry on any 429 or 5xx error that has a
Retry-After header, instead of just 429.

In combination, this allows the apiserver to exert backpressure on
controllers that are hotlooping.  Picked 2 seconds by default, but we
could potentially ramp that up even further in a future iteration.
2015-11-04 16:05:12 -05:00
k8s-merge-robot
ac63290ff5 Merge pull request #16781 from timothysc/fix-testing-deps
Auto commit by PR queue bot
2015-11-04 01:58:34 -08:00
Timothy St. Clair
dbdd1614e6 Fix for linkage issue with new testing utilities 2015-11-03 22:16:47 -06:00
k8s-merge-robot
bad838f35c Merge pull request #16717 from liggitt/hpa_ref_validation
Auto commit by PR queue bot
2015-11-03 15:04:30 -08:00
Jordan Liggitt
b3157d1445 Ensure HPA has valid resource/name/subresource, validate path segments 2015-11-03 14:46:17 -05:00
Wojciech Tyczynski
6246201eec Remove fakeClient from cacher_test. 2015-11-03 10:58:43 +01:00
Wojciech Tyczynski
8f385c563f Refactor code for creating Cacher. 2015-11-02 20:56:46 +01:00
Wojciech Tyczynski
652fb090eb Initial support for listing from in-memory cache. 2015-10-30 20:58:13 +01:00
krousey
848fed8f4b Merge pull request #16384 from derekwaynecarr/fix_memory_churn_etcd_helper
Large amount of memory churn in etcd helper prefixing keys
2015-10-29 10:02:07 -07:00
k8s-merge-robot
d5be3635e5 Merge pull request #16273 from wojtek-t/list_options_in_api
Auto commit by PR queue bot
2015-10-29 01:57:29 -07:00
derekwaynecarr
caebe7300b Large amount of memory churn in etcd helper 2015-10-27 16:35:07 -04:00
Timothy St. Clair
4cf5b348c8 Removal of fakeClient from etcd_watcher_test in leiu of NewEtcdTestClientServer 2015-10-27 13:32:56 -05:00
Wojciech Tyczynski
aa30e38183 Pass resource version to storage List operation. 2015-10-27 10:03:58 +01:00
Wojciech Tyczynski
d47e21f19f Reuse TCP connections in Reflector between resync periods. 2015-10-26 19:35:25 +01:00
Timothy St. Clair
8140974f31 Removal of fakeClient from etcd_helper_test in leiu of NewEtcdTestClientServer 2015-10-23 16:23:27 -05:00
Wojciech Tyczynski
80be983668 Merge pull request #15392 from timothysc/etcd-remove-fakeclient
Initial commit to enable migrating tests off of FakeClient.
2015-10-22 15:24:34 +02:00
Jordan Liggitt
63fb6c07a5 Validate names in BeforeCreate 2015-10-21 14:11:41 -04:00
Timothy St. Clair
c850a9ab61 Modifications to to remove FakeEtcdClient. Enables starting & stopping
an etcd server per unit tests that need them.
2015-10-19 22:06:19 -05:00
Wojciech Tyczynski
d51965bf00 Autogenerate files. 2015-10-16 10:20:02 +02:00
Wojciech Tyczynski
2b17666b44 Avoid unnecessary copies in LIST 2015-10-14 14:04:14 +02:00
Wojciech Tyczynski
3d88a63b5d Refactor test objects to a separate package 2015-10-13 10:15:11 +02:00
Timothy St. Clair
2a2a2d79ff New etcd client modifications part 1 (context support)
This commit plumbs contexts which are needed for the new client.
2015-10-12 08:45:49 -05:00
k8s-merge-robot
d9c56eed26 Merge pull request #15107 from caesarxuchao/fix-14384
Auto commit by PR queue bot
2015-10-08 21:40:52 -07:00
Paul Morie
227dd82119 Add PodSecurityContext and backward compatibility tests 2015-10-05 21:05:27 -04:00