Commit Graph

744 Commits

Author SHA1 Message Date
nikhiljindal
2f946b7aee Stop allowing unnamespaced POST for namespaced objects 2015-07-24 12:03:19 -07:00
Tim Hockin
1c3233a1d4 Remove v1beta3 2015-07-23 17:21:27 -07:00
Eric Tune
d7a0bb4020 Merge pull request #11258 from nikhiljindal/dupNickname
Add namespace to swagger nicknames to prevent duplicate nicknames
2015-07-15 16:42:59 -07:00
Brendan Burns
25d3834b74 Add monitoring and healthz based on tunnel health. 2015-07-14 14:37:38 -07:00
nikhiljindal
dda71bdc7b Add namespace to nickname to prevent dup swagger nicknames 2015-07-14 13:41:13 -07:00
Kris Rousey
1d033b9912 Adding proper timeouts. 2015-07-10 14:42:59 -07:00
Yu-Ju Hong
7b55cbb0bd Merge pull request #10569 from yifan-gu/authn
apiservier: avoid stacktracing when http.StatusUnauthorized.
2015-07-06 15:05:12 -07:00
Yifan Gu
b30e77c1b3 apiservier: avoid stacktracing for StatusUnauthorized and StatusForbidden. 2015-07-01 14:41:52 -07:00
Zach Loafman
9a5891dc89 Merge pull request #10391 from wojtek-t/longer_metrics
Increase the length of sliding window for latency metrics
2015-06-30 16:04:53 -07:00
Mike Danese
5a48eee611 bug: fix possible nil pointer derefrence in test 2015-06-29 20:34:26 -07:00
Wojciech Tyczynski
4c4d59a236 Increase the length of sliding window for latency metrics 2015-06-26 13:08:21 +02:00
Maxwell Forbes
5e748c1d47 Merge pull request #10070 from lavalamp/e2eProxyFix
proxy e2e test improvements
2015-06-25 13:15:03 -07:00
Maxwell Forbes
fc349fdd47 Merge pull request #10060 from nikhiljindal/scopeParamPath
Updating the path param name to "namespace" instead of "namespaces"
2015-06-25 09:56:15 -07:00
Daniel Smith
ddbe4c914f Fix proxy rewriting 2015-06-24 13:54:14 -07:00
nikhiljindal
6c6398edaa Update the path param name to namespace instead of namespaces 2015-06-24 13:45:49 -07:00
Brendan Burns
f4e97be78e Switch to using the official etcd health check. 2015-06-24 10:18:39 -07:00
Jeff Lowdermilk
50e67d4034 Merge pull request #10216 from wojtek-t/reset_metrics
Expose /resetMetrics handle in apiserver
2015-06-23 16:07:41 -07:00
derekwaynecarr
f6fb72ec51 Admission control attributes has access to resource name 2015-06-23 13:54:55 -04:00
Wojciech Tyczynski
23d405ad86 Expose /resetMetrics handle in apiserver 2015-06-23 11:12:45 +02:00
Jeff Lowdermilk
0c7fbacfb1 Merge pull request #10052 from derekwaynecarr/admission_subresources
Admission control exposes subresource
2015-06-22 13:11:58 -07:00
Clayton Coleman
83f84a9821 OPTIONS should be passed through the proxy 2015-06-19 14:30:27 -04:00
Satnam Singh
28197e07d6 Merge pull request #9841 from smarterclayton/fix_apiserver_abstractions
Cleaning up apiserver method signatures
2015-06-18 15:36:52 -07:00
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
Satnam Singh
59876df736 Merge pull request #9927 from liggitt/fix_ecdsa_key
Re-enable ECDSA private server key use
2015-06-18 14:30:27 -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
64d61185eb Re-enable ECDSA private server key use 2015-06-16 23:03:29 -04:00
Jordan Liggitt
a341b8f44f Remove ?namespace= param handling/defaulting 2015-06-16 22:40:01 -04:00
Saad Ali
0aae358d2d Merge pull request #9835 from caesarxuchao/remove-testapi-nsQuery
Update pkg/api/testapi because namespace is always in the path now
2015-06-16 14:54:36 -07:00
Chao Xu
a309d3e652 Update pkg/api/testapi because namespace is always in the path since we remove v1beta1/2 2015-06-16 14:12:03 -07: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
7ea533d871 Add the SSHTunnel transport to the kubelet client. 2015-06-05 14:55:15 -07:00
Brendan Burns
30a89968a4 Initial proxy tunnelling. 2015-06-05 14:54:20 -07:00
Brendan Burns
631cf34d40 Add tunnelling to the proxy API handler. 2015-06-05 14:54:20 -07:00
nikhiljindal
7cc50448e3 Updating StatusDetails.ID to Name in internal API 2015-06-05 07:17:02 -07:00
Chao Xu
6b81c064ed change v1beta3 to v1 in test cases 2015-06-03 17:50:22 -07:00
Prashanth Balasubramanian
0162529ea5 Default minRequestTimeout to 1800s 2015-06-03 08:47:45 -07:00
Prashanth Balasubramanian
448867073d Pipe minRequestTimeout as an arg to the apiserver 2015-06-03 08:44:14 -07:00
Brian Grant
55529d9256 Merge pull request #7153 from xiang90/apiserver
minor cleanup for apiserver/errors.go
2015-06-02 10:37:36 -07:00
Kris
f4e2c738f6 Delete deprecated API versions
pkg/service:

There were a couple of references here just as a reminder to change the
behavior of findPort. As of v1beta3, TargetPort was always defaulted, so
we could remove findDefaultPort and related tests.

pkg/apiserver:

The tests were using versioned API codecs for some of their encoding
tests. Necessary API types had to be written and registered with the
fake versioned codecs.

pkg/kubectl:

