Commit Graph

2970 Commits

Author SHA1 Message Date
Daniel Smith 6abce7684c lavalamp is taking a long break
Kubernetes-commit: 1ffe3f467e8b8033312b7c68943d58125fd27663
2023-05-11 16:43:38 +00:00
Lukasz Szaszkiewicz decaec94cd storage/etcd: skip SendInitialEvents if the request is backward compatible
otherwise an error will be returned.
backward compatibility is defined as RV = "" || RV = "O" and AllowWatchBookmark is set to false.
in that case we rely on 267eb25e60/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher.go (L260)

Kubernetes-commit: f2de1a00b8fd7a22f9d0b2c1ace69be41d304f83
2023-05-08 13:04:31 +02:00
Joe Betz f32e391a45 Introduce CEL EnvSets for managing safe rollout of new CEL features, libraries and expression variables
Kubernetes-commit: e740f8340eedc89baccd120329b454a860385e2d
2023-04-28 14:16:56 -04:00
kkkkun f4c24327c3 Fix etcd3 config changed
Kubernetes-commit: 57969c1b52ce0c3c27ccbf02ecc52ebc1b8533d9
2023-05-06 19:40:40 +08:00
HirazawaUi e6be55636d add Authentication tracking request/error counts and latency metrics
Kubernetes-commit: 104c208d0fb69ad8edb180b2b306516f9d01d021
2023-04-11 22:35:14 +08:00
Wei Huang 049d92137b benchmark test to evaluate the overhead of podMatchesScopeFunc
Kubernetes-commit: 359bcec0e097f448931fe1faadfec46322e8d94d
2023-05-04 16:55:32 -07:00
yulng 3813b3ea2d remove genericfeatures.DryRun in 1.28
Signed-off-by: yulng <wei.yang@daocloud.io>

Kubernetes-commit: b899ae48477fabfe06acbaf0ed34015db7e79d4b
2023-04-15 20:14:19 +08:00
Tim Hockin 6fa34a3ae5 Clean up brace whitespace in **/validation_test.go
This was making my eyes bleed as I read over code.

I used the following in vim.  I made them up on the fly, but they seemed
to pass manual inspection.

:g/},\n\s*{$/s//}, {/
:w
:g/{$\n\s*{$/s//{{/
:w
:g/^\(\s*\)},\n\1},$/s//}},/
:w
:g/^\(\s*\)},$\n\1}$/s//}}/
:w

Kubernetes-commit: d55b67b349021b6c46fc6ce78f2a36bd4217145f
2023-05-02 00:36:15 -07:00
Alexander Zielenski 5ea7a9f341 fixup patcher test to include field manager
Kubernetes-commit: 077cc20f8af4387f37d972e925510cb5e2ef56ea
2023-03-15 14:42:07 -07:00
Alexander Zielenski 4bd3e89853 remove checks for fieldmanager from handlers
it should never be nil

Kubernetes-commit: ad5cda4d21974104db01732474130d10c001d3f2
2023-03-14 15:08:00 -07:00
Alexander Zielenski 444c9b2e30 add OpenAPIV3 config to tests and server options
Kubernetes-commit: ffb9c076d77d126484fe17adc30d5e40efb5efee
2023-03-03 10:49:50 -08:00
Alexander Zielenski c5d71177bc supply deduced typeconverter to apiserver tests
Kubernetes-commit: 94909af68aee4e5ad9f9c4f48f0b328473725e7a
2023-03-03 10:45:44 -08:00
Alexander Zielenski 3783e4af68 Throw error if OpenAPIV3 config is not provided
it is required for Server-SIde-Apply to function correctly (SSA is based on OpenAPI schemas)

Kubernetes-commit: 302daa889c5ddb9c862cd0101b94071e42a3081d
2023-01-11 14:54:03 -08:00
Stephen Kitt 6caa44cc84 api-machinery: replace intstr.FromInt with intstr.FromInt32
This touches cases where FromInt() is used on numeric constants, or
values which are already int32s, or int variables which are defined
close by and can be changed to int32s with little impact.

Signed-off-by: Stephen Kitt <skitt@redhat.com>

