Commit Graph

357 Commits

Author SHA1 Message Date
Abu Kashem bf34b41185 refactor finishRequest
Kubernetes-commit: a8ff821a19b819a54a54d027ec631eab2ffaedc3
2021-03-22 18:01:33 -04:00
Abu Kashem 28c097bee7 move FinishRequest to its own package
Kubernetes-commit: 393a1f73fbaa1bf1facb8882eaf4fead16b94f58
2021-03-22 16:39:14 -04:00
Antoine Pelisse 49b6ebdaae fieldmanager: Strip managedfields BEFORE we update the timestamp
Kubernetes-commit: c8be9651ce0de1eee3fa785882fe01dee4b15d37
2021-03-09 12:46:07 -08:00
Danil-Grigorev de3d390777 Make selectors atomic
Ensure that all label selectors are treated as atomic values,
to exclude situations when selectors are being corrupted by
different actors attempting to apply their overlapping definition
for this field with server-side-apply.

Kubernetes-commit: d8a7764b6396b90313ae7bd50a845f4da4705d67
2021-01-12 18:29:56 +01:00
Kevin Delgado 86db6c67fb Server-Side Apply: Status Wiping/Reset Fields
Adds and implements ResetFieldsProvder interface in order to ensure that
the fieldmanager no longer owns fields that get reset before the object
is persisted.

Co-authored-by: Kevin Wiesmueller <kwiesmul@redhat.com>
Co-authored-by: Kevin Delgado <kevindelgado@google.com>

Kubernetes-commit: a1fac8cbd9289d95db4831a83239292ed56ce59d
2021-03-09 23:54:55 +00:00
Kevin Wiesmueller b101f44b76 cleanup managedFields admission and test
Kubernetes-commit: 2d1ba0c35829a2f146a712d49cb21f382c9894cb
2021-03-04 23:20:51 +01:00
Kevin Wiesmueller 8ef7c0686d only use managedFields decoding for admission check
Kubernetes-commit: 98d498117b5566c1229d754d97923f61600660d8
2021-03-01 20:29:15 +01:00
Kevin Wiesmueller 7c5bd1b084 harden managedFields decoding
Kubernetes-commit: 470ad03d076cae44bc98c64a08eea32e65f1bb9f
2021-03-01 19:58:56 +01:00
Kevin Wiesmueller 543879f479 fix test dependencies
Kubernetes-commit: 295e47f60b64332ef4e3268db282184357440675
2021-02-26 20:33:36 +01:00
Kevin Wiesmueller e4b883c5c7 update licenses and bazel
Kubernetes-commit: 1a8e2bf0358651151a6440717b4de1f662c4571b
2021-02-26 20:14:22 +01:00
Kevin Wiesmueller 04593d2277 prevent fieldManager admission from wrapping nil
Kubernetes-commit: 22dfa6ae1b431cb8e8afe72ce7d60360bf766337
2021-02-26 20:14:11 +01:00
Kevin Wiesmueller a69b2cb302 use existing validation code and decoding in fieldManager admission
Kubernetes-commit: fc1841d72f7418dd2606fb796f2a1b664bb3a721
2021-02-26 20:03:10 +01:00
Kevin Wiesmueller f9c68c0e80 export and cleanup managedFields decoding
Kubernetes-commit: 589ca1be1c9e75b1730feacd1af6e2c817f693ac
2021-02-26 17:47:52 +01:00
Kevin Wiesmueller 82e671a5f8 add managedFields admission
Kubernetes-commit: f86b59ab79227929e7f283b859b4c59317399807
2021-02-11 16:22:16 +01:00
Kevin Wiesmueller 81cd3ef7b0 fix admission controller
Kubernetes-commit: 429a96da5e856c435b08b50791d462120724c475
2021-02-11 16:11:43 +01:00
Kevin Wiesmueller 7da058f6bb disable webhook for testing
Kubernetes-commit: ffbae9c5b4a3df9f7400d0047a5d7a957adf295d
2021-02-01 17:56:49 +01:00
Kevin Wiesmueller 08a5711ffb update bazel
Kubernetes-commit: a06f981fb1388976cd6427d7a4284d36dd2f2448
2021-01-14 20:33:50 +01:00
Kevin Wiesmueller a29734176f use managedFields admission controller in create/patch/update
Kubernetes-commit: 3d306e222de3b13a55030a53fef93622bb300646
2021-01-14 20:15:11 +01:00
Kevin Wiesmueller 4a5fdad93b implement managedFields admission controller
Kubernetes-commit: d5ae113e8dfba62709b1fccb8dbc26c6dde9b3e5
2021-01-14 20:14:38 +01:00
chymy f5152b019f Fix static failures for vendor/k8s.io/apiserver/pkg/endpoints/handlers
Kubernetes-commit: 04515b9c0a8634ddbb48883cdceb1c265ae97015
2021-02-26 21:01:55 -05:00
Alan Zhu 3292215ff4 at most every may result in less than expected times if overloaded
Signed-off-by: Alan Zhu <zg.zhu@daocloud.io>