Some tests were converted to current versions where it made sense.
2015-05-29 17:17:35 -07:00
Tim Hockin
9e486be743 Merge pull request #8795 from a-robinson/latency
Remove the clientID field from the apiserver request latency metric
2015-05-28 16:55:11 -07:00
CJ Cullen
36d54b2094 Remove /Validate endpoint 2015-05-26 10:49:18 -07:00
Alex Robinson
0339f68273 Remove the clientID field from the apiserver request latency metric. 2015-05-25 20:31:25 -07:00
Prashanth Balasubramanian
8a5445d3db Randomize apiserver watch timeouts 2015-05-21 20:52:33 -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
Cesar Wong
68ad63b5e2 Add operation checking to admission control handlers
Adds a new method to the handler interface that returns true only if the
admission control handler handles that operation.
2015-05-21 13:51:43 -04:00
Clayton Coleman
3b10d82864 Merge pull request #8391 from liggitt/etcd_token_lookup
Make serviceaccount/token lookup more flexible
2015-05-18 11:08:30 -04:00
Jordan Liggitt
d90e7409e4 Prevent auth recursion for service account tokens 2015-05-16 23:39:07 -04:00
Paul Weil
aaeb1dad93 expose user info to admission controllers 2015-05-13 21:31:51 -04:00
Nikhil Jindal
d75bd8bf2a Merge pull request #7101 from liggitt/service_account
ServiceAccounts
2015-05-12 10:23:41 -07:00
Jordan Liggitt
db1f0dc906 JWT token generation/verification 2015-05-11 17:18:06 -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
Fabio Yeon
45f85dbf06 Merge pull request #7404 from nikhiljindal/handleIndex
Updating handleIndex to return 404 for invalid server URL
2015-04-28 15:51:04 -07:00
Robert Bailey
6d85dcb4a0 Add support for HTTP basic auth to the kube-apiserver. 2015-04-28 10:33:51 -07:00
Filip Grzadkowski
c1c24f645c Add summary metrics to apiserver for easier debugging and future use in performance tests 2015-04-28 14:27:18 +02:00
nikhiljindal
f864195a5b Returning 404 on invalid server URL 2015-04-27 16:15:52 -07:00
Eric Tune
8a76cbf3d0 Merge pull request #7293 from ashcrow/apiserver_authz_tests
Added basic apiserver authz tests.
2015-04-24 13:05:45 -07:00
Steve Milner
1acbfba576 Added basic apiserver authz tests. 2015-04-24 14:38:34 -04:00
Brian Grant
60d7bad147 Merge pull request #7128 from nikhiljindal/fixbeta1tests
Removing more references to v1beta1 from pkg/
2015-04-24 11:07:53 -07:00
Masahiro Sano
7c371ee36e lower log level on recovering from panic 2015-04-24 22:09:14 +09:00
Wojciech Tyczynski
159a58ddfb Merge pull request #7169 from fgrzadkowski/requests_by_clients
Break request metrics in apiserver by client.
2015-04-24 13:37:50 +02:00
Filip Grzadkowski
8b755c805b Break request metrics in apiserver by client. 2015-04-24 13:16:14 +02:00
nikhiljindal
dcc368c781 Removing more references to v1beta1 from pkg/ 2015-04-24 00:45:17 -07:00
David Oppenheimer
ee11832d71 Merge pull request #7263 from lavalamp/fix4
fix watch of single object
2015-04-23 17:09:59 -07:00
Daniel Smith
2fa3ae9f15 fix watch of single object 2015-04-23 16:02:22 -07:00
nikhiljindal
120904df5f Fixing serviceErrorHandler to use apiVersion specific codec 2015-04-23 14:32:05 -07:00
Xiang Li
fb3c8f9452 pkg/apiserver: minor cleanup for errToAPIStatus() 2015-04-22 10:44:03 -07:00
Xiang Li
405ebf4b1e pkg/apiserver: use httpError in handlers.go 2015-04-21 23:05:56 -07:00
Fabio Yeon
c6ef2ddf8a Fix "validate-cluster.sh" to use "kubectl get componentstatus". 2015-04-17 11:59:53 -07:00
Fabio Yeon
951a125751 Add "componentstatus" to API for easier cluster health check. 2015-04-17 11:58:23 -07:00
Clayton Coleman
b3f03b934d Merge pull request #6869 from csrwng/pod_connect
Pod proxy, portforward and exec subresources
2015-04-17 09:49:12 -04:00
Wojciech Tyczynski
fafcf79d5d Allow more retries in density test 2015-04-17 12:35:56 +02:00
Daniel Smith
636d0682d7 Merge pull request #6830 from derekwaynecarr/improve_error_msg
Improve error message when name is omitted but generateName is available
2015-04-16 17:21:43 -07:00
Brian Grant
a927c239fe Merge pull request #6881 from nikhiljindal/errHandle
Registering a serviceErrorHandler with go-restful to always return JSON responses
2015-04-16 16:44:17 -07:00
nikhiljindal
f9132dc572 Registering serviceErrorHandler with go-restful 2015-04-16 14:59:44 -07:00
Cesar Wong
e09b8c99dc Add URL parameters to proxy redirect Location header
When a URL that doesn't end in "/" is sent to the API proxy,
the proxy responds with a redirect to the URL with a "/" at the
end. The problem is that this redirect path does not include
query parameters that were passed in the original request. This
is a fix to that issue.
2015-04-16 17:57:45 -04:00
derekwaynecarr
81dcd8c836 Improve error message when name is omitted but generateName is available 2015-04-16 13:06:19 -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
Cesar Wong
a3f5dfd0e2 Move proxy html transport to utility package
Moves the proxy html transport that translates html links
from the proxy in apiserver to its own package under util.
2015-04-16 10:20:17 -04:00
David Oppenheimer
6b28a69a1b Clarify comments describing how GuaranteedUpdate() (previously AtomicUpdate() works. Closes #6626. 2015-04-14 15:38:15 -07:00
Nikhil Jindal
60f0c28fd4 Merge pull request #6725 from smarterclayton/support_subpath_on_getter_with_options
Allow subpath on GET for GetterWithOptions
2015-04-13 11:27:41 -07:00
Clayton Coleman
0c8a358de0 Merge pull request #6683 from deads2k/deads-handle-subresources
add support for authorizing subresources
2015-04-13 13:53:54 -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
deads2k
c17ffb7c4c comments 1: comments 2015-04-10 15:39:20 -04:00
deads2k
72817a0801 add support for authorizing subresources 2015-04-10 12:42:52 -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
Brian Grant
0d95883593 Merge pull request #6027 from ghodss/kube-patch
Implement Strategic Merge Patch in apiserver
2015-04-03 15:08:51 -07:00
Eric Tune
e49424785e Merge pull request #6380 from roberthbailey/kubelet-ssl
Configure the kubelet to use HTTPS (take 2)
2015-04-03 13:43:00 -07:00
Sam Ghods
2c977db1b3 Implement Strategic Merge Patch in apiserver 2015-04-03 11:51:02 -07:00
Prashanth B
3fe4224b6c Merge pull request #6314 from bparees/tokenbucket
add a blocking accept method to RateLimiter
2015-04-02 16:01:17 -07:00
Quinton Hoole
4a2000c4aa Merge pull request #6207 from brendandburns/server
Add a limit to the number of in-flight requests that a server processes.
2015-04-02 15:46:54 -07:00
Ben Parees
70be667cf8 add a blocking accept method to RateLimiter 2015-04-02 14:33:18 -04:00
Robert Bailey
f15e34a1bf Revert "Merge pull request #6309 from GoogleCloudPlatform/revert-6243-kubelet-ssl"
This reverts commit 96a0a0d618, reversing
changes made to 2af9b54147.
2015-04-02 10:44:37 -07:00
CJ Cullen
eca22d4c82 Fix off-by-one crash in pkg/apiserver/authn.go 2015-04-01 15:53:22 -07:00
Brendan Burns
f327e97661 Add a limit to the number of in-flight requests that a server processes. 2015-04-01 15:06:15 -07:00
Robert Bailey
22d9c67cb7 Merge pull request #6190 from liggitt/client_cert_auth
Add client cert authentication
2015-04-01 14:11:29 -07:00
Robert Bailey
32a1c052dc Revert "Configure the kubelet to use HTTPS" 2015-04-01 13:59:31 -07:00
Jordan Liggitt
c797a91e36 Add client cert authentication 2015-04-01 13:42:26 -04:00
Robert Bailey
58bc792e68 Configure the master to connect to the kubelet using HTTPS. 2015-04-01 09:09:29 -07:00
Kris Rousey
6904c4d585 Fixing a lot of string formatting issues with regards to:
* Improper format specifier (e.g. %s for bools or %s for ints)
  * More or less parameters than format specifiers
  * Not calling a formatting function when it should have (e.g. Error() instead of Errorf())
2015-03-31 16:47:10 -07:00
Daniel Smith
83d5c207c9 Merge pull request #6175 from nikhiljindal/proxy
Updating proxy to return 301 to add a "/" at the end for #4958 (attempt 2)
2015-03-30 15:21:46 -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
nikhiljindal
4c4a084a92 Updating proxy to return 301 to add a / at the end 2015-03-30 12:12:49 -07: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
Daniel Smith
93a82c30d9 Revert "Updating proxy to return 301 to add a "/" at the end for #4958" 2015-03-27 15:59:40 -07:00
Daniel Smith
d137e7b62d Merge pull request #6048 from nikhiljindal/proxy
Updating proxy to return 301 to add a "/" at the end for #4958
2015-03-27 15:49:10 -07:00
Brian Grant
f0da47b2dd Merge pull request #5763 from smarterclayton/get_input_parameters_versioned
Expose versioned query parameters and make watch an operation on List
2015-03-27 14:35:23 -07:00
nikhiljindal
2fff606a6f Updating proxy to return 301 to add a / at the end 2015-03-27 14:29:18 -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
30358e8b04 Add more specific error handling and handle generic errors more effectively
The client library should type more generic errors from the server.
2015-03-26 17:30:13 -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
Jordan Liggitt
a75b501821 Improve ResourceLocation API, allow proxy to use authenticated transport 2015-03-24 11:11:34 -04:00
Wojciech Tyczynski
f7191d626d Change "/ns" to "/namespaces" in few remaining places. 2015-03-24 13:05:32 +01: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
6d763dce2b start normalizing error handling in watch. 2015-03-17 21:04:55 -07: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
Brian Grant
2f9a41b898 Merge pull request #5233 from brendandburns/labels
Make label and field selector query strings versionable.
2015-03-16 16:01:37 -07:00
Piotr Szczesniak
ffcf7b1866 Increased default timeout in APIServer to 2 minutes
This should for #5431
2015-03-14 06:54:31 +01:00
Rohit Jnagal
203f37a58a Merge pull request #5240 from xudifsd/rm-double-write-in-apiserver-proxy
Redirector.ResourceLocation shouldn't return `"", nil`
2015-03-13 09:20:46 -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
Di Xu
3fac253536 Redirector.ResourceLocation shouldn't return "", nil 2015-03-13 08:26:46 +08:00
Brendan Burns
266234f3b9 Make label and field selector query strings versionable. 2015-03-12 12:24:07 -07:00
Wojciech Tyczynski
9f2f10d6db Make scheduler to watch PodSpec.Host instead Status.Host 2015-03-12 13:38:58 +01:00
Daniel Smith
cc3a433a7a fix goroutine leak 2015-03-11 12:51:20 -07:00
Salvatore Dario Minonne
925fa6baf8 Adding fields selector 2015-03-10 22:13:10 +01:00
Brian Grant
7aa060bae7 Merge pull request #4706 from mikedanese/PATCH
add PATCH verb to apiserver
2015-03-10 11:38:22 -07:00
Mike Danese
46ec580771 add PATCH to apiserver 2015-03-10 10:56:15 -07:00
Brendan Burns
5b3b330bb8 Switch some parse errors to return HTTP 400 instead of the default (500) 2015-03-09 20:42:14 -07:00
Brian Grant
7b72d9539f Merge pull request #5054 from smarterclayton/switch_to_sub_bindings
Make Pod binding a subresource (and be generic to other types)
2015-03-09 16:41:26 -07:00
Clayton Coleman
4b16a87096 Simplify api_installer and setup methods 2015-03-09 14:39:31 -04:00
Brendan Burns
7c654a3d1b Expand test coverage in master, kubectl/cmd/util, pkg/registry/resourcequota, and api/rest. 2015-03-07 15:24:39 -08:00
Daniel Smith
05ea93f985 Merge pull request #5147 from a-robinson/func
Re-add the defer statements around the monitor() calls in the apiserver.
2015-03-06 15:31:45 -08:00
Alex Robinson
60f0e9d673 Fix the broken calls to the monitor() by having it take arguments as pointers.
This is needed for the changes to various labels from later in the function
to be picked up.
2015-03-06 23:16:44 +00: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
Salvatore Dario Minonne
75f2efb500 moving ParseSelector to Parse for labels only. 2015-03-05 22:39:36 +01:00
Brian Grant
58a9045f75 Merge pull request #5081 from vmarmol/put
Specified that PUT is a replace and not an update.
2015-03-05 10:32:55 -08:00
Victor Marmol
5d919d6935 Specified that PUT is a replace and not an update.
Fixes #3112.
2015-03-04 17:02:42 -08:00
Satnam Singh
123ca7de53 Specify HTTP for REDIRECT 2015-03-04 16:37:15 -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
Alex Robinson
0d5fe5d078 Use a prometheus Histogram rather than a Summary for tracking apiserver latency. 2015-03-02 02:15:16 +00: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
Daniel Smith
ec58e6d78e use correct path for proxy replacements 2015-02-24 10:10:06 -08:00
Daniel Smith
78d05e5307 add URL path generation function 2015-02-24 10:10:04 -08:00
Daniel Smith
2d56547524 refactor proxy upgrade path 2015-02-24 10:10:02 -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
Andy Goldstein
44d41a0f1b Move golang code to third_party 2015-02-20 20:00:31 -05:00
Andy Goldstein
5bd0e9ab05 Add streaming command execution & port forwarding
Add streaming command execution & port forwarding via HTTP connection
upgrades (currently using SPDY).
2015-02-20 09:57:02 -05:00
Daniel Smith
5b96a454d2 clean up rest installation code a little 2015-02-19 13:26:27 -08:00
Daniel Smith
ca5a73ac6b remove redundant func() 2015-02-17 15:58:18 -08:00
Brian Grant
876d651737 Merge pull request #4395 from smarterclayton/split_naming
Fix cross-namespace LIST and WATCH
2015-02-17 09:40:09 -08:00
deads2k
3be343449f expose creation APIRequestInfoResolver 2015-02-16 13:56:03 -05: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
Clayton Coleman
c977a45864 Merge pull request #4419 from smarterclayton/expand_generic_resources
Expand the generic registry
2015-02-13 13:53:20 -05:00
Clayton Coleman
78385b1230 Set 201 when RESTCreater returns a simple api.Status object 2015-02-13 12:12:50 -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
c24f4a24b4 Rename TryAgainLater status code to ServerTimeout 2015-02-12 15:01:12 -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
79cb93002e Remove asynchronous channel on RESTStorage interfaces 2015-02-11 16:26:07 -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
derekwaynecarr
7b34d6ef8e The namespace context for a get of an individual namespace is the namespace 2015-02-11 16:06:51 -05:00
Alex Robinson
ab62b689a5 Add monitoring instrumentation for the remaining HTTP handlers in the apiserver. 2015-02-10 23:19:49 +00: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
d39262d743 Consolidate the prometheus Counters into a shared CounterVec and remove
the "code" label from the latencies SummaryVec.
2015-02-10 22:47:56 +00:00
Clayton Coleman
06656efe62 Merge pull request #4283 from ncdc/allow-proxy-to-resource-root-path
Allow proxying to a resource at /
2015-02-10 17:45:31 -05: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
derekwaynecarr
0bd0e12bbc Add support for Namespace as Kind
Add example for using namespaces
2015-02-10 09:50:50 -05:00
Mike Danese
14bfec92f2 rename probe.Status to probe.Result. 2015-02-05 15:49:58 -08:00
nikhiljindal
19f7ecf31b Deleting the API objects related to /operations 2015-02-04 20:50:45 -08:00
deads2k
8a2fe9bd2b modify policy to correctly identify resource versus kind 2015-02-04 13:36:01 -05:00
deads2k
1c9216a45e clarify api request information 2015-02-04 13:36:01 -05:00
Brendan Burns
65e4964bc2 Merge pull request #4087 from enisoc/apiserver-proxy-redirect
Rewrite "Location" header in apiserver proxy.
2015-02-04 09:33:34 -08:00
nikhiljindal
18609e1706 Moving /watch, /proxy and /redirect registration to go-restful 2015-02-03 15:47:48 -08:00
Anthony Yeh
6a0dec0e99 Rewrite "Location" header in apiserver proxy.
So that redirects work correctly.
2015-02-03 15:14:28 -08:00
Clayton Coleman
9263a8f627 Remove logging on apiserver startup
Now that we return errors on startup there's not much value in the
startup log for anyone except a few developers.  Nuke
2015-02-03 00:02:07 -05:00
Anthony Yeh
695b08885b Fix apiserver proxy path rewriting.
1) Absolute paths without a hostname were being rewritten relative to
   the current page, rather than relative to the current host.
   e.g. When viewing /some/page.html, it would rewrite:
       /other/page.html => proxyPrepend/some/other/page.html
   Instead, it should rewrite:
       /other/page.html => proxyPrepend/other/page.html

