Commit Graph

481 Commits

Author SHA1 Message Date
Kevin Delgado 613f696b0b Manually set GVK in extract, add commentary to extractor
Kubernetes-commit: dda31bbf2e7a94624e3679e3db56c95e66509ce0
2021-07-08 01:56:58 +00:00
Kevin Delgado 09e56ead9d Initial UnstructuredExtract without caching
Kubernetes-commit: 6e481c5db19cda1ef1b7506c22c0046e440c7fe2
2021-07-03 00:05:11 +00:00
njuptlzf dd5fc094cd Use objGV instead of gvk.GroupVersion
Kubernetes-commit: 15c4d579f08335f33555d3cab5eff41c74e671b9
2021-06-02 14:27:30 +08:00
Kasakaze f0159a94e3 Simplify objGV construction
Co-authored-by: Jordan Liggitt <jordan@liggitt.net>

Kubernetes-commit: 58d7bf67d4694d52610097c72fe79012e19c5da0
2021-06-02 10:53:05 +08:00
Kasakaze da0758027d Simplify objGV construction
Co-authored-by: Jordan Liggitt <jordan@liggitt.net>

Kubernetes-commit: b9b01a0f901513370cf3e981544a79f57e321d67
2021-06-02 10:52:44 +08:00
Kasakaze e7a594074a Simplify objGV construction
Co-authored-by: Jordan Liggitt <jordan@liggitt.net>

Kubernetes-commit: 19c72a6cd05da805b1bec9fe567614ef82bf7beb
2021-06-02 10:52:35 +08:00
Kasakaze 1b73b18c80 Simplify objGV construction
Co-authored-by: Jordan Liggitt <jordan@liggitt.net>

Kubernetes-commit: 0ae6a7bac6ba268c59e82222d69ad91e381e79bc
2021-06-02 10:52:22 +08:00
njuptlzf 790f5a21a7 Fix auditing failed of request: encoding failed
Kubernetes-commit: 329f7d55d1344f728e28ce49728234f9f8f4c5d3
2021-05-17 02:31:08 +08:00
Julian V. Modesto f753bce9f8 Make a public ValidateAnnotationsSize
Kubernetes-commit: 2e771b8e745c4a3be0d5bae3a6dc94087284c73b
2021-05-25 16:01:38 -04:00
Julian V. Modesto a01d02b7fd Make validation totalAnnotationSizeLimitB public.
Replace the forked totalAnnotationSizeLimitB with
apimachineryvalidation.TotalAnnotationSizeLimitB.

Kubernetes-commit: 55ff96301797a503b6ee1d09f0eb2ffc827f01b1
2021-05-18 17:28:11 -04:00
Julian V. Modesto c10cbf5412 Respect annotation size limit for SSA last-applied.
To support CSA and SSA interoperability, SSA updates the CSA
last-applied annotation.

This change ensures we don't set a big last-applied annotation if the
value is over the annotation limits.

Also, make sure that it's possible to opt-out of this behavior by
setting the CSA annotation to "" the empty string.

Kubernetes-commit: 6054320be1e50a450e9d1e19a79caa96f2035d4d
2021-05-18 15:06:48 -04:00
zhuangqh 640ba0e40e docs: fix outdated enhancement doc link
Signed-off-by: zhuangqh <zhuangqhc@gmail.com>

Kubernetes-commit: adf28648cb32d17cd186a6c7e8b264419e6d0759
2021-02-24 15:22:50 +08:00
Abu Kashem b84fa01322 add more context to post timeout request activities
Kubernetes-commit: 66587afb60b10569aa4ed35d53a4a91fcc40abd2
2021-04-09 12:09:35 -04:00
Lukasz Szaszkiewicz a9e68c9b32 let objects without metadata pass through the managedFields admission controller
Not all objects provide metadata. There might be extention servers that allow for creating objects without the metadata field.

This PR changes the managedFileds admission to deal with objects without the metadata field.
Object without that field will be passed directly to the wrapped admission controller for further validation.

Kubernetes-commit: 3dbaf305ae1e52105a338987f3770ff104def68b
2021-04-29 14:08:36 +02:00
Andrea Nodari ca3910bf4a Add nil path to mapping when a CR has no "scale" subresource
This is to prevent the ScaleHandler to drop the entry. In this way
entries just get ignored.

