Commit Graph

5062 Commits

Author SHA1 Message Date
Mike Spreitzer c5a0365136 Fix nits noticed in recent code review
Kubernetes-commit: 1844a052776bce33322ce20c11b2902403655ef8
2021-10-18 23:51:48 -05:00
Kubernetes Publisher 53ec746131 Merge pull request #105674 from tkashem/apf-debug
apf: include seat information in per request debug dump

Kubernetes-commit: 0cef26182cf83091317c17ebb28918391ecf3583
2021-10-16 08:42:00 +00:00
Lukasz Szaszkiewicz 5c13ee7dbf genericapiserver: indroduce muxCompleteSignals for holding signals that indicate all known HTTP paths have been registered
the new field exists primarily to avoid returning a 404 response when a resource actually exists but we haven't installed the path to a handler.
it is exposed for easier composition of the individual servers.
the primary users of this field are the WithMuxCompleteProtection filter and the NotFoundHandler.

Kubernetes-commit: ddfbb5d2bb57ee44b3e10f0b58f9cc7001f55802
2021-10-15 18:14:20 +02:00
Abu Kashem fb57181f8d apf: include seat information in request dump
Kubernetes-commit: 8e33a3b2cc97813724b64be36fe977290db3053a
2021-10-14 09:27:54 -04:00
Lukasz Szaszkiewicz ab8ebf841f apiserver: adds WithMuxCompleteProtection filter
It puts the muxCompleteProtectionKey in the context if a request has been made before muxCompleteSignal has been ready.
Putting the key protect us from returning a 404 response instead of a 503.
It is especially important for controllers like GC and NS since they act on 404s.

The presence of the key is checked in the NotFoundHandler (staging/src/k8s.io/apiserver/pkg/util/notfoundhandler/not_found_handler.go)

The race may happen when a request reaches the NotFoundHandler because not all paths have been registered in the mux
but when the registered checks are examined in the handler they indicate that the paths have been actually installed.
In that case, the presence of the key will make the handler return 503 instead of 404.

Kubernetes-commit: b71fa61b79598b723c3ee23217e0b44564d90b52
2021-10-14 14:25:54 +02:00
Lukasz Szaszkiewicz 1fc498576a apiserver: indroduces NotFoundHanlder
The new handler is meant to be executed at the end of the delegation chain.
It simply checks if the request have been made before the server has installed all known HTTP paths.
In that case it returns a 503 response otherwise it returns a 404.

We don't want to add additional checks to the readyz path as it might prevent fixing bricked clusters.
This specific handler is meant to "protect" requests that arrive before the paths and handlers are fully initialized.

Kubernetes-commit: 53867975e72c7a2d2dd94aac6bd2869411f92094
2021-10-15 17:37:16 +02:00
Jefftree f03b3720c2 Feature flag openapi v3
Kubernetes-commit: 8cb2b798c69e0b6c9cef2f06da14fad157e018ba
2021-10-13 09:35:53 -07:00
Kubernetes Publisher 2e373512bd Merge pull request #105660 from tkashem/apf-debug
apf: update queue debug to include queue sum stats and next dispatch R in seat-seconds

Kubernetes-commit: 92f67c6347c6ed5c5d2846bc5d26e49fe3217b37
2021-10-13 08:53:50 -07:00
Abu Kashem 20ef863037 apf: include seats in use in queue dump
Kubernetes-commit: edf657a33a70ff942d9a0695f602bed13e5e9628
2021-10-13 10:39:37 -04:00
Abu Kashem 88992ba87a apf: change QueueDump to use SeatSeconds
Kubernetes-commit: 3ef5752edf5b3f7076041368b1c1b5396ee534d7
2021-10-13 10:22:41 -04:00
Abu Kashem e4ae91b4a2 apf: include queue sum stats in debug
Kubernetes-commit: 87c7401eb853678da804ff503e266daeef5ad126
2021-10-13 10:14:30 -04:00
Kubernetes Publisher 2bf6f3434e Merge pull request #105647 from wojtek-t/disable_pf_for_watches
Disable P&F for watch requests

Kubernetes-commit: f0e80a6f10825142865a4069b6ec9a27c0eaa6c5
2021-10-13 02:53:50 -07:00
wojtekt f578e7708d Disable P&F for watch requests
Kubernetes-commit: 763e6d1dbb6371c66b62e4ea4c1fcbee1c113bda
2021-10-13 07:43:05 +02:00
Kubernetes Publisher a5bd3b4739 Merge pull request #105592 from MikeSpreitzer/test-final-seats
Update queueset_test.go for FinalSeats

Kubernetes-commit: cf5eced48049310dcf591537958fceeb78298d82
2021-10-13 00:43:38 +00:00
Kubernetes Publisher 518b315d81 Merge pull request #103539 from wojtek-t/pf_estimate_watch_width
Estimate width of the request based on watchers count in P&F