Kubernetes-commit: 94410ee8078971b8894e5c400ce3fc79f02bc510
2023-03-14 16:17:48 +01:00
Wojciech Tyczyński d9c1a1d082 Refactor some watchcache tests
Kubernetes-commit: 1eca720dcc727b5deeeeb1164689d42c6cc316eb
2023-04-27 11:59:33 +02:00
Joe Betz 394de266f8 Update staging/src/k8s.io/apiserver/pkg/cel/common/values.go
Co-authored-by: Alvaro Aleman <alvaroaleman@users.noreply.github.com>

Kubernetes-commit: a4f98e4c1e85f6665578b938c5bbb65a5f9541c3
2023-04-25 14:22:01 -07:00
Joe Betz daf9c33de1 Fix bug where CEL listOfString.join() results in unexpected error
Kubernetes-commit: e115d5234c208bddd1029d36f32c732b7080226f
2023-04-25 10:21:41 -04:00
Wojciech Tyczyński 53b8c6919c Refactor cacher.ListerWatcher code structure
Kubernetes-commit: 3f247e59edfd4083242ad7271d076a38291760ff
2023-04-25 19:03:20 +02:00
Wojciech Tyczyński 68a91d7597 Enable a bunch of generic storage tests for watchcache.
Kubernetes-commit: 88e2c34439016e5feddfed529698ed71e81904d9
2023-04-17 19:03:51 +02:00
Wojciech Tyczyński ca97e27fb8 Refactor watch bookmark tests to allow sharing between etcd3 and watchcache
Kubernetes-commit: 0297329795efc0f2bd24751e18f66b0aa79c222d
2023-04-17 14:22:52 +02:00
Wojciech Tyczyński 072d278e39 Generalize few watch tests from cacher
Kubernetes-commit: 45e836a968acc113cb03768cd8c730bea89bd332
2023-04-17 21:48:08 +02:00
Lukasz Szaszkiewicz 0df626818a cacher: do not popExpiredWatchers when the cacher hasn't dispatched any event
If the cacher hasn't seen any event (when lastProcessedResourceVersion is zero) and
the bookmarkTimer has ticked then we shouldn't popExpiredWatchers. This is
because the watchers wont' be re-added and will miss future bookmark events when
the cacher finally receives an event via the c.incoming chan.

