Commit Graph

8523 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
372ebd24f5 Merge pull request #83098 from ddebroy/disable-intree
CSI Migration phase 2: disable probing of in-tree plugins
2019-11-14 20:51:42 -08:00
Kubernetes Prow Robot
9d0a32caf8 Merge pull request #85260 from MikeSpreitzer/reqmgmt-rename
Renamed FeatureGate RequestManagement to APIPriorityAndFairness
2019-11-14 17:51:10 -08:00
Kubernetes Prow Robot
d15f2dc83a Merge pull request #85249 from immutableT/testdata-for-encryption-config
Move test inputs for EncryptionConfiguration tests into testdata.
2019-11-14 17:50:54 -08:00
Kubernetes Prow Robot
19b4017b5d Merge pull request #84424 from mikedanese/expcache
Add an expiring cache for the caching token authenticator
2019-11-14 17:50:06 -08:00
Kubernetes Prow Robot
31200d08d6 Merge pull request #83505 from misterikkit/govmomi-dep
Update dependency vmware/govmomi to v0.20.3
2019-11-14 17:49:37 -08:00
Deep Debroy
129f15328b Disable in-tree plugins migrated to CSI
Signed-off-by: Deep Debroy <ddebroy@docker.com>
2019-11-14 17:28:21 -08:00
Kubernetes Prow Robot
141329fd21 Merge pull request #85285 from liggitt/kubectl-resource-version
Fix --resource-version handling in kubectl
2019-11-14 16:39:03 -08:00
Kubernetes Prow Robot
8dffc8db4f Merge pull request #85257 from yutedz/queueset-robin-idx
Correct the checking of robinIndex
2019-11-14 16:38:50 -08:00
Kubernetes Prow Robot
9edcaf7c4d Merge pull request #85252 from prameshj/fwrules-port
Specify a port range to ILB firewall rule create.
2019-11-14 16:38:37 -08:00
Kubernetes Prow Robot
99e18f5ae9 Merge pull request #84900 from MikeSpreitzer/add-namespace-to-rule
Enable Priority and Fairness to discriminate on target namespace
2019-11-14 16:38:18 -08:00
Kubernetes Prow Robot
f1e912c38a Merge pull request #84304 from liggitt/all-beta
Add support for --runtime-config=api/beta=false, --feature-gates=AllBeta=false
2019-11-14 16:38:01 -08:00
immutablet
883e9a0b50 Move test inputs for EncryptionConfiguration tests into testdata. 2019-11-14 13:59:25 -08:00
Mike Danese
3f194d5b41 migrate token cache to cache.Expiring 2019-11-14 13:50:15 -08:00
Mike Danese
9167711fd1 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
2019-11-14 13:50:15 -08:00
Kubernetes Prow Robot
24334444b4 Merge pull request #85175 from liggitt/golang-org-comments
Add comments to explain golang.org replace directives
2019-11-14 13:31:27 -08:00
Kubernetes Prow Robot
acfc88d66e Merge pull request #84752 from seans3/json_yaml_printers
Move json,yaml,jsonpath printers to correct locations
2019-11-14 13:31:04 -08:00
Kubernetes Prow Robot
37c7c904e1 Merge pull request #84227 from soltysh/fix_scale_doc
Drop job from scale description
2019-11-14 13:29:51 -08:00
Jordan Liggitt
a5760dee81 Add support for --runtime-config=api/beta=false, --feature-gates=AllBeta=false
Allow disabling all beta features and APIs
2019-11-14 14:37:55 -05:00
Kubernetes Prow Robot
567b13487f Merge pull request #85162 from apelisse/strip-nullable
Strip nullable for Server-side apply
2019-11-14 11:19:48 -08:00
Jordan Liggitt
0ac8345d3a Fix --resource-version handling in kubectl 2019-11-14 12:33:14 -05:00
Kubernetes Prow Robot
3b440dfd55 Merge pull request #85077 from gongguan/DeleteOptions
add DeleteOptions conversion
2019-11-14 02:55:34 -08:00
Kubernetes Prow Robot
d11374d330 Merge pull request #85258 from liggitt/fuzz-pointer-intstr
Include *intstr.IntOrString in API compatibility test fixtures
2019-11-14 00:59:43 -08:00
Kubernetes Prow Robot
84318d9f40 Merge pull request #84958 from kkmsft/disk_fixes
Azure : filter disks with ToBeDetached flag
2019-11-14 00:59:34 -08:00
Pavithra Ramesh
44f0b26ab9 Specify a port range to ILB firewall rule create. 2019-11-14 00:06:11 -08:00
Kubernetes Prow Robot
5dd641e45c Merge pull request #85115 from aramase/azure-disk-lock
azure: remove disk locks per vm during attach/detach
2019-11-13 23:13:48 -08:00
Kubernetes Prow Robot
a6f51da500 Merge pull request #80572 from knight42/fix/scale-cr
Fix missing resource version when updating the scale subresource of custom resource
2019-11-13 23:13:34 -08:00
Mike Spreitzer
76d090e30f Renamed FeatureGate RequestManagement to APIPriorityAndFairness
The old name is too broad, we wanted a name that is more specific to
the actual feature.