Kubernetes-commit: af2ed2569d56a9f223b82ecee82d9fc91448890a
2021-10-12 16:42:43 +00:00
Kubernetes Publisher be4fe9cf7c Merge pull request #105615 from MikeSpreitzer/correct-linger-logging
Unconfuse logging wrt additional latency

Kubernetes-commit: d9896a23bcec2cdadd398bff0bb967a17ad7893d
2021-10-12 08:42:29 +00:00
Mike Spreitzer 56c6fd034b Unconfused logging wrt additional latency
Fixed confusion in queueSet logging wrt seats and additional latency.

Kubernetes-commit: 42f698daad73d9c010027bb60fff9728168c71da
2021-10-11 13:21:46 -07:00
Kubernetes Publisher 5b4ea887d3 Merge pull request #105605 from sttts/sttts-watch-cache-multiple-blockers
apiserver/watchcache: doc watch event fan-out to blocked watchers better

Kubernetes-commit: 194a3dea5de35dc819a49ccac4c0c34d35e39c39
2021-10-11 20:45:07 +00:00
Kubernetes Publisher 09b2241faf Merge pull request #105469 from MikeSpreitzer/advance-epoch
Advance epoch

Kubernetes-commit: 9253fefb8f2a76cb301fa7cb4ccfe86555856ae9
2021-10-11 12:44:57 +00:00
scott 5d7782c370 fix goroutine leak in the DeleteCollection
Kubernetes-commit: 53df1caeef608dd82d6c0d2433646f538dcd2b5a
2021-10-11 20:21:27 +08:00
Kubernetes Publisher 8f2e61dd8f Merge pull request #105593 from MikeSpreitzer/fix-finishing-logs
Update log messages in queueSet::finishRequestLocked

Kubernetes-commit: 025ac2d57a99457070e5c53028c293e056b2ad4d
2021-10-11 08:45:29 +00:00
Mike Spreitzer 487fea8e61 Update log messages in finishRequestLocked
Make them clearer and consistent.

Kubernetes-commit: 3906e187a685cebddef85226950fc36f65e8ddb4
2021-10-09 23:48:41 -07:00
Mike Spreitzer d69d77c659 Update queueset_test.go for FinalSeats
Track the introduction of FinalSeats.

Give up on calculating expected results for tests with added latency,
because I did not find an easy and obvious way to do it.

Kubernetes-commit: 0fc595e03360ba7fc4c3e251d4b41f39172aca72
2021-10-08 22:27:39 -07:00
Kubernetes Publisher 733ad59e08 Merge pull request #105475 from aojea/egress-aggregator-upgrade
apiserver aggregator upgrade unit test

Kubernetes-commit: 76cac9dcfec1370b49b0ab2a1afe82cc2cefc0f8
2021-10-08 20:42:34 +00:00
Kubernetes Publisher 3138aff0d7 Merge pull request #105573 from sttts/sttts-etcd-storage-free-kv-early
apiserver/storage: free etcd kv early in list decoding loop

Kubernetes-commit: f6facec054611fa88cdac421704c1915523095e6
2021-10-08 20:42:33 +00:00
Dr. Stefan Schimanski c0ff3feb85 apiserver/watchcache: doc watch event fan-out to blocked watchers better
Kubernetes-commit: 94b2bb1d3dcfe7973329cc56024f449adde4086c
2021-10-08 17:05:27 +02:00
Dr. Stefan Schimanski 2f0da0d2ea apiserver/storage: free etcd kv early in list decoding loop
Kubernetes-commit: dbf98e42664c8a3a104fe06e0e362497fca2902d
2021-10-08 14:05:26 +02:00
Kubernetes Publisher 53f4bdcc6f Merge pull request #105556 from MikeSpreitzer/relax-test-different-widths
Relax TestDifferentWidths

Kubernetes-commit: 8d0acaa3ffdff8986e39051c0015278dd4fcab0f
2021-10-08 12:43:28 +00:00
wojtekt c3ef02ad27 Adjust final seats if they don't fit the limit
Kubernetes-commit: c5a77d8a761b0651b53864f9e396d6f23efd01d2
2021-10-08 11:14:11 +02:00
Kubernetes Publisher 72d4855673 Merge pull request #105559 from MikeSpreitzer/refactor-work
Calculate the work in each request just once

Kubernetes-commit: 0e260a027bb1c58b8764a69a437fc08e27c9e8c0
2021-10-08 08:48:42 +00:00
Mike Spreitzer a5192405d9 Calculate the work in each request just once
Kubernetes-commit: f2c46c8f9d0b360cf913e22c222d9954b4ff9a76
2021-10-07 17:20:56 -07:00
Mike Spreitzer 1b1389676f Relax TestDifferentWidths
Make the margin a little wider because flakiness was reported.