Kubernetes-commit: 6db4cbfde7babfb34f5cd1059c769ec2d870f12a
2023-04-19 15:29:13 +02:00
Lukasz Szaszkiewicz 55dd2b5223 cacher avoid double locking (#117410)
* cacher: remove locking from watcherBookmarkTimeBuckets

it turns out that the watcherBookmarkTimeBuckets
is called from only three places/methods: startDispatching, finishDispatching and Watch.
All these methods acquire c.Lock() before touching watcherBookmarkTimeBuckets.

Thus we could remove explicit locking in
watcherBookmarkTimeBuckets since the access is already synced.

* cacher: rename watcherBookmarkTimeBuckets methods to indicate that proper synchronisation must be used

Kubernetes-commit: eab66a687b282266f0520b79166f7f55828ffd28
2023-04-19 15:13:11 +02:00
Hao Ruan f695e2298f replace spew methods with dump methods
Kubernetes-commit: c4e1b01416ec05e6a520a181d4ce3b4333adb4e4
2023-04-13 09:41:07 +08:00
Tim Hockin 0165503c5a Replace uses of ObjectReflectDiff with cmp.Diff
ObjectReflectDiff is already a shim over cmp.Diff, so no actual output
or behavior changes

Kubernetes-commit: bc302fa4144d21a338683cd83701661f97be4aba
2023-03-23 11:34:03 -07:00
Tim Hockin aa9b8ec0fe Replace uses of ObjectGoPrintDiff with cmp.Diff
ObjectGoPrintDiff is already a shim over cmp.Diff, so no actual output
or behavior changes

Kubernetes-commit: 9627c50ef37f3b5274486e6f5ad37b73b1b69bf0
2023-03-23 11:31:25 -07:00
Tim Hockin 1431da0154 Replace uses of diff.ObjectDiff with cmp.Diff
ObjectDiff is already a shim over cmp.Diff, so no actual output or
behavior changes

Kubernetes-commit: 29c0b73d640b6e50c4f2dfeee7b07ca66a530dbd
2023-03-23 11:29:01 -07:00
Tim Hockin 61d7d16e0e Replace apimachinery diff.StringDiff with cmp
I forced failures of most of these tests and verified readability

Kubernetes-commit: 97bab44cae3857710bfb072d233e654784082ee3
2023-03-23 11:10:32 -07:00
iyear b1805a9a4d apiserver/etcd: add request and request_error metrics (#117222)
* apiserver/etcd: add request and request_error metrics

Signed-off-by: iyear <ljyngup@gmail.com>

* apiserver/etcd: rename etcdRequestCounts metric

Signed-off-by: iyear <ljyngup@gmail.com>

---------

Signed-off-by: iyear <ljyngup@gmail.com>

Kubernetes-commit: 4f6714ef42dcdb1b35bb2d8581c1ef83d59f02d1
2023-04-12 22:02:45 +08:00
Lukasz Szaszkiewicz cea854521c cacher: prevent a potential deadlock
waitUntilWatchCacheFreshAndForceAllEvents must be called without
a read lock held otherwise the watchcache won't be able to make
progress (i.e. the watchCache.processEvent method that requries acquiring an exclusive lock)

the deadlock can happen only when the alpha watchlist feature flag is on
and the client specifically requests streaming.

Kubernetes-commit: 476e407ffd2ab393840d3f7a9fd01b71698738a3
2023-04-06 09:54:02 +02:00
Alexander Zielenski 29e89f54e2 move check for noop managed field timestamp updates
this check needs to go after any mutations. After the mutating admission chain, rest.BeforeUpdate (which is responsible for reverting updates to immutable timestamp fields, among other things.) is called in the store.Update function. Without moving this check, it will be possible for an object to be written to etcd with only a change to its managed fields timestamp.

Kubernetes-commit: 2b01f63b115e19e8ac9f8ee8e00dde65c5f40290
2023-03-22 11:18:50 -07:00
Lukasz Szaszkiewicz 89471f9967 watchcache: currentCapacity acquires read lock
Kubernetes-commit: f138d29bf2df1a67883e6c16249eb4f26d34ec0c
2023-04-07 10:16:46 +02:00
Ben Luddy 83b0e6192f Remove vestigal err check from CEL admission controller.
Validate no longer returns an error.

Kubernetes-commit: 13192176002ae4fd31bdaaff6083deb9e6256880
2023-03-09 16:13:12 -05:00
hasheddan 330de968e5 Fix gorestful typos in the APIServerHandler.Director docstring
Fixes up a few misspellings of gorestful in the Director field docstring
for APIServerHandler.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>

Kubernetes-commit: b1e3326eaeee982d3d5c1618022c306d50fe631e
2023-01-14 12:10:00 -05:00
Wojciech Tyczyński e4d6a4de7c Deflake TestGetListNonRecursive
Kubernetes-commit: 05f4e497f1d692031b31c27098abc1e838e8814b
2023-03-29 13:46:49 +02:00
Anish Ramasekar 20de79e7e1 [KMSv2] add tests for generate transformer
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>

Kubernetes-commit: f2fe1fff655968f2b5959b387683637c5a1f8e66
2023-03-23 16:40:16 +00:00
Rita Zhang bef9a879e0 Clean up kms test
Signed-off-by: Rita Zhang <rita.z.zhang@gmail.com>

Kubernetes-commit: 906f0607efc5e12b3108e2b12cdac119fdba7909
2023-03-22 22:38:36 -07:00
Stanislav Laznicka 7f7fd322de don't ignore UID impersonation in webhook clients
Kubernetes-commit: 8d3a498c879aab30d90d3429ffd364c3c7afe9de
2023-03-16 11:14:29 +01:00
Andy Goldstein bae527459c admission ApplyTo: take in clients
Change admission ApplyTo() to take in clients instead of a rest.Config.

Signed-off-by: Andy Goldstein <andy.goldstein@redhat.com>

Kubernetes-commit: 364b66ddd6554a898724b6781fd90a15a38ddb41
2023-03-14 16:24:50 -04:00
scott d681755704 ftr(etcd): add benchmarks
Kubernetes-commit: db92cc1388021495e47dbe257a9e6559031cfe51
2023-03-29 21:52:38 +08:00
wangxiang b1bc32fa21 optimize watch-cache getlist (#116327)
* ftr(watch-cache): add benchmarks

* ftr(kube-apiserver): faster watch-cache getlist

* refine: testcase name

* - refine var name make it easier to convey meaning
- add comment to explain why we need to apply for a slice of runtime.Object instead of making a slice of ListObject.Items directly.

Kubernetes-commit: 75f17eb38fc8bbcb360d43dffce6e27a7159d43f
2023-04-12 00:28:10 +00:00
Monis Khan 242620fc19 kmsv2: validate encrypt response at DEK generation time
Prior to this change, we wait until the DEK is used to perform an
encryption before validating the response.  This means that the
plugin could report healthy but all TransformToStorage calls would
fail.  Now we correctly cause the plugin to become unhealthy and do
not attempt to use the newly generated DEK.

Signed-off-by: Monis Khan <mok@microsoft.com>

Kubernetes-commit: 5469c198e5d074c7e88e14c3dcbc3ebb2b37cfa8
2023-03-22 21:27:47 -04:00
Alexander Zielenski 63812e2f9b allow multiple sources to add/remove from discovery without clobbering each other
Kubernetes-commit: 0740b11073d08262d4d6687ceedd8f0c71819ebd
2023-03-20 10:05:15 -07:00
Jeffrey Ying a8fe83c416 Update kube_features comment for aggregated discovery and openapi v3
Kubernetes-commit: 0e4cece0e896d3fb6ef61f2880fa4ee3fe1f3fea
2023-03-21 15:18:41 -04:00
Monis Khan 9c69aab43c Clear front proxy headers after authentication is complete
This matches the logic we have for the Authorization header as well
as the impersonation headers.

Signed-off-by: Monis Khan <mok@microsoft.com>

Kubernetes-commit: e9866d2794675aa8dc82ba2637ae45f9f3a27dff
2023-03-20 13:11:38 -04:00
Tim Allclair c86f7c33d0 Clean up reference to deleted denied function
Kubernetes-commit: d109f60a0579bcc34244cbc74068be07d18443e6
2023-03-20 18:24:10 -07:00
Aldo Culquicondor 62e2e0a1b7 Preserve UID/ResourceVersion in the BindingREST endpoint
Change-Id: If4023da10c455963a320fdb9fc2a73c099bea3db

Kubernetes-commit: 62889f416cb60f66b3f04810ef2475c425b8394a
2023-03-16 16:35:39 -04:00
Wojciech Tyczyński 107350e97d Fix missed watch events
Kubernetes-commit: 3277d85604d7d8845f56f670fb83b65982cdddf3
2023-03-01 12:16:40 +01:00
Max Smythe 41adff8c93 Custom match criteria (#116350)
* Add custom match conditions for CEL admission

This PR is based off of, and dependent on the following PR:

https://github.com/kubernetes/kubernetes/pull/116261

Signed-off-by: Max Smythe <smythe@google.com>

* run `make update`

Signed-off-by: Max Smythe <smythe@google.com>

* Fix unit tests

Signed-off-by: Max Smythe <smythe@google.com>

* Fix unit tests

Signed-off-by: Max Smythe <smythe@google.com>

* Update compatibility test data

Signed-off-by: Max Smythe <smythe@google.com>

* Revert "Update compatibility test data"

This reverts commit 312ba7f9e74e0ec4a7ac1f07bf575479c608af28.

* Allow params during validation; make match conditions optional

Signed-off-by: Max Smythe <smythe@google.com>

* Add conditional ignoring of matcher CEL expression validation on update

Signed-off-by: Max Smythe <smythe@google.com>

* Run codegen

Signed-off-by: Max Smythe <smythe@google.com>

* Add more validation tests

Signed-off-by: Max Smythe <smythe@google.com>

* Short-circuit CEL matcher when no matchers specified

Signed-off-by: Max Smythe <smythe@google.com>

* Run codegen

Signed-off-by: Max Smythe <smythe@google.com>

* Address review comments

Signed-off-by: Max Smythe <smythe@google.com>

---------

Signed-off-by: Max Smythe <smythe@google.com>

Kubernetes-commit: e5fd204c33e90a7e8f5a0ee70242f1296a5ec7af
2023-03-16 04:20:31 +00:00
Igor Velichkovich 05d2078e68 Matchconditions admission webhooks alpha implementation for kep-3716 (#116261)
* api changes adding match conditions

* feature gate and registry strategy to drop fields

* matchConditions logic for admission webhooks

* feedback

* update test

* import order

* bears.com

* update fail policy ignore behavior

* update docs and matcher to hold fail policy as non-pointer

* update matcher error aggregation, fix early fail failpolicy ignore, update docs

* final cleanup

* openapi gen

Kubernetes-commit: 5e5b3029f3bbfc93c3569f07ad300a5c6057fc58
2023-03-15 07:36:02 +00:00