2) Trailing slashes were being stripped from all rewritten URLs.
   This is because path.Join() always calls path.Clean() as well:
   http://golang.org/pkg/path/#Join
2015-02-02 13:01:46 -08:00
derekwaynecarr
22ceccc188 Fix TestUnimplementedRESTStorage 2015-02-02 10:26:19 -05:00
derekwaynecarr
a216cb747c Fix logic issue in register resource handlers not doing list across all namespaces in v1beta3 2015-02-02 10:26:19 -05:00
derekwaynecarr
4c33e36a88 Plumb restmapper properly through apiserver and tests 2015-02-02 10:26:19 -05:00
derekwaynecarr
71ec444d63 Make a RESTMapper scope aware 2015-02-02 10:26:19 -05:00
Satnam Singh
d8bda4006a Increase API rate limit on read only port of apiserver 2015-01-30 11:58:59 -08:00
nikhiljindal
dc92d3c7a2 Cleaning up the operations code in client 2015-01-28 21:04:16 -08:00
Brian Grant
fcb1cd30ff Merge pull request #3891 from nikhiljindal/Operation
Deleting OperationHandler for handling /operation endpoint on server
2015-01-28 17:01:37 -08:00
Satnam Singh
5d5752374b Set Retry-After header before calling WriteHeader 2015-01-28 14:28:37 -08:00
nikhiljindal
521728e920 Deleting OperationHandler for handling /operation endpoint on server 2015-01-28 13:13:10 -08:00
Tim Hockin
c8f61885df Merge pull request #3695 from mikedanese/ready
refactor pkg/health into more reusable pkg/probe
2015-01-28 11:00:32 -08:00
Clayton Coleman
5117189e03 Merge pull request #3707 from nikhiljindal/preOperations
Removing support for asynchronous server requests
2015-01-28 13:02:52 -05:00
deads2k
6e1f680a57 return all errors from RESTStorage registration 2015-01-28 10:31:33 -05:00
nikhiljindal
de60600608 Making all operations synchronous 2015-01-27 18:47:56 -08:00
Satnam Singh
3a9e6d8f29 Switch to use Too Many Requests response code
Name the 429 status code
2015-01-27 14:54:30 -08:00
Satnam Singh
358ace610d Merge pull request #3824 from smarterclayton/allow_panic_and_error_reporting
Allow panics and unhandled errors to be sent elsewhere
2015-01-27 13:18:43 -08:00
Mike Danese
5dc6362f8a rename probe.Healthy to probe.Success and renam probe.Unhealthy to probe.Failure. 2015-01-27 11:20:30 -08:00
Mike Danese
a298402bd4 remove pkg/health and move everything over to pkg/probe 2015-01-27 11:20:30 -08:00
Brendan Burns
b078889360 Merge pull request #3822 from nikhiljindal/swaggerbug
Fixing a bug where Reads() was being called twice on POST routes
2015-01-27 10:01:27 -08:00
Clayton Coleman
19987612bf Replace code that eats errors with a more consistent reporting
In order to allow certain programmer error / unexpected error states
to be captured, replace sections that log and eat errors with a method
that can be centrally replaced.  This captures two common error sources,
replication errors, and apiserver code that returns invalid errors.
2015-01-26 20:54:29 -05:00
nikhiljindal
54e5d1f102 Fixing a bug where Reads() was called twice on all POST routes 2015-01-26 17:21:25 -08:00
Satnam Singh
8350bb9700 Add a Retry-After header when rate limit is exceeded 2015-01-22 16:03:00 -08:00
Brian Grant
3ae67f8153 Merge pull request #3548 from nikhiljindal/listHandlers
Updating handleIndex in master to list all valid paths.
2015-01-21 15:42:50 -08:00
nikhiljindal
51007cc798 Updating handleIndex in master to list all valid paths.
The list of valid paths is computed from http.ServeMux and
restful.WebService.
Adding a mux helper - wrapper over mux, that keeps track of the paths
handled by mux.
2015-01-21 13:40:01 -08:00
Anthony Yeh
8c900187b6 Add reverse proxy headers in apiserver proxy.
Fixes #3484
2015-01-19 13:15:41 -08:00
Nikhil Jindal
e6c5d59a55 Merge pull request #3509 from enisoc/apiserver-proxy-trailing-slash
Preserve trailing slash in apiserver proxy.
2015-01-15 15:13:49 -08:00
Nikhil Jindal
aeab434400 Merge pull request #3514 from enisoc/apiserver-proxy-content-type
Allow Content-Type with charset in apiserver proxy.
2015-01-15 15:07:07 -08:00
Clayton Coleman
90c835af47 The API server setup logging is debug specific, bump above V(4)
Reduces some chatter in test suites where we are confident this code
already works.  Also removed any logging which is obvious from swagger.

