k3s/pkg/kubeapiserver
Kubernetes Submit Queue 42adb9ef25 Merge pull request #50258 from liggitt/token-cache
Automatic merge from submit-queue (batch tested with PRs 49488, 50407, 46105, 50456, 50258)

Enable caching successful token authentication

Resolves #50472

To support revocation of service account tokens, an etcd lookup of the token and service account is done by the token authenticator. Controllers that make dozens or hundreds of API calls per second (like the endpoints controller) cause this lookup to be done very frequently on the same objects.

This PR:
* Implements a cached token authenticator that conforms to the authenticator.Token interface
* Implements a union token authenticator (same approach as the union request authenticator, conforming to the authenticator.Token interface)
* Cleans up the auth chain construction to group all token authenticators (means we only do bearer and websocket header parsing once)
* Adds a 10-second TTL cache to successful token authentication

```release-note
API server authentication now caches successful bearer token authentication results for a few seconds.
```
2017-08-11 14:14:06 -07:00
..
admission Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
authenticator Merge pull request #50258 from liggitt/token-cache 2017-08-11 14:14:06 -07:00
authorizer Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
options Merge pull request #50258 from liggitt/token-cache 2017-08-11 14:14:06 -07:00
server Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
BUILD Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
OWNERS add liggitt to kubeapiserver owners 2017-04-03 10:14:34 -04:00
default_storage_factory_builder.go k8s.io/apiserver: straighten EtcdOptions, backend Config and kube RESTOptionsFactory 2017-02-15 10:24:59 +01:00
default_storage_factory_builder_test.go run hack/update-all 2017-06-22 11:31:03 -07:00
doc.go