Kubernetes-commit: 5b666a61a170f61c7e223085478b24a03612fa99
2021-04-18 13:55:15 +02:00
Andrea Nodari a178a9c5d1 Drop managed fields entries with unknown fields
This is aligned to the behaviour of server-side apply on main resources.

Kubernetes-commit: c10dd884c494734d12aceb41daaccd1d8da9356b
2021-04-09 17:17:23 +02:00
Andrea Nodari 9c3786c066 Do not add managed fields if a scale entry doesn't own replicas
This happens when a request changes the .status.replicas but not
.spec.replicas

Kubernetes-commit: 8e4b5c849b67b3a12dbd63391a4e75234382ba2c
2021-04-04 19:05:45 +02:00
Andrea Nodari 8c0975e184 Check request info when updating managed fields during scale
- Test all versions to make sure each resource version is in the
  mappings
- Fail when request info contains an unrecognized version. We have tests
  that guarantee that all known versions are in the mappings. If we
  get a version in request info that is not there we should fail fast to
  prevent inconsistent behaviour (e.g. for some reason the mappings is
  not up to date).

Ensure all known versions are in mappings

Kubernetes-commit: 09649e58b5a1368929e194991a763afc8011795e
2021-03-11 16:51:46 +01:00
Antoine Pelisse ddd271ff4e Use ScaleHandler for all scalable resources
Kubernetes-commit: 816e80206c169006de9d0a76cd385ee31c5aff39
2021-03-11 11:05:05 -08:00
Andrea Nodari 8df8282eaf Track ownership of deployments scale subresource
Kubernetes-commit: a9ea98b3b9272a7f7788a0d37891e4b13b9be38d
2021-01-23 18:50:14 +01:00
Andrea Nodari 2ec597ed01 Add "subresource" field to ManagedFieldEntry
This field is useful to namespace the managed field entries of a
subresource and differentiate them from the ones of the main resource.

Kubernetes-commit: 862d256195adf3be5475b1a6935e5feb78f884a5
2021-02-27 17:16:46 +01:00
Jordan Liggitt b97dfc761c allow evictions subresource to accept policy/v1 and policy/v1beta1
Kubernetes-commit: 33ad842480353f2816873bf728d75333948e4817
2021-03-31 16:54:55 -04:00
Kevin Delgado ea32c4f47f Chain the field manager creation calls in newDefaultFieldManager and test
Kubernetes-commit: d37461180a1e5a52aeb85cf5853e000acfeb852d
2021-04-13 16:15:25 +00:00
Abu Kashem bb69e234a6 apiserver: improve correlation by using the audit ID
- when we forward the request to the aggregated server, set the audit
  ID in the new request header. This allows audit logs from aggregated
  apiservers to be correlated with the kube-apiserver.
- use the audit ID in the current tracer
- use the audit ID in httplog
- when a request panics, log an error with the audit ID.

Kubernetes-commit: b607ca1bf3e1cf6152c446ea61ac7fdd9014e1f1
2021-03-02 19:27:43 -05:00
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
Julian V. Modesto dea021183c Add tests for managed fields tracking.
- Test that client-side apply users don't encounter a conflict with
server-side apply for objects that previously didn't track managedFields
- Test that we stop tracking managed fields with `managedFields: []`
- Test that we stop tracking managed fields when the feature is disabled

Kubernetes-commit: f2deb2417a6c542c54606ab17376b26ef1552b87
2020-07-16 17:14:35 -04:00
Ken Sipe ce7f425acc fix S1002 omit comp to bool
Signed-off-by: Ken Sipe <kensipe@gmail.com>

Kubernetes-commit: e8878687b18fd961e9f3e29c1c46fe018157a77d
2020-06-26 10:36:38 -05:00
Antoine Pelisse c4c20f4f7d Update SMD to v4.0.1 and kube-openapi
Kubernetes-commit: f4c145511a0bb62ea7ee1f2154945c84c17ffcd5
2020-08-10 13:02:25 -07:00
Joe Betz 97937c66f2 Revert nested trace PR#88936
Kubernetes-commit: 02cf58102a61b6d1e021e256381ff750573ce55d
2020-07-20 09:55:05 -07:00
Julian V. Modesto fac7ebd95f Implement server-side apply upgrade & downgrade.
- Allow client-side to server-side apply upgrade.

  Ensure that a user can change management of an object from client-side apply to
  server-side apply without conflicts.

