Commit Graph

176 Commits

Author SHA1 Message Date
Kubernetes Publisher
18387238ee Merge pull request #87908 from jpbetz/enable-smd-reflector
Bump to latest SMD to pick up performance optimizations

Kubernetes-commit: 86fcb30e5391a5494c8d83586f0911772a6949aa
2020-02-09 07:14:56 +00:00
Kubernetes Publisher
950eb22709 Merge pull request #87299 from mikedanese/ctx
context in client-go

Kubernetes-commit: 334d788f081e3bd6bb5fbbb5130c7d0810afc91e
2020-02-08 15:12:50 +00:00
Joe Betz
92ba4d84d0 Bump to latest SMD to pick up performance optimizations
Kubernetes-commit: d9faaca64738a50455f38dd88845e8b4b5ca37e2
2020-02-06 15:10:25 -08:00
Kubernetes Publisher
81e6fe3b90 Merge pull request #87830 from dims/update-sigs.k8s.io/yaml-to-v1.2.0
Updating dependency sigs.k8s.io/yaml to version v1.2.0

Kubernetes-commit: e4061baeac03793f300c2dd824cae5673d1c24cf
2020-02-07 03:14:28 +00:00
Davanum Srinivas
4e2b652898 Updating dependency sigs.k8s.io/yaml to version v1.2.0
Kubernetes-commit: 5bb1838c5c197dd06af5f37df6fdaf8093338f67
2020-02-04 15:45:47 -05:00
Kubernetes Publisher
9d489c7b9d Merge pull request #87597 from mikedanese/rctx
Refactor context handling in rest.Request

Kubernetes-commit: 60dd5dbd8b2347284b7e9b87a5700f54c185034e
2020-01-30 07:38:37 +00:00
Kubernetes Publisher
edca37f8f5 Merge pull request #87431 from dprotaso/bump-gofuzz
bump github.com/google/gofuzz

Kubernetes-commit: fc3b7b6dcde835291bd2103d78df9391b20bba39
2020-01-30 07:38:36 +00:00
Kubernetes Publisher
c94d7696a4 Merge pull request #83526 from eloyekunle/feat/gengo-reverse-import
import-boss reverse import

Kubernetes-commit: f5a008746aeae60feafafb77a0f07bebfceb2d97
2020-01-29 03:34:53 +00:00
Elijah Oyekunle
ee78ef29b9 bump gengo version
Kubernetes-commit: cece51b9b0b8322401f17f0650af864b9867f12e
2020-01-28 10:51:37 +01:00
Kubernetes Publisher
960347feac Merge pull request #87138 from markusthoemmes/fix-capitalization-error
Fix error-string-capitalization in clientset generator.

Kubernetes-commit: 6ae7bfc691c8266fc253d45ecf55acac8877c6d2
2020-01-24 11:35:01 +00:00
Kubernetes Publisher
8c05e8c649 Merge pull request #87467 from cjcullen/yaml
Update gopkg.in/yaml.v2 to v2.2.8

Kubernetes-commit: 07b358b1904c3c16a40a93a18f95e9411d9a2789
2020-01-24 03:37:09 +00:00
Kubernetes Publisher
bd4ff3d8ad Merge pull request #87442 from jennybuckley/smd-3
Update structured-merge-diff dependency to v3

Kubernetes-commit: 03cb6afc1a7d43e8ea034279a19801d3d3fb17b3
2020-01-23 07:38:42 +00:00
CJ Cullen
4f28e14945 update gopkg.in/yaml.v2 to v2.2.8
Kubernetes-commit: b86df2bec4f377afc0ca03482ffad2f0a49a83b8
2020-01-22 11:32:39 -08:00
jennybuckley
5605e8990d Update Structured Merge Diff to V3
Kubernetes-commit: b33fbc84d9d6e7033c36fa3bc321b8fea28ceed6
2020-01-21 15:03:56 -08:00
Dave Protasowski
551d70ff44 bump github.com/google/gofuzz
This includes the ability for the fuzzer to skip certain struct fields

Kubernetes-commit: c8dbde86664170f479dd9a9a55de76d8f186754f
2020-01-21 13:11:34 -05:00
Kubernetes Publisher
f983218c80 Merge pull request #87081 from dims/updating-protobuf-and-grpc
Updating protobuf (v1.3.1) and grpc (v1.26.0)