Finally, rolls up InstallREST related errors all the way back to master,
which will glog.Fatalf (coding errors).
2015-01-15 14:25:58 -05:00
Anthony Yeh
895c23e2d2 Allow Content-Type with charset in apiserver proxy.
Fixes #3456
2015-01-14 23:01:49 -08:00
Anthony Yeh
6f641744ff Preserve trailing slash in apiserver proxy.
Some servers are sensitive to the presence of a trailing slash.
For example, http://etcd/v2/keys returns 404 while
http://etcd/v2/keys/ returns the key named "/".
2015-01-14 21:42:34 -08:00
nikhiljindal
f8db96b673 Fixing a bug in
https://github.com/GoogleCloudPlatform/kubernetes/pull/3404 which broke
swagger-ui.
Swagger-ui requires operation to be defined on all Routes.
2015-01-12 15:20:01 -08:00
Daniel Smith
6f43074143 Merge pull request #3404 from smarterclayton/method_not_allowed
Allow RESTStorage objects to not implement methods
2015-01-12 13:21:10 -08:00
Clayton Coleman
d17f75f254 Remove user agent logging (doesn't add significant value)
We can reintroduce path/agent logging at a later point, this just clogs
verbose logs.
2015-01-12 13:37:37 -05:00
Clayton Coleman
22c99c98e2 Split RESTStorage into separate interfaces
Omit unimplemented interfaces from Swagger
2015-01-12 12:19:45 -05:00
nikhiljindal
7e909ed743 Changes to improve swagger ui.
- Separating out index, version and api handlers into independent web
  services. Moved the index handler to /welcome, version handler to
  /version and the api handler to /api,
2015-01-09 10:56:24 -08:00
Eric Tune
c2b3d678c0 Merge pull request #3248 from derekwaynecarr/admission_control_hooks
Implement basic admission control framework
2015-01-07 16:52:49 -08:00
derekwaynecarr
a56087cdf8 Remove client from attributes, remove admission control interface, fix-up error codes 2015-01-07 14:42:31 -05:00
derekwaynecarr
5ceffe2625 Add tests to ensure resthandler invokes admission control 2015-01-07 14:42:31 -05:00
derekwaynecarr
1e2b995a79 Fix admission control in tests 2015-01-07 14:42:31 -05:00
derekwaynecarr
520ae3ef27 Implement basic admission control framework 2015-01-07 14:42:31 -05:00
Clayton Coleman
31fc19efe9 Watching on invalid label/field selectors should error 2015-01-07 14:38:38 -05:00
Daniel Smith
4ab8f238ce Fix proxy bug where it is confused by gzip encoding 2014-12-22 11:35:47 -08:00
Brendan Burns
5c14fc610b Merge pull request #3045 from nikhiljindal/setApiVersion
Setting apiVersion in restful.WebService
2014-12-19 10:11:15 -08:00
nikhiljindal
cfee8f1355 done 2014-12-18 15:38:09 -08:00
derekwaynecarr
6694a45542 Add doc for {namespace} path param, fixup and verify proxy paths 2014-12-16 15:55:48 -05:00
derekwaynecarr
14dd466e83 Added namespace test case for POST to /pods 2014-12-16 15:55:48 -05:00
derekwaynecarr
7cf664439f Move namespace from query param to path part 2014-12-16 15:55:47 -05:00
bgrant0607
9b40c52c24 Merge pull request #2910 from smarterclayton/small_v1beta3_refactors
Fix internal -> v1beta3 round trip issues
2014-12-15 13:21:12 -08:00
Clayton Coleman
b1b255f90a Prevent infinite loop in apiserver errorJSON 2014-12-12 18:23:17 -05:00
Clayton Coleman
904d0d46c3 Rename ServerOp to Operation in v1beta3 and internal
Add the appropriate rename logic internally.
2014-12-12 18:08:41 -05:00
Brendan Burns
59b5546b28 Turn on node level validation, and make the validation set dynamic. 2014-12-10 22:02:45 -08:00
derekwaynecarr
ef25520baa make selfLink namespace aware 2014-12-05 17:37:11 -05:00
Sam Ghods
6399854240 Remove unused YAML tags and GetYAML/SetYAML methods
Unneeded after move to ghodss/yaml.
2014-12-02 16:25:28 -08:00
Brian Grant
e18dcb87c4 Format JSON by default. Fixes #2243. 2014-11-25 23:11:43 +00:00
Tim Hockin
95a9098311 fix 'go vet' warnings 2014-11-21 09:45:28 +08:00
Tim Hockin
ea960711ff Clean up error logs.
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines).  Just accumulated nits.
2014-11-21 09:45:26 +08:00
Jordan Liggitt
c895331277 Make master take authenticator.Request interface instead of tokenfile 2014-11-19 15:07:51 -05:00
Eric Paris
4e95104953 update code.goole.com/p/go.net to golang.org/x/net
https://groups.google.com/forum/#!topic/golang-nuts/eD8dh3T9yyA
2014-11-16 22:10:24 -05:00
Brian Grant
7583e1a643 Automatic API generation by adopting go-restful 2014-11-14 16:49:19 +00:00
Clayton Coleman
21a6e96418 Merge pull request #2126 from brendandburns/validatez
Add etcd to the list of services to validate.
2014-11-10 14:53:41 -05:00
Clayton Coleman
4acb8e5eaf Merge pull request #2189 from lavalamp/fix
Add self links to objects sent down the watch channel.
2014-11-06 12:57:07 -05:00
Brendan Burns
d7dc20fd6a Add etcd to the list of services to validate.
Also add minions.
2014-11-05 21:22:01 -08:00
Daniel Smith
4196780eda Add self links to objects sent down the watch channel. 2014-11-05 17:22:18 -08:00
Eric Tune
6e81e8c896 Basic ACL file.
Added function to read basic ACL from a CSV file.
Added implementation of Authorize based on that file's policies.
Added docs on authentication and authorization.
Added example file and tested it.
2014-11-05 16:06:22 -08:00
Eric Tune
1668c6f107 Authorization based on namespace, kind, readonly.
Also, pass Authorizer into master.Config.
2014-11-03 17:45:15 -08:00
Eric Tune
3045035512 Get user from request and put in authz attribs.
Added integration tests for user-based auth.
2014-11-03 16:38:56 -08:00
Brendan Burns
f02fe2da1b Deflake the TestCreate test, by adding an explicit wait. 2014-11-02 12:38:31 -08: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
Brendan Burns
563311071d Merge pull request #2090 from ddysher/stop-httptest-server
Stop httptest server.
2014-10-30 21:44:53 -07:00
Deyuan Deng
acf9d23b32 Stop httptest server. 2014-10-30 21:37:08 -04:00
Daniel Smith
b28234fac6 Fix self linking of objects returned in lists. 2014-10-30 15:04:11 -07:00
derekwaynecarr
dda19071e3 Fix watch by namespace 2014-10-30 12:56:50 -04:00
Daniel Smith
3045311398 Fix subtle bug when proxy constructs outgoing URL. 2014-10-29 11:29:28 -07:00
Daniel Smith
7209ca1543 Make redirect handle namespaces just like proxy (which is weird and needs to be fixed but at least this will be consistent). 2014-10-29 11:29:28 -07:00
Daniel Smith
dca7363459 Serve API version list, test with an integration test. 2014-10-28 17:35:56 -07:00
Clayton Coleman
5cb3c10289 Merge pull request #1782 from smarterclayton/allow_put_to_set_create
Allow clients to determine the difference between create or update on PUT
2014-10-28 13:40:41 -04:00
Eric Tune
40a5ca034d Integration test on master, not just apiserver.
Moved code from cmd/apiserver to pkg/master.