- Allow server-side apply to client-side downgrade.

  For an object managed with client-side apply, a user may upgrade to
  managing the object with server-side apply, then decide to downgrade.

  We can support this downgrade by keeping the last-applied-configuration
  annotation for client-side apply updated with server-side apply.

Kubernetes-commit: e4368eb67e363d3d03f81214a8929268d2fe88ff
2019-10-02 11:13:40 -04:00
Joe Betz 7a467399ac Enable nested tracing, add request filter chain tracing incl. authn/authz tracing
Kubernetes-commit: b12ac0abc64adb71d97fbde12f373b1424631f20
2020-03-06 16:11:21 -08:00
Joe Betz 5bb316ec73 Bump to sigs.k8s.io/structured-merge-diff 43c19b to pick up unsetting fields changes PR#166
Kubernetes-commit: 11c38a9c703b825c61d6490e8da85202b760f3b1
2020-06-26 20:05:34 -07:00
Joe Betz ee219411ed Add ResourceVersionMatch parameter to make Resource Version semantics consistent for list
Kubernetes-commit: e214f2408b59c745c199645547948a8ad2a87ac2
2020-05-29 10:44:26 -07:00
AkashSarda e0d29c69be Migrate API server logs to Structured logging framewrok
Kubernetes-commit: af60e7b34d59d635740880a03e7e2587ec9ba041
2020-06-17 21:06:35 +00:00
Antoine Pelisse 025116d4fa Fix fieldType being dropped by older go-clients
Kubernetes-commit: 3f10709e4ce7e14fa9efc019ade3e99bb0a84b8a
2020-04-30 13:38:23 -07:00
Antoine Pelisse 3b7411b225 FieldManager: Reset if we receive nil or a list with one empty item
Kubernetes-commit: ed2cf6ef2cc4f4d358eee038d2d87387614bbf45
2020-05-21 13:23:30 -07:00
Antoine Pelisse cc0f41ad59 fieldManager: Ignore and log all errors when updating managedFields
Kubernetes-commit: 5378a788e471a18594c446888306d826d3b44661
2020-05-08 12:48:09 -07:00
Wei Huang a67f43f565 Remove `EvenPodsSpread` featuregate and related logic
Kubernetes-commit: 133dde63589bfb9f149607d1e8f6ae519d41719f
2020-05-27 14:24:26 -07:00
Tariq Ibrahim d8082ddfe6 s/RelicaSets/ReplicaSets
Kubernetes-commit: 9760dec9dc84d68c6613887128de192b4a66feff
2020-04-29 12:59:05 -07:00
Davanum Srinivas 5879417a28 switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>

Kubernetes-commit: 442a69c3bdf6fe8e525b05887e57d89db1e2f3a5
2020-04-17 15:25:06 -04:00
Antoine Pelisse 05f95a480d managedfields: Update Apply time if neither object nor managedfields have changed
Kubernetes-commit: 5231c6815c7b06248575892f3ec96c15c634d368
2020-03-05 13:13:27 -08:00
Antoine Pelisse c81c86d33f Bump sigs.k8s.io/structured-merge-diff to v3
Kubernetes-commit: df41fd932bef1686b30a1abee477c5009ebabe80
2020-03-05 13:09:50 -08:00
Antoine Pelisse 2ff45c3592 fieldmanager: Add failing test for no-op apply actually writing to etcd
Kubernetes-commit: 7120abe6989afff0d4ad879a4590a960f4ab19f0
2020-03-05 10:09:08 -08:00
Antoine Pelisse 5de3b6339e fieldmanager: Move ManagedFields update logic into its own class
Kubernetes-commit: 39681aa5800492b8e4b4ff5fb82e034376864a37
2020-03-05 10:01:37 -08:00
Antoine Pelisse 82ecbdb375 Don't log "SHOULD NOT HAPPEN" errors more than once per second
Kubernetes-commit: 389dd0a499e4fa79d3d2ef4261aa9f25aa94e6b0
2020-02-26 15:58:57 -08:00
jennybuckley a87d964ed1 Don't save managedFields if object is too large
Kubernetes-commit: ccd9e4e2de32b8708f3a7be159f7a4316449c433
2020-01-22 15:38:27 -08:00
Antoine Pelisse 07f3bde07d Enable field management for all new objects
Kubernetes-commit: a54a52c5de3458bfa5dbe1973d12584f59a5581c
2020-02-10 09:06:18 -08:00
Yu-Ju Hong 809bbdf7f8 Replace Beta OS/arch labels with the GA ones
Beta OS/arch labels have been deprecated since 1.14.
This change replaces these labels with the GA ones.

