Commit Graph

129 Commits

Author SHA1 Message Date
ymqytw
34891ad9f6 support patch list of primitives 2016-11-09 11:46:59 -08:00
Kubernetes Submit Queue
ebc8dc85aa Merge pull request #36207 from smarterclayton/optimize_self_link
Automatic merge from submit-queue

SetSelfLink is inefficient

Generating self links, especially for lists, is inefficient.  Replace
use of net.URL.String() call with direct encoding that reduces number of
allocations. Switch from calling meta.ExtractList|SetList to a function
that iterates over each object in the list.

In steady state for nodes performing frequently small get/list
operations, and for larger LISTs significantly reduces CPU and
allocations.

@wojtek-t this is the next big chunk of CPU use during the large N nodes simulation test (11% of master CPU). Takes a few allocations out of the critical path
2016-11-06 06:42:49 -08:00
Clayton Coleman
4f363f5447
SetSelfLink is inefficient
Generating self links, especially for lists, is inefficient.  Replace
use of net.URL.String() with direct encoding that reduces number of
allocations. Switch from calling meta.ExtractList|SetList to a function
that iterates over each object in the list.

In steady state for nodes performing frequently small get/list
operations, and for larger LISTs significantly reduces CPU and
allocations.
2016-11-03 23:37:36 -04:00
Benjamin Bauer
76c3804859 Made changes to DELETE API to let v1.DeleteOptions be passed in as a QueryParameter 2016-11-03 15:53:04 -07:00
Clayton Coleman
ca2f1b87ad
Replace negotiation with a new method that can extract info
Alter how runtime.SerializeInfo is represented to simplify negotiation
and reduce the need to allocate during negotiation. Simplify the dynamic
client's logic around negotiating type. Add more tests for media type
handling where necessary.
2016-10-28 11:30:11 -04:00
Wojciech Tyczynski
5d2062db9f Reduce amount of not-helping logs in apiserver 2016-10-26 13:20:07 +02:00
Hongchao Deng
6f3ac807fd pass SelectionPredicate instead of Filter to storage layer 2016-09-26 09:47:19 -07:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
k8s-merge-robot
e543bd6452 Merge pull request #26007 from smarterclayton/watch_opt
Automatic merge from submit-queue

Additional optimizations to the encode/decode paths

Builds on top of #25983 with a number of other optimizations.
2016-05-28 06:27:00 -07:00
Jordan Liggitt
29252acd1a Change rest storage Update interface to retrieve updated object
Add OldObject to admission attributes

Update resthandler Patch/Update admission plumbing
2016-05-23 21:09:26 -04:00
Clayton Coleman
c6961d6fd6
Remove runtime.Typer, reduce to ObjectKinds(1) (3)
Remove the unnecessary variants, which avoids allocations in several
core paths.
2016-05-21 23:55:42 -04:00
Clayton Coleman
25a2a7d25a
Scope namer returns canonical paths already 2016-05-21 23:55:40 -04:00
Clayton Coleman
a8ce27709c
Print more data about an error for debugging
Sometimes clients send unintelligible data to the server, provide a bit
more debugging in the returned error to make it easier to pin down where
the problem is from the user side.
2016-05-19 09:08:57 -04:00
Clayton Coleman
51b624103f
Change ConvertToVersion to use GroupVersion
Long delayed refactor, avoids a few more allocations.
2016-05-12 10:10:35 -04:00
deads2k
0061479890 fully qualify admission resources and kinds 2016-04-26 07:55:33 -04:00
Clayton Coleman
3111985564 Handle streaming serializers more consistently
Add tests to watch behavior in both protocols (http and websocket)
against all 3 media types. Adopt the
`application/vnd.kubernetes.protobuf;stream=watch` media type for the
content that comes back from a watch call so that it can be
distinguished from a Status result.
2016-04-22 11:07:24 -04:00
Clayton Coleman
3474911736 Implement a streaming serializer for watch
Changeover watch to use streaming serialization. Properly version the
watch objects. Implement simple framing for JSON and Protobuf (but not
YAML).
2016-04-11 11:22:05 -04:00
Jordan Liggitt
ea8669661a Use versioned object when computing patch 2016-03-17 16:19:05 -04:00
Chao Xu
78fc311f1f adding a apiserver log message when patch fails because a meaningful conflict 2016-02-22 17:10:53 -08:00
k8s-merge-robot
30c1263b81 Merge pull request #20376 from smarterclayton/rest_error
Auto commit by PR queue bot
2016-02-06 02:15:45 -08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
Clayton Coleman
6e0ad75a6e Change the signature of resthandler.err for upcoming watch changes
Watch will need to be able to invoke scope.err, and it will not
have access to the go-restful req/res. Change to use the raw http
type now.
2016-01-30 18:00:43 -05:00
Clayton Coleman
125ef6fbc8 Support content-type negotiation in the API server
A NegotiatedSerializer is passed into the API installer (and
ParameterCodec, which abstracts conversion of query params) that can be
used to negotiate client/server request/response serialization. All
error paths are now negotiation aware, and are at least minimally
version aware.