Kubernetes-commit: f4b6b751cdf2d46940355359443b263cb883d006
2020-01-18 23:52:50 +00:00
Davanum Srinivas
ab1c547945 Updating dependency google.golang.org/genproto to version v0.0.0-20190819201941-24fa4b261c55
Kubernetes-commit: 2f78a9480f2f4eabb7698984371df25543312db4
2020-01-13 17:40:24 -05:00
Davanum Srinivas
bab5a99d15 Updating dependency google.golang.org/grpc to version v1.26.0
Kubernetes-commit: 3b29bcf52d3f6a73af9830cf55159893899c2b1b
2020-01-13 17:38:18 -05:00
Davanum Srinivas
59665bb9b6 Updating dependency github.com/gogo/protobuf to version v1.3.1
Kubernetes-commit: 9c78f05d06cb43dce4363cad03ff79f579c22eee
2020-01-13 17:36:07 -05:00
Kubernetes Publisher
de9f70c977 Merge pull request #87158 from dims/pick-closest-tags-for-a-few-packages
Pick closest tags for a few packages and avoid random SHA

Kubernetes-commit: 5d1c3016103d83df4ae91664639ba7e0a103c7ec
2020-01-16 03:54:08 +00:00
Kubernetes Publisher
2ddb023c08 Merge pull request #87226 from liggitt/simplify-code-generator
Simplify code generator dependencies

Kubernetes-commit: b95d571e32294047a5fb9ca93ee4e394f6765308
2020-01-15 19:50:53 +00:00
Jordan Liggitt
a23205f445 hack/update-vendor.sh
Kubernetes-commit: e8a8bdb4cac0c9299da7317d41bcb3e1320424e1
2020-01-14 21:56:32 -05:00
Kubernetes Publisher
f8d330e562 Merge pull request #87107 from dims/updating-googleapis/gnostic-to-v0.1.0
updating googleapis/gnostic to v0.1.0

Kubernetes-commit: d5145ffc10c7429f555134f44d5bf95cd7eda270
2020-01-13 23:51:10 +00:00
Kubernetes Publisher
ab780863f6 Merge pull request #87088 from dims/switch-to-newer-gonum
Drop random SHA and update gonum.org/v1/gonum to v0.6.2

Kubernetes-commit: bb3f8c7c899d7166c31934b80b39c7307ec85b7a
2020-01-13 23:51:09 +00:00
Davanum Srinivas
a9e1ddb708 Updating dependency github.com/elazarl/goproxy to version 947c36d
Kubernetes-commit: a6d72ab71323b01846b37fe896bae3e0886a86ba
2020-01-13 12:33:25 -05:00
Davanum Srinivas
575eb3267b updating googleapis/gnostic to v0.1.0
per https://github.com/googleapis/gnostic/releases/tag/v0.1.0, the
v0.1.0 was made specifically for use by k8s, but we still seem to be
using a random SHA. Let's try to switch to a tagged version.

Kubernetes-commit: 420d5d10c4baad0aced31de382801fd999f2c94b
2020-01-11 22:38:36 -05:00
Kubernetes Publisher
7e92736cc3 Merge pull request #85458 from cjcullen/yaml
Update gopkg.in/yaml.v2 to v2.2.7

Kubernetes-commit: 7f2128757b1aa2e83320d1f635fe8b2e7028542a
2020-01-11 15:50:42 +00:00
Davanum Srinivas
55a37d4522 update gonum.org/v1/gonum to v0.6.2
Kubernetes-commit: f66ef23c1182e72db9cbb80f6df4186a326374c0
2020-01-10 15:26:48 -05:00
Kubernetes Publisher
7b12eff437 Merge pull request #86346 from SataQiu/bump-utils-20191217
Bump k8s.io/utils version

Kubernetes-commit: 2d310b13215110a9dcaabcebef65d62a1b3f0bdd
2019-12-22 11:49:42 +00:00
SataQiu
2b5783f346 bump k8s.io/utils version
Kubernetes-commit: 2497a1209bf96472bceabbc465b2370f1b66a4a7
2019-12-17 23:12:53 +08:00
Kubernetes Publisher
b60d4fc3c5 Merge pull request #86013 from carlosedp/ginkgo_bump
Bump Ginkgo to support building on riscv64 arch

Kubernetes-commit: 4ff692861908697c530b6b8ba48a5eb442bd7ed7
2019-12-20 23:50:14 +00:00
Carlos de Paula
6976381688 Bump Ginkgo to support building on riscv64 arch
Kubernetes-commit: ecfd30d2517c52f158b099abcc303cce307c324d
2019-12-06 15:23:15 -05:00
Kubernetes Publisher
8ed8142b5c Merge pull request #86269 from odinuge/go-mod-version
Update go version in go.mod to 1.13

Kubernetes-commit: b96642aeaeefee838b5f0938e5d04765dd27d39b
2019-12-14 19:13:29 +00:00
Odin Ugedal
2c5619cf7a Update go version in go.mod
We now use go 1.13 and not 1.12

Kubernetes-commit: 4769cbedd5bdaf61e329b4e9687ec97a6c53b61a
2019-12-14 12:43:14 +01:00
Kubernetes Publisher
d454fe8177 Merge pull request #85223 from sttts/sttts-crd-items-types
apiextensions: fix items+type logic in API due to broken go-openapi validation