Kubernetes-commit: bcd975aa6575ae37ec3be3481e44cd0dccd02337
2020-02-12 11:30:39 -08:00
jennybuckley 4e7f113e29 Round times to nearest second before sorting
Kubernetes-commit: 888a322d9ca3070b811b348e05ee4a3ce7da6ae9
2020-02-11 11:54:21 -08:00
Jordan Liggitt 51a2cc34eb Lower server-side apply percentage to 10%
Kubernetes-commit: a657d51ce35eb3886a56ed710805cd68732461ee
2020-02-11 09:15:12 -05:00
Antoine Pelisse 3104ef647b Enable field management for all new objects
Kubernetes-commit: 8438bba5fd911c4674e46519228e6c47b5057346
2020-02-10 09:06:18 -08:00
Joe Betz dced5f29d8 Bump to latest SMD to pick up performance optimizations
Kubernetes-commit: d9faaca64738a50455f38dd88845e8b4b5ca37e2
2020-02-06 15:10:25 -08:00
Antoine Pelisse 977fdf9f57 Add UpdateTwice and UpdateApply benchmarks for fieldmanager
I've also moved the deserialization of the object outside the benchmark
since we're not trying to benchmark the yaml parser.

Kubernetes-commit: a52776fbfb305374d87bb553739f712e055b2206
2020-02-06 09:25:52 -08:00
jennybuckley 216aab95f9 Move mutating admission into finishRequest
Kubernetes-commit: 9bd42287f90feeb0cf1076fcfb180ff6e1d02110
2020-01-29 13:21:58 -08:00
jennybuckley 0fe6670327 Make schema error log message more useful
Kubernetes-commit: fee77388c6d4cc04731f35055d9dfcdf08b0f874
2020-01-29 15:01:44 -08:00
jennybuckley 605316fae2 Re-enable apply for 50% of requests
Kubernetes-commit: 9b679748239faa4d01f13c32af1956ffdbfff9aa
2020-01-23 11:27:20 -08:00
jennybuckley 49d583f0ef Update Structured Merge Diff to V3
Kubernetes-commit: b33fbc84d9d6e7033c36fa3bc321b8fea28ceed6
2020-01-21 15:03:56 -08:00
Jordan Liggitt 223f76bd7a Set managedField probability to 0%
Lowers probability of managedField population on create/update to 0%
until serialization/normalization issues are resolved

Kubernetes-commit: ba23aa98f6574bd1f9781f0d3e61d0496f16fc53
2020-01-14 14:47:35 -05:00
Jennifer Buckley 2ac09e3ec3 Update fieldmanager.go
Kubernetes-commit: 4db3822ebbac30248463eb529d88176f8b258fd9
2020-01-10 11:15:06 -08:00
jennybuckley d516617523 create probabilistic SkipNonAppliedManager
Kubernetes-commit: 6cab3a7bec75e42581e8041395c3ceaa14e07c74
2020-01-09 14:15:34 -08:00
Kevin Wiesmüller 4694e4eb62 fix nits
Kubernetes-commit: a2526286498762de187db23f13da5d747ddd1c90
2020-01-10 00:58:52 +01:00
Kevin Wiesmüller 41bde5b991 change Apply signature and move decoding into handlers
Kubernetes-commit: ddf0d4b8034697a8dca23a3c8bc5620629bd691b
2020-01-09 22:34:33 +01:00
ialidzhikov a521baa66a Minor nit in error message about feature gate stage
Signed-off-by: ialidzhikov <i.alidjikov@gmail.com>