Watch is specially coded to only allow application/json - a follow up
change will convert it to use negotiation.

Ensure the swagger scheme will include supported serializations - this
now includes application/yaml as a negotiated option.
2016-01-22 00:12:50 -05:00
deads2k
e90c2bd7dc make patch call update admission chain after applying the patch 2016-01-20 16:21:27 -05:00
Wojciech Tyczynski
58336829be Switch to versioned ListOptions in server. 2015-12-21 14:23:37 +01:00
Brendan Burns
2efcccf981 Add a server side export facility 2015-12-16 15:01:13 -08:00
k8s-merge-robot
266ab4a796 Merge pull request #18487 from smarterclayton/guard_encode_decode
Auto commit by PR queue bot
2015-12-13 23:08:18 -08:00
k8s-merge-robot
c458cd7bb7 Merge pull request #18379 from deads2k/gv-newobject
Auto commit by PR queue bot
2015-12-13 13:33:16 -08:00
Jeff Lowdermilk
f6686ba3a4 Merge pull request #18290 from wojtek-t/fast_namespace_deletion
Support collection deletion in apiserver.
2015-12-11 13:34:56 -08:00
k8s-merge-robot
0bf11d89cf Merge pull request #18277 from wojtek-t/better_traces
Auto commit by PR queue bot
2015-12-10 09:56:13 -08:00
Wojciech Tyczynski
f28bb68d8c Support collection deletion in apiserver. 2015-12-10 09:46:25 +01:00
Clayton Coleman
1e21054134 Hide common codec methods under helpers
The pending codec -> conversion split changes the signature of
Encode and Decode to be more complicated. Create a stub helper
with the exact semantics of today and do the simple mechanical
refactor here to reduce the cost of that change.
2015-12-09 21:15:02 -05:00
deads2k
519b4e80d1 update NewObject for groupversionkind 2015-12-09 08:13:15 -05:00
k8s-merge-robot
ec1ba7438f Merge pull request #17796 from deads2k/gv-object-typer
Auto commit by PR queue bot
2015-12-07 12:34:55 -08:00
deads2k
3f045cf168 udpate admission for API groups 2015-12-07 08:55:01 -05:00
deads2k
f764e0099c Update ObjectTyper to GroupVersion 2015-12-07 08:35:05 -05:00
Wojciech Tyczynski
788218d7bb Better traces for api calls. 2015-12-07 09:15:54 +01:00
Wojciech Tyczynski
0736d5c893 Better traces in list operations. 2015-12-03 09:16:37 +01:00
deads2k
a7dd09ec47 update requestScope to fully qualify kind and resource 2015-12-01 16:50:24 -05:00
deads2k
e0b7f52633 hack up queryToObject to continue to work as it used to 2015-11-25 12:14:06 -05:00
deads2k
68b0572974 internal versions 2015-11-25 12:14:06 -05:00
deads2k
6231404682 update decoder to use GroupVersion 2015-11-25 12:14:06 -05:00
Wojciech Tyczynski
bf13bef955 Use unversioned.ListOptions in API server. 2015-11-24 14:42:21 +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
feihujiang
ad79fa6e84 Move list functions from runtime to meta package 2015-11-20 09:20:55 +08:00
Wojciech Tyczynski
d7b098b0e9 Add DecodeParametersInto method to Codec. 2015-11-18 09:56:04 +01:00
Wojciech Tyczynski
9c53f301f1 Merge selectors with ListOptions. 2015-10-29 15:42:57 +01:00
Wojciech Tyczynski
aa30e38183 Pass resource version to storage List operation. 2015-10-27 10:03:58 +01:00
Wojciech Tyczynski
f4d75e0a0a Support timeout in watch requests 2015-10-24 13:12:49 +02:00
Clayton Coleman
d4cdabf2fc Connect should be passed a Responder interface
For connect handlers that need to respond with a structured error or
structured object, pass an interface that hides the details of writing
an object to the response (error or runtime.Object).

Example use case:

Connect handler that accepts a body input stream, which it streams to a
pod, and then returns a structured object with info about the pod it
just created.
2015-10-13 15:05:14 -04:00