test/integration/client_test made to use a master object,
instead of an apiserver.Handle.

Subsequent PRs will move more handler-installation into
pkg/master, with the goal that every http.Handler of a
standalone apiserver process can also be tested
in a "testing"-style go test.

In particular, a subsequent PR will test
authorization.
2014-10-27 09:14:58 -07:00
Clayton Coleman
d5ee171410 Allow clients to determine the difference between create or update on PUT
PUT allows an object to be created (http 201).  This allows REST code to
indicate an object has been created and clients to react to it.

APIServer now deals with <-chan RESTResult instead of <-chan runtime.Object,
allowing more data to be passed through.
2014-10-24 14:41:15 -04:00
Clayton Coleman
644eb70085 Refactor tests to split ObjectMeta from TypeMeta 2014-10-24 11:22:21 -04:00
Clayton Coleman
7550c146dc Replace struct initializers for TypeMeta with ObjectMeta 2014-10-24 11:22:21 -04:00
Clayton Coleman
1ccb86c760 Rename methods in api/meta to be cleaner 2014-10-22 22:59:12 -04:00
Clayton Coleman
bb77a5d15f Rename ID -> Name 2014-10-22 15:00:26 -04:00
Daniel Smith
91efe51770 Merge pull request #1829 from jhadvig/proxy_flush
Flush data periodically instead of their buffering
2014-10-21 17:01:15 -07:00
Tim Hockin
e8686429c4 Merge pull request #1916 from lavalamp/fix
Add read-only, rate limited endpoint
2014-10-20 16:42:46 -07:00
jhadvig
69c7228006 Flush data periodically instead of their buffering 2014-10-21 01:39:01 +02:00
Daniel Smith
9356ed7fe7 Add read-only, rate limited endpoint 2014-10-20 16:32:52 -07:00
derekwaynecarr
51aeb6bcd1 Add unit test for namespace aware proxy 2014-10-20 16:26:51 -04:00
Tim Hockin
c5388e9a30 Merge pull request #1884 from lavalamp/fix4
Get rid of old minion proxy code in favor of new, better proxy code
2014-10-20 11:50:52 -07:00
Daniel Smith
bf942e859f remove old proxy code. 2014-10-20 11:28:12 -07:00
derekwaynecarr
5e01c804fd Fixup apiserver proxy to be namespace aware 2014-10-20 10:39:16 -04:00
deads2k
2c35c06727 report originating error for GetReference failure 2014-10-17 12:52:41 -04:00
bgrant0607
9edd8a104c Merge pull request #1833 from erictune/authz
Add forbidden error.
2014-10-16 13:39:17 -07:00
derekwaynecarr
085ca40291 Enforce unique constraint at namespace boundary in etcd, make client and server namespace aware 2014-10-16 13:02:52 -04:00
Eric Tune
26a2bab797 Add forbidden error.
Will be used in subsequent PRs that add authorization.
2014-10-16 09:25:54 -07:00
Haney Maxwell
c0bf974871 Allow disabling non-necessary kubelet and apiserver endpoints 2014-10-09 16:49:27 -07:00
Clayton Coleman
82bcdd3b3b Make ResourceVersion a string internally instead of uint64
Allows us to define different watch versioning regimes in the future
as well as to encode information with the resource version.