Kubernetes-commit: 1eaa0ee3f9553cce1821434ce64e745ba5b135d2
2020-01-01 15:54:06 +02:00
sshukun 38b2d97314 Fix golint failure not contained in .golint_failures
Kubernetes-commit: 8110e08dd4abd4458b2d3793f5c1eb50069ae7df
2019-12-19 14:40:26 +09:00
Jordan Liggitt e00fbd05dd Use openapi fixture for server-side apply tests
Kubernetes-commit: 2b4fac5760ff390d46c2b9bb373feafe9bd97a38
2019-12-04 10:29:48 -05:00
chenjun.cj d1465bc6c3 fix potential memory leak issue in processing watch request
Kubernetes-commit: b911aa6471a83b1d2b4ea346e5c6b442dfa9b53b
2019-11-18 16:43:15 +08:00
Jordan Liggitt 3aa0552959 Switch TableGenerator/TableConvertor interfaces to metav1
Kubernetes-commit: 36eb250cbb441984260ded6f7abeb796974031c3
2019-11-26 13:13:25 -05:00
chenjun.cj 455e205726 use context to check client closed instead of http.CloseNotifier in processing watch request
Kubernetes-commit: 1daa08c5c8634af762b0352ff4a49bdef6924c5f
2019-11-18 21:27:05 +08:00
Antoine Pelisse bab2370cac Update structured-merge-diff to latest version
Kubernetes-commit: 4f0346530d3e228db20aca6bb484d3ed3c83e33b
2019-11-06 09:53:38 -08:00
attlee-wang 6c2628ccd6 json unmarshal coded error at function applyJSPatch()
Kubernetes-commit: 1da2d00935942a887205f801d4b2acfa227055d2
2019-11-07 20:40:28 +08:00
Ted Yu 48d357e235 Stop Watching when there is encoding error
Kubernetes-commit: 639af77d463a4d07bc5d7d19366bd98310b55724
2019-11-07 14:32:47 -08:00
wojtekt 6fd9ceb0b8 Eliminate some default conversions
Kubernetes-commit: ccded1494116d6aa1ac3f4612b4a613b56a2044a
2019-11-06 14:02:27 +01:00
David Eads bde5fd1449 choose a more unique request timeout default
Kubernetes-commit: e1dd9af8948f983d48dfc0dd81dc31b7d6c1672f
2019-05-30 15:17:40 -04:00
Jianfei Bai a5b9ca7482 feat(apiserver): add user-agent and remote info into trace log for endpoints handlers.
Kubernetes-commit: 91bddd13485082892be8e8e471e358be317c4e9b
2019-10-10 21:30:05 +08:00
Wojciech Tyczynski 5f538bd5e3 Optimize NegotiateMediaTypeOptions
Kubernetes-commit: 1baf4778ae130dc9c305736216b5f5024a962595
2019-10-10 11:49:31 +02:00
jennybuckley 72d976a445 Cap the number of managedFields entries for updates at 10
Kubernetes-commit: 61b19c729892a150b61dde19359f6fb19e8d61f1
2019-09-26 12:53:28 -07:00
jennybuckley 49914e3423 Refactor fieldmanager to be more modular
Kubernetes-commit: d72260b9dad186d96aa621dc8594ca9bd6088937
2019-09-19 13:14:36 -07:00
Jordan Liggitt f7fbf2eee4 Limit YAML/JSON decode size
Kubernetes-commit: 8ef4566cefebf49f9a806a36df2105c9149785a1
2019-09-27 16:36:48 -04:00
wojtekt f186d58ea0 Fix transformObject to work with CacheableObject.
Kubernetes-commit: 1dd43724ce97b610aae7f9e0f3842f0798ec9d7b
2019-08-19 09:55:49 +02:00
wojtekt 4aa6bc019e Implement Encoder.Identifier() method
Kubernetes-commit: cd4215ad8b95773a793f69fc2e8bf93c7ede97aa
2019-08-14 16:23:03 +02:00
Antoine Pelisse 3e0b6a7493 Apply current parses the yaml object 3 times
This is super expensive and not needed at all since we don't have to
reparse the entire object. Remove all allocations but the first one.