This is an alpha gate, and no release has yet associated any
functionality with this gate.
2019-11-14 01:34:59 -05:00
Mike Spreitzer
793b5a7c9a Regenerated pb.go for flowcontrol/v1alpha1 2019-11-14 01:05:10 -05:00
MikeSpreitzer
1c60949dfd updated generated files 2019-11-14 00:53:02 -05:00
Mike Spreitzer
a912bd8488 Identify cluster scope by a boolean field rather than a special namespace 2019-11-14 00:53:02 -05:00
Mike Spreitzer
3b77bc8054 Enabled discrimination on target namespace
Generalized ResourcePolicyRule in API Priority and Fairness to be able
to discriminate on the target namespace (if any) specified in the
request.
2019-11-14 00:53:02 -05:00
Kubernetes Prow Robot
42273a4dbf Merge pull request #84472 from gab-satchi/windows-build-label
Adds Windows build information as a label on the node
2019-11-13 21:46:19 -08:00
Kubernetes Prow Robot
5e30d32d2c Merge pull request #83394 from bertinatto/convert_pv_no_affinity
Convert existing PVs to use volume topology in VolumeBinderPredicate
2019-11-13 21:45:56 -08:00
Jordan Liggitt
1dec736aff Include *intstr.IntOrString in API compatibility tests 2019-11-14 00:32:29 -05:00
Ted Yu
2bdd379a1e Correct the checking of robinIndex 2019-11-13 20:13:29 -08:00
Kubernetes Prow Robot
85bc79d81f Merge pull request #85227 from apelisse/update-smd
Update structured-merge-diff to latest version
2019-11-13 20:02:24 -08:00
Kubernetes Prow Robot
022120ccac Merge pull request #85192 from MikeSpreitzer/fq-impl
Added fair queuing for server requests
2019-11-13 20:02:12 -08:00
Kubernetes Prow Robot
346e6b5707 Merge pull request #85010 from leakingtapan/ebs-migration
Add translation logic for EBS storage class fstype parameter
2019-11-13 20:01:35 -08:00
louisgong
aaa63d7532 add DeleteOptions conversion 2019-11-14 09:56:56 +08:00
knight42
da246010c3 test(cr::update): add corresponding tests
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2019-11-14 09:50:09 +08:00
Kubernetes Prow Robot
71d563b831 Merge pull request #84771 from MikeSpreitzer/refactor-priority-config
Refactored PriorityLevelConfiguration
2019-11-13 17:28:06 -08:00
Kubernetes Prow Robot
64f4be5b32 Merge pull request #84390 from robscott/endpointslice-beta
Promoting EndpointSlices to beta
2019-11-13 17:27:50 -08:00
Anish Ramasekar
57df625069 add unit tests 2019-11-13 17:07:55 -08:00
Anish Ramasekar
3916c4a6cf remove disk locks per vm
maintain map with nodename and lock

move lock map to utils
2019-11-13 17:07:55 -08:00
Kubernetes Prow Robot
8af6906d1f Merge pull request #85220 from liggitt/revert-licenses
Revert #76586, restructure LICENSES file generation
2019-11-13 14:52:11 -08:00
Kubernetes Prow Robot
63a5cb37dd Merge pull request #85202 from RainbowMango/pr_add_Reset_API_to_component-base
Add Reset() API to stability framework
2019-11-13 14:51:28 -08:00
Kubernetes Prow Robot
570572b387 Merge pull request #85152 from mikedanese/tokbench
report cache misses in cached token authenticator benchmark
2019-11-13 14:51:08 -08:00
Kubernetes Prow Robot
02af1dd62c Merge pull request #85004 from deads2k/dynamic-agg-cert
dynamic reload cluster authentication info for aggregated API servers
2019-11-13 14:50:54 -08:00
Rob Scott
a7e589a8c6 Promoting EndpointSlices to beta 2019-11-13 14:20:19 -08:00
Jonathan Basseri
42290ddf04 Update dependency vmware/govmomi to v0.20.3

misterikkit committed on Oct 4
govmomi is the vSphere client library used by the vSphere cloud provider
and storage plugin. A bug in the SOAP client prevented storage classes
that use vSphere storage policies (aka SPBM) from working.

This bumps our dependency on vmware/govmomi from v0.20.1 to v0.20.3 to
pick up the fix in vmware/govmomi#1498

Here are all changes in the release:
https://github.com/vmware/govmomi/compare/v0.20.1...v0.20.3
2019-11-13 13:43:47 -08:00