Kubernetes-commit: 976712556e4bd22d5312a0af36b18127c709d54a
2019-11-21 02:12:13 +00:00
CJ Cullen
7fc9944bbb update gopkg.in/yaml.v2 to v2.2.7
Kubernetes-commit: aa278345fa55ee9f3e097da1b590fcabd85270f7
2019-11-19 09:39:27 -08:00
Dr. Stefan Schimanski
01bbecf3b2 hack/pin-dependency.sh github.com/go-openapi/validate v0.19.5
Kubernetes-commit: ef88c43c0296e6004d0e3407a1336074897b309d
2019-11-15 13:48:59 +01:00
Kubernetes Publisher
ef93e2e76a Merge pull request #85305 from codenrhoden/remove-mount-pkg
Remove pkg/util/mount (moved out of tree)

Kubernetes-commit: 45e0080fd5883e3355233c9c22fa5bf242d525dd
2019-11-15 22:10:02 +00:00
Travis Rhoden
b3ad0016ff Remove pkg/util/mount (moved out of tree)
This patch removes pkg/util/mount completely, and replaces it with the
mount package now located at k8s.io/utils/mount. The code found at
k8s.io/utils/mount was moved there from pkg/util/mount, so the code is
identical, just no longer in-tree to k/k.

Kubernetes-commit: 0c5c3d8bb97d18a2a25977e92b3f7a49074c2ecb
2019-11-14 13:30:00 -07:00
Kubernetes Publisher
055fb85f0a Merge pull request #84424 from mikedanese/expcache
Add an expiring cache for the caching token authenticator

Kubernetes-commit: 19b4017b5d5c5695403a9804f5ea3de11a436c04
2019-11-15 02:06:46 +00:00
Kubernetes Publisher
33e2132d1e Merge pull request #85175 from liggitt/golang-org-comments
Add comments to explain golang.org replace directives

Kubernetes-commit: 24334444b46371e26594e1f6e594195a761b53d3
2019-11-14 22:25:29 +00:00
Jordan Liggitt
424188e943 Add comments to explain golang.org replace directives
Kubernetes-commit: 9f40e19d7ac9e2203c23814701468a26eee1964f
2019-11-12 23:54:26 -05:00
Kubernetes Publisher
de0ba49f28 Merge pull request #83840 from liggitt/json-iter
bump json-iterator dependency

Kubernetes-commit: 3387d6cfc73235fd554e5039b85abb7700eaf126
2019-11-09 11:01:50 +00:00
Kubernetes Publisher
cb8e37036c Merge pull request #84911 from yue9944882/chore/bump-kube-openapi
Pin kube-openapi vendor to 30be4d16710a

Kubernetes-commit: dd6faa5da791c06fa23ff668e4463c3ad2b23340
2019-11-08 07:15:22 +00:00
yue9944882
7b8c63153b update k8s.io/kube-openapi to 30be4d16710a
Kubernetes-commit: 8e7606f32898b294fc25152ff8bd34f62d6221d3
2019-11-07 18:39:08 +08:00
Kubernetes Publisher
97ea7f1bbd Merge pull request #82809 from liggitt/go-1.13-no-modules
update to use go1.13.4

Kubernetes-commit: 695c3061dd92a6b6950f8adf0341ceb4a8dd44d7
2019-11-07 03:24:42 +00:00
Jordan Liggitt
fe7e76b7d4 hack/update-vendor.sh
Kubernetes-commit: 297570e06a88db23e16dbdbf6ce3173fe0ae376c
2019-11-05 14:11:10 -05:00
Kubernetes Publisher
472018681a Merge pull request #84604 from codenrhoden/update-utils-dep
Update k8s.io/utils dependency to latest

Kubernetes-commit: 97e28edb6620568d985f3b03b495a0a373aa8750
2019-11-01 23:13:24 +00:00
Travis Rhoden
09364c09e9 Update k8s.io/utils dependency to latest
Kubernetes-commit: 81f66ecbb5ff359ac765c7f332289dd8c1737c39
2019-10-31 08:35:01 -06:00
Mike Danese
326f8f2c88 Add an expiring cache for the caching token authenticator
And maybe the webhook authorizer cache.

This cache has two primary advantages over the LRU cache used currently:

- Cache hits don't acquire an exclusive lock.
- More importantly, performance doesn't fallover when the access pattern
  scans a key space larger than an arbitrary size (e.g. the LRU
  capacity).

The downside of using an expiring cache here is that it doesn't have a
maximum size so it's suspectible to DoS when the input is user
controlled. This is not the case for successful authentications, and
successful authentications have a natural expiry so it might be a good
fit here.

It has some a few differences compared to:

