Commit Graph

113 Commits (667f5860835d34d3be65a57eb1011154d8287cca)

Author SHA1 Message Date
Satnam Singh 1d7f70a531 Merge pull request #9991 from nikhiljindal/dupPost
Do not register cross namespace actions with subresources in path
2015-06-18 15:33:37 -07:00
Satnam Singh de457c3e49 Merge pull request #9962 from smarterclayton/type_patch
Give PATCH operations a better output in Swagger
2015-06-18 14:31:49 -07:00
nikhiljindal d3d579f59d Do not register cross namespace actions with subresources in path 2015-06-18 13:50:38 -07:00
Clayton Coleman debd42a07d Cleaning up apiserver method signatures
A lot of the changes in apiserver could have been represented more
cleanly - this returns the signatures to their older behavior (and
unbreaks OpenShift).
2015-06-18 15:13:41 -04:00
derekwaynecarr fce7adf3e7 Admission control exposes subresource 2015-06-18 15:00:46 -04:00
nikhiljindal b527b00d7b Fix path parameter swagger validation errors 2015-06-18 10:43:13 -07:00
Clayton Coleman 93f921b677 Swagger output for PATCH can be more strongly typed 2015-06-18 13:04:20 -04:00
Saad Ali 9ca9e43625 Merge pull request #9600 from liggitt/remove_namespace_param
Remove ?namespace= param handling/defaulting
2015-06-17 18:07:13 -07:00
Saad Ali 2a228bf45e Merge pull request #9898 from nikhiljindal/trace
Stop supporting TRACE proxy requests
2015-06-17 15:55:03 -07:00
Jordan Liggitt a341b8f44f Remove ?namespace= param handling/defaulting 2015-06-16 22:40:01 -04:00
nikhiljindal 34a0bccd2e Stop supporting TRACE proxy requests 2015-06-16 14:07:40 -07:00
Brendan Burns 07b5930a70 Remove the redirect verb. 2015-06-15 15:39:06 -07:00
nikhiljindal 784e408ab4 Adding subresource to swagger route docs 2015-06-09 10:20:45 -07:00
Brendan Burns b68ddbaf75 Don't pretty-print by default. Saves an allocation (or more) and a copy. 2015-06-08 21:31:58 -07:00
Brendan Burns 30a89968a4 Initial proxy tunnelling. 2015-06-05 14:54:20 -07:00
Prashanth Balasubramanian 448867073d Pipe minRequestTimeout as an arg to the apiserver 2015-06-03 08:44:14 -07:00
Cesar Wong 328b1d0817 Add admission control to the Connect method in the API Server
The resource passed to admission control is a ConnectRequest object
which includes additional information about the current request.
2015-05-21 13:54:45 -04:00
Clayton Coleman ecbca9eb17 Allow v1beta3 to POST events to all namespaces
A namespaced resource that supports ALL may allow creation
on the root (all namespaces) collection, thus adding POST
here.

We need to better formalize the definition of calls on namespaced
resources at the root scope, so Storage objects that do not support
that call pattern can do so at definition time and reject those
calls.
2015-05-11 15:51:05 -04:00
Clayton Coleman 84d1f19016 Subresources should be in their parent rest scope
A subresource like "Binding" does not necessarily have
to have a namespace.  The RESTScope of a subresource
should always be its parent resource.
2015-05-11 15:51:05 -04:00
Clayton Coleman b2a2ce0bb3 Legacy scope naming should NEVER set namespace for root
... resources.
2015-05-11 15:51:04 -04:00
Satnam Singh 220e754f3e Make the API server deal with HEAD requests 2015-05-08 10:33:51 -07:00
Cesar Wong fd65427e28 API Server - pass path name in context of create request for subresource
Allows a REST storage for a subresource to obtain name in path from
request.
2015-05-06 13:40:18 -04: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
Cesar Wong 49abf9133e Add Connecter storage interface to API server
Connecter is a type of resource that connects a request
coming from the client to an internal request within the cluster.
It will be used for exposing a pod's proxy, exec, and portforward
endpoints.
2015-04-16 10:20:17 -04:00
Clayton Coleman 0225d76b6a Support subpath on GET for GetterWithOptions
Allows REST consumers to build paths like:

    /api/v1beta3/namespaces/foo/webhookresource/<name>/<encodedsecretinurl>