Kubernetes-commit: 10326282f9d1abcd4a45b737628286d40971efea
2021-10-07 16:09:53 -07:00
Kubernetes Publisher ebff4efdaf Merge pull request #105243 from tkashem/apf-seats
apf: introduce final seats

Kubernetes-commit: ee2ac08907575ac47a342ebac584cf59b7f71fdb
2021-10-07 20:42:48 +00:00
Kubernetes Publisher 4491b7a6a3 Merge pull request #105403 from tkashem/add-watch-init-latency
apf: print watch initialization latency in httplog

Kubernetes-commit: 5c3a789ad421413b982cf098dd8baaebcbe62e5c
2021-10-06 17:42:41 -07:00
Ben Luddy 7324607749 Free APF seats for watches handled by an aggregated apiserver.
Kubernetes-commit: 1873915be6be40df20fe35a8e0c7e8e0a620111a
2021-10-06 10:16:46 -04:00
Antonio Ojea 9bb5c950e8 apiserver aggregator upgrade unit test
Co-authored-by: Chao Xu <xuchao@google.com>

Kubernetes-commit: 3627462ef3e741f2b8e6de7ed3f51be3122cbc6d
2021-10-05 00:19:43 +02:00
Mike Spreitzer f7bfb170d7 Keep the progress meter R from overflowing
Also add test for that situation.

Kubernetes-commit: a797fbd96de8c67aaed58aef54fbe9f0eb94a2c2
2021-10-01 22:04:05 -07:00
Abu Kashem 733c3f75e9 apf: print watch init latency in httplog
Kubernetes-commit: 9b21e11cf9f4cda7c985a588f60925f0766fac02
2021-10-01 10:18:19 -04:00
Kubernetes Publisher 374066e451 Merge pull request #104557 from tkashem/optimize-httplog
apiserver: construct logger for httplog only when log level is  3

Kubernetes-commit: afd55590e251044c8091b19e24a85a5bc16f41c9
2021-10-06 08:41:54 +00:00
Abu Kashem 9560ec6e92 introduce final seats for work estimate
Kubernetes-commit: 3d6cc118fee15313419bf7aa0082a2a608ec62f6
2021-09-24 15:18:27 -04:00
Jordan Liggitt 522eef3273 vendor sigs.k8s.io/json
Kubernetes-commit: 434ce4336ab06b3c34208822d558c0432ada3ad3
2021-09-14 18:20:36 -04:00
Jordan Liggitt 18b69ef17d Switch from json-iterator to utiljson
Kubernetes-commit: bba877d3a6d0e6498d5e43a54939d5e4e8baee1a
2021-09-14 17:54:37 -04:00
Lukasz Szaszkiewicz b96eea9892 allow for passing a custom handler to the empty delegate
Kubernetes-commit: 207478c1e6f94b26d8033d5edc7a8a91c69ef716
2021-09-02 14:22:23 +02:00
Abu Kashem a1d74a4e54 remove httplog filter from handler chain when klog.v < 3
Kubernetes-commit: b05d805fd3337d3e3ea6a195883a4eb9c66a7b8a
2021-08-24 14:29:49 -04:00
Kubernetes Publisher 3df972bf11 Merge pull request #105412 from MikeSpreitzer/define-seat-seconds
Define datatype for seat-seconds and prevent overflow

Kubernetes-commit: 6f942a0701bec803e68845fc1c7ceefa5dcbd8e1
2021-10-05 12:49:21 +00:00
Kubernetes Publisher 55be9c76d9 Merge pull request #104920 from tkashem/response-writer-cleanup
apiserver: decorate http.ResponseWriter correctly

Kubernetes-commit: efa9029a0db2fa8e97dd6f54d92370f0a8c74187
2021-10-05 08:48:02 +00:00
Kubernetes Publisher 706a6d89cf Merge pull request #105103 from tkashem/extend-audit-policy
apiserver: refactor PolicyRuleEvaluator interface

Kubernetes-commit: 70d1360ab8eb9d80f71f83584443e61e278f0211
2021-10-05 00:43:55 +00:00
Kubernetes Publisher 4340b9bf56 Merge pull request #104227 from astraw99/fix_typo
Fix typo `registry`

Kubernetes-commit: 0465cd7d04df7c6f7737bc850538eefd27400fa2
2021-10-02 00:42:24 +00:00
Mike Spreitzer dc449969cc Use SeatSeconds
Kubernetes-commit: 4b5e1398199282f471d0f332eefeb5c2415bdb01
2021-10-01 15:33:37 -07:00
Mike Spreitzer 0cb46ec2f7 Draft datatype for seat-seconds
Kubernetes-commit: d866f9445831687ab3254d754b13a4acf271882f
2021-10-01 13:29:35 -07:00