Kubernetes-commit: 67234271ef50da475b4627b484b3b45ee54e8f8d
2021-02-25 16:27:42 +08:00
Maciej Borsz b4f179e734 Use more real world examples in BenchmarkSerializeObject
Kubernetes-commit: f01f2b122923798d60893c6c189a204b94fe5723
2021-02-18 10:56:51 +01:00
Tim Bannister b29ffb4398 Update generated code
Kubernetes-commit: 284e03e1abde67cae5520a9b61497a71cca78e90
2021-02-15 22:50:30 +00:00
Maciej Borsz f407d7228e Add BenchmarkSerializeObject* benchmarks
Kubernetes-commit: 2228d7ce2650ba4cc5811a761d9f54e09ea6d99e
2021-02-17 15:03:53 +01:00
yoyinzyc 74c8267082 add context to metrics in apiserver/endpoint
Kubernetes-commit: 266d67bd5124725befe775d580289b67a59f496c
2021-01-20 13:13:00 -08:00
Abu Kashem 026eb846a4 apiserver: plumb context with request deadline
- as soon as a request is received by the apiserver, determine the
  timeout of the request and set a new request context with the deadline.
- the timeout filter that times out non-long-running requests should
  use the request context as opposed to a fixed 60s wait today.
- admission and storage layer uses the same request context with the
  deadline specified.

we use the default timeout enforced by the apiserver:
- if the user has specified a timeout of 0s, this implies no timeout on the user's part.
- if the user has specified a timeout that exceeds the maximum deadline allowed by the apiserver.

Kubernetes-commit: e416c9e574c49fd0190c8cdac58322aa33a935cf
2020-11-26 23:53:20 -05:00
David Eads 67507290ad finish removal of exportoptions
Kubernetes-commit: 37cc89ed8d5194f288bc9f9633e6142647631a07
2021-01-22 09:21:56 -05:00
Maciej Borsz 78e27f49d3 Add trace to SerializeObject
Kubernetes-commit: e93836d9b35f5ec231da91807f00dab3d1a28fd9
2021-01-12 09:45:43 +01:00
lala123912 5d990a9e20 staging\src\k8s.io\apiserver\pkg\endpoints:migrate to structured logs
Kubernetes-commit: 12076ff3e587be00f1ef52e546fa3a3a85d41e7b
2021-01-15 15:23:55 +08:00
Dr. Stefan Schimanski a2b6f03b6e apiserver: print unknown responsewriter error strings, not only %#+v
Kubernetes-commit: b0ecbbc3cbd9bd811d5498a1dd95d516bcd82434
2020-11-26 13:39:56 +01:00
Rajalakshmi-Girish c41f156212 fixes the unit tests to be more tolerant with error messages
Kubernetes-commit: 98948ad8092b41ebc08d50aa557b2d7ba5496e7d
2020-11-27 08:21:56 +00:00
Jie Shen 7dd2afd324 Revert "Cleanup: remove sanity check for CVE-2019-11253"
Kubernetes-commit: e3df70364594cdb7d0b321a405f1c0718c2c9b54
2020-12-11 09:38:21 +08:00
drfish 95a1d549eb Cleanup sanity check for CVE-2019-11253
Kubernetes-commit: 4ac5844ec076e9bcc31fd0a79ca17eaf4fb1bdb3
2020-12-08 23:19:21 +08:00
Ken Sipe 92af261bb8 fix SA2006 value of err not used
Signed-off-by: Ken Sipe <kensipe@gmail.com>

Kubernetes-commit: a549d0a75e3a09d26f3a316982ff3711be4ed1d2
2020-06-25 17:23:37 -05:00
Ken Sipe 8877e7bd70 fix S1039 unnecessary use of fmt.Sprintf
Signed-off-by: Ken Sipe <kensipe@gmail.com>

Kubernetes-commit: 168677400c964fe823b985db35b5e1473db17b0f
2020-06-25 17:04:41 -05:00
lala123912 36a172d35e Code optimization for add additional information to log trace in api server
Kubernetes-commit: 5d61e18a4343773105e39c36b944b4f223e70eaf
2020-11-23 16:27:05 +08:00
Tim Hockin c2f3123308 Make tests deal with old and new topology labels
Kubernetes-commit: 3bd337baf487a0ad9d748e7e0362b3d1b5eb5c4d
2020-11-06 08:47:32 -08:00
Jordan Liggitt cec339c07a Revert "plumb context with request deadline"
This reverts commit 83f869ee1350da1b65d508725749fb70d0f535f2.