This changes /watch/resources?resourceVersion=3 to start the watch at
4 instead of 3, which means clients can read a resource version and
then send it back to the server. Clients should no longer do math on
resource versions.
2014-10-07 19:00:26 -04:00
Clayton Coleman
d3e51a0f24 Rename JSONBase -> TypeMeta in preparation for v1beta3
Will make subsequent refactor much easier
2014-10-07 11:12:16 -04:00
derekwaynecarr
e4ec49ee6b Require namespace on controller, pod, service objects 2014-10-01 10:57:50 -04:00
Tim Hockin
e73de49f81 Caps on StatusReason* 2014-09-27 21:38:51 -07:00
Daniel Smith
37e505601e add self linking to apiserver 2014-09-26 15:08:02 -07:00
derekwaynecarr
ee19ba186d Update to use api.Context 2014-09-26 11:50:34 -04:00
derekwaynecarr
be85ad7a3d Add context object in test cases flows 2014-09-26 11:50:34 -04:00
derekwaynecarr
3e685674e7 Add context object to interfaces 2014-09-26 11:50:34 -04:00
Clayton Coleman
74db9a1b20 Log apiserver errors that are not of an expected type
Currently HttpLog only expected status range - this logs errors
that come back from a REST storage object without being first
converted to something in pkg/api/errors.  This usually indicates
unexpected error conditions that a programmer didn't explicitly
check for - the kinds of problems that may need debugging by
an operator later.  Set to V(1) because they don't impair normal
operation.
2014-09-25 16:21:48 -04:00
Clayton Coleman
e3da2ba2c8 Cleanup watch encoding (remove dupe Encoding)
Move standard watch encode / decode streams to use
runtime.RawExtension and embed API decoding based on
a provided codec.
2014-09-22 16:03:07 -04:00
Brendan Burns
a4912d7203 Merge pull request #1342 from jwforres/websocket_connection_header
Match any Connection header that contains the Upgrade token for websocke...
2014-09-18 09:47:07 -07:00
Jessica Forrester
f2732f18a7 Match any Connection header that contains the Upgrade token for websockets 2014-09-18 09:26:21 -04:00
Daniel Smith
4e9cf2ccb4 Add field selector to List, implement for pods. 2014-09-16 16:17:16 -07:00
Daniel Smith
0b75f7b543 Merge pull request #1275 from smarterclayton/v1beta2
Create v1beta2 and allow multiple Codec encodings to exist
2014-09-16 14:52:04 -07:00
Brendan Burns
f8844ce69e Add a validator for validating components in the cluster infrastructure. 2014-09-16 13:37:01 -07:00
Clayton Coleman
61e3ce7ddc Make runtime less global for Codec
* Make Codec separate from Scheme
* Move EncodeOrDie off Scheme to take a Codec
* Make Copy work without a Codec
* Create a "latest" package that imports all versions and
  sets global defaults for "most recent encoding"
  * v1beta1 is the current "latest", v1beta2 exists
  * Kill DefaultCodec, replace it with "latest.Codec"
  * This updates the client and etcd to store the latest known version