3d7318f29d/staging/src/k8s.io/client-go/tools/cache/expiration_cache.go

- Expiration is not entirely lazy so keys that are never accessed again
  are still released from the cache.
- It does not acquire an exclusive lock on cache hits.
- It supports per entry ttls specified on Set.

The expiring cache (without striping) does somewhere in between the
simple cache and striped cache in the very contrived contention test
where every iteration acquires a write lock:

```
$ benchstat simple.log expiring.log
name      old time/op    new time/op    delta
Cache-12    2.74µs ± 2%    2.02µs ± 3%  -26.37%  (p=0.000 n=9+9)
name      old alloc/op   new alloc/op   delta
Cache-12      182B ± 0%      107B ± 4%  -41.21%  (p=0.000 n=8+9)
name      old allocs/op  new allocs/op  delta
Cache-12      5.00 ± 0%      2.00 ± 0%  -60.00%  (p=0.000 n=10+10)

$ benchstat striped.log expiring.log
name      old time/op    new time/op    delta
Cache-12    1.58µs ± 5%    2.02µs ± 3%  +27.34%  (p=0.000 n=10+9)
name      old alloc/op   new alloc/op   delta
Cache-12      288B ± 0%      107B ± 4%  -62.85%  (p=0.000 n=10+9)
name      old allocs/op  new allocs/op  delta
Cache-12      9.00 ± 0%      2.00 ± 0%  -77.78%  (p=0.000 n=10+10)

$ benchstat simple.log striped.log expiring.log
name \ time/op    simple.log   striped.log  expiring.log
Cache-12          2.74µs ± 2%  1.58µs ± 5%   2.02µs ± 3%
name \ alloc/op   simple.log   striped.log  expiring.log
Cache-12            182B ± 0%    288B ± 0%     107B ± 4%
name \ allocs/op  simple.log   striped.log  expiring.log
Cache-12            5.00 ± 0%    9.00 ± 0%     2.00 ± 0%
```

I also naively replacemed the LRU cache with the expiring cache in the
more realisitc CachedTokenAuthenticator benchmarks:

https://gist.github.com/mikedanese/41192b6eb62106c0758a4f4885bdad53

For token counts that fit in the LRU, expiring cache does better because
it does not require acquiring an exclusive lock for cache hits.

For token counts that exceed the size of the LRU, the LRU has a massive
performance drop off. The LRU cache is around 5x slower (with lookups
taking 1 milisecond and throttled to max 40 lookups in flight).

```
$ benchstat before.log after.log
name                                                  old time/op    new time/op    delta
CachedTokenAuthenticator/tokens=100_threads=256-12      3.60µs ±22%    1.08µs ± 4%  -69.91%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=500_threads=256-12      3.94µs ±19%    1.20µs ± 3%  -69.57%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=2500_threads=256-12     3.07µs ± 6%    1.17µs ± 1%  -61.87%  (p=0.000 n=9+10)
CachedTokenAuthenticator/tokens=12500_threads=256-12    3.16µs ±17%    1.38µs ± 1%  -56.23%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=62500_threads=256-12    15.0µs ± 1%     2.9µs ± 3%  -80.71%  (p=0.000 n=10+10)

name                                                  old alloc/op   new alloc/op   delta
CachedTokenAuthenticator/tokens=100_threads=256-12        337B ± 1%      300B ± 0%  -11.06%  (p=0.000 n=10+8)
CachedTokenAuthenticator/tokens=500_threads=256-12        307B ± 1%      304B ± 0%   -0.96%  (p=0.000 n=9+10)
CachedTokenAuthenticator/tokens=2500_threads=256-12       337B ± 1%      304B ± 0%   -9.79%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=12500_threads=256-12      343B ± 1%      276B ± 0%  -19.58%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=62500_threads=256-12      493B ± 0%      334B ± 0%  -32.12%  (p=0.000 n=10+10)

name                                                  old allocs/op  new allocs/op  delta
CachedTokenAuthenticator/tokens=100_threads=256-12        13.0 ± 0%      11.0 ± 0%  -15.38%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=500_threads=256-12        12.0 ± 0%      11.0 ± 0%   -8.33%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=2500_threads=256-12       13.0 ± 0%      11.0 ± 0%  -15.38%  (p=0.000 n=10+10)
CachedTokenAuthenticator/tokens=12500_threads=256-12      13.0 ± 0%      10.0 ± 0%  -23.08%  (p=0.000 n=9+10)
CachedTokenAuthenticator/tokens=62500_threads=256-12      17.0 ± 0%      12.0 ± 0%  -29.41%  (p=0.000 n=10+10)
```

Benchmarked with changes in #84423

Bugs: #83259 #83375

Kubernetes-commit: 9167711fd18511ffc9c90ee306c462be9fc7999b
2019-10-26 12:19:07 -07:00