Kubernetes-commit: afd92b3b3ea8fa8e3dbe2521d6ce213c809d25c7
2020-11-19 18:15:04 -05:00
Haowei Cai 77d77260fb unit and integration tests
apiserver dedups and adds warning in CREATE/UPDATE/PATCH requests;
also handles duplication caused by mutating admission.

Kubernetes-commit: 8bcf34a203efa596ac3b65da9afd6b6c764e78a9
2020-11-18 12:46:20 -08:00
Haowei Cai 00bc4d7843 apiserver dedups owner references and adds warning
for CREATE and UPDATE requests, we check duplication before managedFields
update, and after mutating admission; for PATCH requests, we check
duplication after mutating admission

Kubernetes-commit: ffc54ed1d2cbf4396fcc498beeb6ad34ac3df69c
2020-11-18 12:35:45 -08:00
Abu Kashem 46e3e4810e plumb context with request deadline
- as soon as a request is received by the apiserver, determine the
timeout of the request and set a new request context with the deadline.
- the timeout filter that times out non-long-running requests should
use the request context as opposed to a fixed 60s wait today.
- admission and storage layer uses the same request context with the
deadline specified.

Kubernetes-commit: 83f869ee1350da1b65d508725749fb70d0f535f2
2020-10-30 16:30:05 -04:00
Jefftree c13cd1f0d3 Make versionconverter functions private
Kubernetes-commit: 1f986cc69d8ac5b579ccc2e6817fd0a07903692b
2020-10-22 13:21:38 -07:00
Jefftree ce4c2eff1a Reuse SSA type converter for resources in the same API Group
Kubernetes-commit: 7182d84b109bb1c928bd5bf92d8c175432b9eeae
2020-10-20 11:16:51 -07:00
Andrea Nodari b4becfdb04 Add yaml util to unmarshal numbers into int/float
Kubernetes-commit: 04d972cb4bab108b12f181f86b7c0f0854a1037a
2020-10-23 17:26:10 +02:00
Joe Betz 2c72507385 Tag LabelSelector with +structType=atomic
Kubernetes-commit: 8874bdf00402b55cf5ede88a5ba4dfc94e9f4399
2020-08-11 11:34:15 -07:00
Antoine Pelisse d0b4a78e16 Do not update managedFields timestamp when they don't change
Kubernetes-commit: fedc0b7093e396aaf1fca7fd6f145a0f3cfd5c47
2020-10-01 10:53:16 -07:00
Andrea Nodari 618f4b129a Make the creation of namespace using POST and PATCH consistent
PATCH verb is used when creating a namespace using server-side apply,
while POST verb is used when creating a namespace using client-side
apply.

The difference in path between the two ways to create a namespace led to
an inconsistency when calling webhooks. When server-side apply is used,
the request sent to webhooks has the field "namespace" populated with
the name of namespace being created. On the other hand, when using
client-side apply the "namespace" field is omitted.

This commit aims to make the behaviour consistent and populates the
"namespace" field when creating a namespace using POST verb (i.e.
client-side apply).

Kubernetes-commit: 3cb510e33eecbdc37aad14f121396ccfbf5268cb
2020-09-21 12:13:12 +02:00
Andrea Nodari 99200040ed Do not allow manual changes to manageFields via subresources
If a request tries to change managedFields, the response returns the
managedField of the live object.

Kubernetes-commit: c522ee08a3d248ec1097e3673119ffa7a4e1ef7b
2020-07-14 17:42:54 +02:00
Lukasz Szaszkiewicz ac3c7faf5d deferredResponseWriter returns after calling the Close() method
previously all sorts of errors including a data race were possible because deferredResponseWriter resets the writer and returns it to the pool.

an attempt to write to a nil writer will lead to "invalid memory address or nil pointer dereference"
sharing the same instance of deferredResponseWriter might lead to "index out of range [43] with length 30" and "recovered from err index > windowEnd" errors

Kubernetes-commit: e6f98311d00f083c1b980ed7434d2e9769fa921f
2020-09-07 12:42:36 +02:00
wojtekt 14d59e2950 Stop setting SelfLink in kube-apiserver.
Kubernetes-commit: 2539912a2245a53f6612100a32af96dd71a2ad4f
2019-07-26 15:48:37 +02:00