* EmbeddedObject is per schema and per package now
* Move runtime.DefaultScheme to api.Scheme
* Split out WatchEvent since it's not an API object today, treat it
like a special object in api
* Kill DefaultResourceVersioner, instead place it on "latest" (as the
  package that understands all packages)
* Move objDiff to runtime.ObjectDiff
2014-09-16 16:26:43 -04:00
Clayton Coleman
154a91cd33 Rename runtime.DefaultScheme to latest.Codec for ease of readability 2014-09-16 16:19:35 -04:00
Clayton Coleman
fe614aeda2 Simple refactor for ease of readability
runtime.DefaultCodec -> latest.Codec
2014-09-16 16:12:35 -04:00
Jessica Forrester
0f2b8f4f9f Create passthroughLogger when LogOf is called and request has no logger 2014-09-11 16:48:06 -04:00
Jessica Forrester
d82cf7dd48 Rebased and fixed test cases 2014-09-09 17:50:18 -04:00
Jessica Forrester
0cac1c5f79 Switch LogOf from panicking when logger is missing to creating logger with the defaults.
Update CORS tests to a table-based test and cover more cases.
2014-09-09 17:50:18 -04:00
Jessica Forrester
becf6ca4e7 Move RecoverPanics to be the top level wrapped handler. Add new method to be sure a logger has been generated instead of assuming one has. Move regexp list compilation into a utility and pass regexp list into CORS. 2014-09-09 17:50:18 -04:00
Jessica Forrester
8b4ca9c2a7 Move CORS handler wrapping into cmd/apiserver and switch config flag to a list of allowed origins 2014-09-09 17:50:18 -04:00
Jessica Forrester
8723eece49 Add option to enable a simple CORS implementation for the api server 2014-09-09 17:50:18 -04:00
Brendan Burns
69b359b689 Don't stack trace on 301s 2014-09-09 14:10:46 -07:00
Daniel Smith
9345da0bfd Fix build 2014-09-08 13:05:38 -07:00
brendandburns
753b80c9b8 Merge pull request #1105 from lavalamp/proxy
Add a generic proxier
2014-09-08 12:51:24 -07:00
Daniel Smith
fc09f988b4 Make tests pass again 2014-09-07 22:26:42 -07:00
Daniel Smith
0d30a656ef Do interface{} -> runtime.Object rename everywhere 2014-09-07 22:19:24 -07:00
Daniel Smith
1c2b65788d Rename Codec and ResourceVersioner to add Default in front, to allow for types of those names 2014-09-07 22:19:24 -07:00
Daniel Smith
7790961011 Rename Object to EmbeddedObject 2014-09-05 14:43:35 -07:00
Daniel Smith
b6f1f84875 Extend proxy test to test all URL rewriting cases. 2014-09-05 13:33:31 -07:00
Daniel Smith
6554ee96f7 Rewrite proxy code for clarity and correctness. 2014-09-05 13:33:30 -07:00
Daniel Smith
e2b645ec15 Add a generic proxier
To proxy traffic to anything that implements ResourceLocation.
Currently, this is only services. This is easily extensible to minions
(would supercede existing mechanism) and pods.
2014-09-05 13:33:30 -07:00
Clayton Coleman
34c40e4e48 Errors should be part of api/errors, not apiserver
Renames constructor methods to be errors.New<name> which changed a few
places.
2014-09-03 17:16:00 -04:00
Tim Hockin
6a624a2b4f try to fix data race 2014-09-02 13:51:15 -07:00
Daniel Smith
a63966e73c Combine pkg/apitools and pkg/api/common and call the result pkg/runtime 2014-09-02 11:15:44 -07:00
Daniel Smith
099c8fd36f Propagate rename; tests pass again. 2014-09-02 10:42:06 -07:00
Vojtech Vitek (V-Teq)
59f58cd043 Unify Godoc formatting, fix various typos
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:03 +02:00
Daniel Smith
aa9b9b9fa8 Invert api and api/v1beta1 dependencies
This is some cleanup that has been needed for a while.
There's still one more step that could usefully be done, which is to
split up our api package into the part that provides the helper
functions and the part that provides the internal types. That can come
later.