Also fixes parameter exposure for subresources (was only fixed for
v1beta3).
2015-04-11 11:20:13 -04:00
Brendan Burns 8694f6f550 Add return types to PUT, POST and PATCH methods.
Also add return types for proxy and redirect handlers.
2015-04-09 20:17:05 -07:00
Clayton Coleman 7a6b2ec227 Improve the output of the swagger API for watch events
Stopgap to improve this prior to converting watch resources to
versioned objects.
2015-04-07 10:46:19 -04:00
Cesar Wong efc7f86baf Add GetterWithOptions and allow stream flushing
In addition to Getter interface, API Installer now supports a
GetterWithOptions interface that takes an additional options object when
getting a resource. A flag is now returned from rest.ResourceStreamer
that indicates whether the streamed response should be
flushed when written back to the client. This is to support log
streaming.
2015-04-07 07:46:30 -04:00
Brian Grant 9d9948e3a8 Change "time/Time" to "util.Time", which is what we use in our API for time. 2015-04-06 18:56:56 +00:00
Sam Ghods 2c977db1b3 Implement Strategic Merge Patch in apiserver 2015-04-03 11:51:02 -07:00
derekwaynecarr 265a0e3ca4 Listing items in a namespace should always include the namespace in the URL 2015-03-30 16:05:40 -04:00
Brendan Burns ee0d71aac6 Fix up parameter handling. Also handle type mapping between Go and JSON 2015-03-27 21:43:16 -07:00
Brendan Burns d70d2d20cd Add params for the proxy when installing the API. 2015-03-27 21:43:16 -07:00
Clayton Coleman 870da687d0 Add more extensive tests to apiserver for variations in version
Formalize v1beta1 and v1beta3 style APIs in our test cases.
2015-03-27 15:03:58 -04:00
Clayton Coleman eb0eff69fe Move watch to being a resthandler resource and expose it on LIST
GET /pods?watch=true&resourceVersion=10

will now function equivalent to GET /watch/pods.
2015-03-27 15:03:58 -04: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
Clayton Coleman fc3609fb5b Allow InputStreams to be returned by requests
Add additional metadata to restful services.
2015-03-24 17:25:45 -04:00
Clayton Coleman d46087db50 Move REST* interfaces into pkg/api/rest
Dependency chain is now api -> api/rest -> apiserver.  Makes the
interfaces much cleaner to read, and cleans up some inconsistenties
that crept in along the way.
2015-03-23 16:52:21 -04:00
Clayton Coleman 428d2263e5 Graceful deletion of resources
This commit adds support to core resources to enable deferred deletion
of resources.  Clients may optionally specify a time period after which
resources must be deleted via an object sent with their DELETE. That
object may define an optional grace period in seconds, or allow the
default "preferred" value for a resource to be used. Once the object
is marked as pending deletion, the deletionTimestamp field will be set
and an etcd TTL will be in place.