Kubernetes-commit: 31c644a1e79c685b52683ed1e84964186a37f3ff
2019-09-25 12:38:38 -07:00
Antoine Pelisse 81b54ad46e Add tests and benchmarks for endpoints and node
Kubernetes-commit: 0b7ea8bb0e9cc10335044f9ef75920d59462a4ca
2019-09-20 13:32:06 -07:00
Antoine Pelisse db9f1ff5ea Improve fieldmanager tests and benchmarks
Kubernetes-commit: fae9d0ee2136d3443cdd87b1a26a06d7857b01ee
2019-09-10 14:06:08 -07:00
Jordan Liggitt d1d66bda16 Propagate context to Authorize() calls
Kubernetes-commit: 92eb072989eba22236d034b56cc2bf159dfb4915
2019-09-24 10:06:32 -04:00
jennybuckley 6c75819b84 Split fieldmanager with interface
Kubernetes-commit: 2c67bf47db8557b6481a5181bdae924e91665988
2019-09-12 10:57:21 -07:00
wojtekt ba8f49cc73 Ensure conversions are registered for metainternalversion codecs
Kubernetes-commit: 54163527a69a8c868b87d301876559495220d1b0
2019-09-11 16:30:08 +02:00
Jordan Liggitt 223a2b92f0 Propagate and honor http.ErrAbortHandler
Kubernetes-commit: 43415294a72d13a6d685ec0e2ecb274fada7587c
2019-09-11 11:16:31 -04:00
Antoine Pelisse 912f3b47b9 Refactor FieldManager tests to make them simpler
This is the first step on this, but there are a few improvements that
I'd like to do here.

Kubernetes-commit: b10ad55119a155b776b272a7139dfbed604b05d6
2019-09-10 15:05:26 -07:00
Ted Yu a50931ba7e Move Update Apply conflict test to field manager test
Kubernetes-commit: 9828f986afd4db79a10c78bee1cc2e449faee3a6
2019-08-30 14:47:39 -07:00
Kubernetes Prow Robot c229c2ca0a Merge pull request #81453 from joshmsamuels/master
Apply will fail with managed fields + tests

Kubernetes-commit: 64718f678695884c93d6d3df8f5799614746bea2
2019-09-13 08:22:53 +00:00
jennybuckley b1cbdafe99 Use CRD validation field in server-side apply
Kubernetes-commit: c0617933d4bec5b00dbbfcd24edb7d7e7fc5509d
2019-08-28 15:28:49 -07:00
Antoine Pelisse 625e8a84fc Add new FieldsType to clarify the format of Fields
Kubernetes-commit: ff4e1f3592bfd51aea3018ed7e0a8579e5c0eea1
2019-08-21 16:13:53 -07:00
jennybuckley 263df041f9 Add tests
Kubernetes-commit: 3279c73945553e211ddb7812e07b3c9d46b5e96a
2019-08-22 13:27:38 -07:00
jennybuckley 350fef76f5 Only update managedFields on update if it already exists
Kubernetes-commit: 9a12e37a6dc28fd1d209eb84c210eb0723e6e38f
2019-06-05 14:09:08 -07:00
jennybuckley dcedf932c2 Make sure no op updates don't affect the resource version
Kubernetes-commit: aa1f01ec7e6ebf29444b93de7c3cb65a1a54d47e
2019-08-20 15:09:42 -07:00
Di Xu d9e587908f populate object name for admission attributes when CREATE
Kubernetes-commit: 34cab8f80a9104be7fe5d8a5a22c3207dab46268
2017-09-28 14:59:34 +08:00
Maciej Borsz 9baeaec78d Add 'apiserver_watch_events_sizes'.
That metric can be used to estimate the size of watch events sent out to
the clients.

Kubernetes-commit: 4af189aab9cca61d1a701133596f6f82b1ca0719
2019-07-23 12:55:11 +02:00
Jordan Liggitt 0c706a033c Plumb context to admission Admit/Validate
Kubernetes-commit: 61774cd7176cae0c0324d23ab20e6c6b3038153f
2019-08-19 10:48:08 -04:00
Jordan Liggitt aab7154c4f plumb client-specified request timeout to context
Kubernetes-commit: 89d5c1f3ea8d8e27526e4f558872c4e24ddc526c
2019-08-20 10:36:34 -04:00
jennybuckley 427507ed32 Group update managedFieldsEntries by manager name
Kubernetes-commit: 87eabcdbfa5d551af7ebcae3fb07fd8f386badc3
2019-08-19 13:50:15 -07:00
wojtekt e603adaf68 Deprecate SelfLink + featuregate for setting it
Kubernetes-commit: 3bf4eb70723340cf84abec11e9ce14dfcc02a148
2019-08-05 08:59:25 +02:00