The v1beta1 package is now a good example of what an api plugin should
do to version its types.
2014-08-29 12:15:30 -07:00
Daniel Smith
4de254444e Add simple service redirection 2014-08-27 20:51:41 -07:00
Brendan Burns
52473bdf11 Deflake operation listing. 2014-08-26 22:48:24 -07:00
Clayton Coleman
0a841a49fd Naming of Reason constants is inconsistent
Changed ReasonType to StatusReason (to match the field) and
changed CauseReason to CauseType and renamed StatusCause.Reason to
Type.
2014-08-26 13:39:21 -04:00
Clayton Coleman
52923a1348 Return validation errors from storage create/update 2014-08-26 13:30:55 -04:00
Clayton Coleman
d326ba2976 Add a Causes array to status details for validation errors
Uses the same constant values as api/errors for each nested
reason.
2014-08-26 13:30:55 -04:00
Satnam Singh
3f0f119e42 Very minor change to use camelCase for ReasonType as suggested in issue #914. 2014-08-25 16:57:13 -07:00
Tim Hockin
0f97a73c1b Rename a bunch of "Make" functions to "New"
Also rename some to other names that make better reading.  There are still a
bunch of "make" functions but they do things like assemble a string from parts
or build an array of things.  It seemed that "make" there seemed fine.  "New"
is for "constructors".
2014-08-20 21:27:19 -07:00
Brendan Burns
a198bbb0ae Switch api.Status to *api.Status in a bunch of places. 2014-08-20 10:21:49 -07:00
Clayton Coleman
bbf3b55e76 Extract RESTHandler and allow API groupings
Prepare for running multiple API versions on the same HTTP server
by decoupling some of the mechanics of apiserver.  Define a new
APIGroup object which represents a version of the API.
2014-08-13 10:53:34 -04:00
Daniel Smith
1a5a22c539 Fix files missing gofmt 2014-08-12 17:48:00 -07:00
Daniel Smith
f220aa1aba Fix flaky TestOpGet and TestSyncCreateTimeout 2014-08-12 14:23:12 -07:00
Daniel Smith
9050c819dc Merge pull request #722 from smarterclayton/improve_errors
Normalize apiserver error handling of standard errors
2014-08-11 12:43:06 -07:00
Clayton Coleman
d419eedb06 Watch handler not returning after 404 2014-08-09 10:46:56 -04:00
Clayton Coleman
0083fae453 Provide helpers and tests for common error types
Unify error handling in apiserver into a single path - RESTStorage
objects must provide appropriate errors individually.  Ensure ALL
errors which can be traced to logical faults with RESTStorage are
returned as api.Status objects.
2014-08-08 19:44:47 -04:00