Clients should assume resources that have deletionTimestamp set will
be deleted at some point in the future.  Other changes will come later
to enable graceful deletion on a per resource basis.
2015-03-19 15:33:32 -04:00
Brendan Burns 4725ecac3f Set the emptyNameError to be a bad request. Always return a JSON error. 2015-03-17 16:17:14 -07:00
nikhiljindal 5b1e8589e9 Updating api_installer to register paths in a deterministic order to get a deterministic swagger spec 2015-03-12 22:55:17 -07:00
Mike Danese 46ec580771 add PATCH to apiserver 2015-03-10 10:56:15 -07:00
Clayton Coleman 4b16a87096 Simplify api_installer and setup methods 2015-03-09 14:39:31 -04:00
Brendan Burns 2700871b04 Merge pull request #5013 from smarterclayton/misc_fixup
Small cleanups to a number of client behaviors
2015-03-06 15:41:34 +01:00
Victor Marmol 5d919d6935 Specified that PUT is a replace and not an update.
Fixes #3112.
2015-03-04 17:02:42 -08:00
Clayton Coleman 3beea3b660 Skip types that are not registered on an API version 2015-03-03 21:14:57 -05:00
Brian Grant fca9fd68c7 Merge pull request #4779 from smarterclayton/status_endpoints
Minimal status mutation change
2015-03-03 11:00:02 -08:00
Daniel Smith c4822dc060 Revert "Revert "Adding converter functions to convert field label selectors to internal version before matching""
This reverts commit 5f35a67002.
2015-03-02 15:00:09 -08:00
Clayton Coleman 3d290089ae Minimal status mutation change
PUT /api/v1beta3/namespaces/default/pods/foo/status
    {
      "metadata": {...}, // allowed for valid values
      "spec": {}, // ignored
      "status": {...}, // allowed, except for Host
    }

Exposes the simplest possibly change. Needs a slight refactoring
to RESTUpdateStrategy to split merging which can be done in a
follow up.
2015-03-01 22:35:17 -05:00
Zach Loafman 5f35a67002 Revert "Adding converter functions to convert field label selectors to internal version before matching" 2015-02-28 11:42:49 -08:00
nikhiljindal 48e7945f65 Versioning the field selectors 2015-02-27 16:10:59 -08:00
nikhiljindal 905a3f7909 Updating the handlers to accept full request path rather than a trimmed one 2015-02-24 00:37:20 -08:00
Daniel Smith 5b96a454d2 clean up rest installation code a little 2015-02-19 13:26:27 -08:00
Clayton Coleman 9175082a1c Split naming behavior out into objects that are derived from the request
Fix bug with cross namespace queries not being possible.  Ensure selflink
is set on lists correctly.
2015-02-16 00:23:38 -05:00
Jordan Liggitt 083ce268e0 Put user in context, map requests to context above resthandler layer 2015-02-12 20:58:04 -05:00
Clayton Coleman e6fdac1365 Return an error when names are empty 2015-02-12 09:45:13 -05:00
Clayton Coleman 8f6e3607a9 Add monitoring as a filter 2015-02-11 17:07:23 -05:00
Clayton Coleman d167c11b59 Remove layers of indirection between apiinstaller and resthandler
Make the RESTHandler feel more go-restful, set the stage for adding
new types of subresource collections.
2015-02-11 16:26:06 -05:00
Victor Marmol 535502ead6 Merge pull request #4272 from a-robinson/metrics
Basic initial instrumentation of the apiserver
2015-02-10 14:58:14 -08:00
Alex Robinson 2463cff79c Basic initial instrumentation of the apiserver. This links in the
prometheus library for monitoring, which exports some basic resource
usage metrics by default, like number of goroutines, open file
descriptors, resident and virtual memory, etc. I've also started adding
in request counters and latency histograms, but have only added them to two
of our HTTP handlers. If this looks reasonable, I'll add them to the rest
in a second PR.
2015-02-10 20:44:28 +00:00
Andy Goldstein 4f89ed9d6a Allow proxying to a resource at /
Add a route for /proxy/<kind>/<name>/ without requiring additional path
information. This allows for e.g. /proxy/service/myservice/, which will
proxy to the service at /, instead of always requiring something in the
path.
2015-02-10 10:04:40 -05:00
deads2k 1c9216a45e clarify api request information 2015-02-04 13:36:01 -05:00
nikhiljindal 18609e1706 Moving /watch, /proxy and /redirect registration to go-restful 2015-02-03 15:47:48 -08:00