Commit Graph

101 Commits

Author SHA1 Message Date
wojtekt 6e6045833c Fix bug for inconsistent lists served from etcd
Kubernetes-commit: a5b60c352d4457d96a90ddf1479f0833ef36f7d4
2020-08-14 14:51:56 +02:00
Joe Betz 97937c66f2 Revert nested trace PR#88936
Kubernetes-commit: 02cf58102a61b6d1e021e256381ff750573ce55d
2020-07-20 09:55:05 -07: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 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
Joe Betz 5b75cf0ff9 Add GetOptions and ListOptions to storage interface
Kubernetes-commit: 4c99949ae6b4a74e4ffda0caba86c151c23d579e
2020-05-29 10:48:33 -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
Michael Gasch 0cdbc006ea Add etcd WithRequireLeader option to API watches
Watches against etcd in the API server can hang forever if the etcd
cluster loses quorum, e.g. the majority of nodes crashes. This fix
improves responsiveness (detection and reaction time) of API server
watches against etcd in some rare (but still possible) edge cases so
that watches are terminated with `"etcdserver: no leader"
(ErrNoLeader)`.

Implementation behavior described by jingyih:

```
The etcd server waits until it cannot find a leader for 3 election
timeouts to cancel existing streams. 3 is currently a hard coded
constant. The election timeout defaults to 1000ms.

If the cluster is healthy, when the leader is stopped, the leadership
transfer should be smooth. (leader transfers its leadership before
stopping). If leader is hard killed, other servers will take an election
timeout to realize leader lost and start campaign.
```

For further details, discussion and validation see
https://github.com/kubernetes/kubernetes/issues/89488#issuecomment-606491110
and https://github.com/etcd-io/etcd/issues/8980.

Closes: https://github.com/kubernetes/kubernetes/issues/89488

Signed-off-by: Michael Gasch <mgasch@vmware.com>

Kubernetes-commit: 70c9f770d7aa2194bfd3f58fe01756a7d200b866
2020-03-31 12:01:53 +02:00
jingyih 9303178e27 Add a metric exposing etcd database size
Kubernetes-commit: 922ec728de9248657f026eb6cfb8fdaeb11049ac
2020-03-16 07:55:38 -07:00
Jordan Liggitt 1a93b794ed Preserve target apiVersion when decoding into unstructured lists
Kubernetes-commit: fa12441ab99cac81b0034208fd10d8a4fc3d5bd0
2020-03-10 03:13:20 -04:00
Monis Khan f5c1e085ed storage: confirm that paging and predicate filtering work together
This change adds the TestListContinuationWithFilter test which
confirms that paging with a predicate that does not match everything
results in the correct amount of calls to TransformFromStorage and
KV.Get.  The partial result of each paging call is also asserted.

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

Kubernetes-commit: 002c75442d768d2bcc51047667354ff16bbfa2e8
2020-02-28 15:35:22 -05:00
danielqsj 400e5a4291 remove deprecated metrics of etcd
Kubernetes-commit: 447b17587b6df7cf5828cf32fb333f0a3b7957cd
2019-04-12 15:54:31 +08:00
Ted Yu 006e524c38 Log mvcc revision compaction as warning
Kubernetes-commit: 9fec783d805ebdb05f1936dffd9621702eb0f711
2019-10-31 07:24:17 -07:00
danielqsj 76c4ab8bb5 unify alias of api errors under pkg and staging
Kubernetes-commit: 5bc0e26c1902e7e28abfc828de19a2dbb3e492c2
2019-11-12 16:26:59 +08:00
RainbowMango de8c866328 Hide apiserver metrics that have been deprecated in 1.14
Update E2E test accordingly.

Kubernetes-commit: 5e0695e339ff0887ebebddfa8630de191f7fa235
2019-10-12 20:25:10 +08:00
Wenjia Zhang e518fe04f6 Resolve uncompatibility from update: etcd CAFile -> TrustedCAFIle
Kubernetes-commit: 9ead9373f350c7ad438257a9e8b8977a67b900eb
2019-10-23 11:15:43 -07:00
Wenjia Zhang 41da2ced4c Replace github.com/coreos/etcd by go.etcd.io/etcd
Kubernetes-commit: 3b274fad2a719dc1fd0eaef6c55a0d344db10242
2019-10-15 22:38:43 -07:00
Joe Betz 1b75e5416d Use same 'minimum resource version' semantics both when watch cache is enabled and disabled
Kubernetes-commit: 1406f7adf20a9ceaf5b8270ec9a61dd9e450ae8a
2018-12-04 16:55:59 -08:00
Haowei Cai a0989eba0f in GuaranteedUpdate, retry on precondition check failure if we are working with cached data
Kubernetes-commit: 88f0be6e59aa56570deaa2a9163d0eb3a3ae20f8
2019-09-03 17:26:39 -07:00
Han Kang 3e6e1db500 add some documentation around the metrics stability migration changes for clarity
Kubernetes-commit: 4e5d906c4d008f914b0ede26ea91533d6343dec5
2019-08-26 19:15:30 -07:00
Han Kang b9084e350a migrate kube-apiserver metrics to stability framework
Kubernetes-commit: 466980dd747e06e55451301c624eecccfa505123
2019-08-22 15:38:42 -07:00
Jordan Liggitt 0c706a033c Plumb context to admission Admit/Validate
Kubernetes-commit: 61774cd7176cae0c0324d23ab20e6c6b3038153f
2019-08-19 10:48:08 -04:00
Joe Betz f103fcda51 Replace string concatination with trace fields
Kubernetes-commit: 46a04d50af78e01d06a9879d62cc71fbe892076f
2019-08-02 23:47:24 -07:00
wojtekt 15b0ff80e3 Move etcd/util to etcd3/
Kubernetes-commit: 23d9d6b1d0f835d7b342773149ded2c89c6b4507
2019-07-02 09:28:02 +02:00
Ted Yu de3970c505 Revert Provide resource version in error if available
Kubernetes-commit: 58b0a2769a57bc190eb5b2a424582270720b325a
2019-07-08 14:33:37 -07:00
Ted Yu 50569df906 Provide resource version in error if available
Kubernetes-commit: 6459b61bca8ea8d02ccd1771288345af498ae176
2019-07-06 00:59:20 -07:00
caohe ac25e63a3e Remove panic in storage and add log
Signed-off-by: caohe <caohe9603@gmail.com>

Kubernetes-commit: 99365063bac66b0cb9f2c3f7322e48b8cb3a0cf7
2019-07-06 17:01:20 +08:00
wojtekt 9698803236 Move etcd/testing to etcd3/testing
Kubernetes-commit: 7497260e54c555c1fb1def741267f9dc23fe7dce
2019-07-01 10:38:19 +02:00
wojtekt 6d99094b88 Move APIObjectVersioner
Kubernetes-commit: fd819f8fdc2528249efc94c18da434b61fe87925
2019-06-28 13:58:08 +02:00
wojtekt 01c4fe2028 Cleanup util file
Kubernetes-commit: 762518fd47bb058d11b26c60d9cf9f9a9c5b3c05
2019-06-28 13:30:43 +02:00
wojtekt cc7d4cc1f1 Move metrics to etcd3 and clean up
Kubernetes-commit: a06f2cfc3fa896d9edefe42387da65905b30ec8e
2019-06-28 13:05:58 +02:00
Chao Xu d403146da2 Protect remainingItemCount behind a feature flag. Also updating the API doc
Kubernetes-commit: 1ad5cb5bb16c83bc7f0a3b78ad196a665a45996d
2019-05-31 15:32:26 -07:00
Jordan Liggitt 2c3ab14d64 Set expected in-memory version when decoding unstructured objects from etcd
Kubernetes-commit: 932553a08c5142fc7751555697e28bdc1f2eff09
2019-06-04 22:12:34 -04:00
Jordan Liggitt 00e2435130 Make GetRemainingItemCount/SetRemainingItemCount use pointers
Kubernetes-commit: 145e8c46cf81ff16b65ff729c392ced262984847
2019-05-27 12:03:26 -04:00
Chao Xu bba40a550f Make ListMeta.RemainingItemCount a pointer (*int64) to make sure it's omitted
when serialized to proto.

The SetRemainingItemCount() and GetRemainingItemCount() still takes and
returns an int64 to make developers life easier.

Kubernetes-commit: e28a1072d94d947f38db7abc4c66426b8f057b17
2019-05-24 17:35:00 -07:00
Joe Betz db6e870285 Add webhook converter integration test suite
Kubernetes-commit: e23769f018ff50763656f99edd907e91e8bfff3e
2019-05-08 22:42:41 -07:00
Chao Xu 5c9333e4d3 Run deleteValidation at the storage layer so that it will be retried on
conflict.

Adding unit test verify that deleteValidation is retried.

adding e2e test verifying the webhook can intercept configmap and custom
resource deletion, and the existing object is sent via the
admissionreview.OldObject.

update the admission integration test to verify that the existing object
is passed to the deletion admission webhook as oldObject, in case of an
immediate deletion and in case of an update-on-delete.

Kubernetes-commit: 7bb4a3bace048cb9cd93d0221a7bf7c4accbf6be
2019-04-09 13:49:16 -07:00
Chao Xu d7f4ff742a In GuaranteedUpdate, retry on any error if we are working with stale data
Kubernetes-commit: 5e53522a9ef56f33d06c457c072c379131e127ef
2019-05-08 15:05:07 -07:00
Chao Xu 034ed25bbe Add RemainingItemCount to ListMeta
Kubernetes-commit: 58c18309a84f9e0fe05b92c202616e4ecf8062f7
2019-04-01 14:44:19 -07:00
Ryan McNamara cae815db01 Error when etcd3 watch finds delete event with nil prevKV
Kubernetes-commit: 504380682fce0b60318d64999554ccd518b8fc63
2019-04-16 12:55:15 -07:00
Joe Betz f90442e3fb Paginate List call performed by Reflector's ListAndWatch call
Kubernetes-commit: 84723c2d3ef5ff5d30aadd1ad72068bf2254358c
2019-03-14 13:26:19 -07:00
wojtekt 1fd6bb259f Expose etcd client latency metrics
Kubernetes-commit: d5c9ad80499a9148a40b8a6c33c165cf12578649
2019-04-01 12:46:06 +02:00
Justin SB bf98046128 Remove executable file permission from OWNERS files
Kubernetes-commit: dd19b923b7c26420af39fcf4eedfa213b236c8d3
2019-01-03 12:18:20 -05:00
Roy Lenferink 4c9524b9fb Updated OWNERS files to include link to docs
Kubernetes-commit: b43c04452f3b563473b5c2a765d4ac18cc0ff58f
2019-01-30 20:05:00 +01:00
Andrew Kim 2b43930b32 replace k8s.io/apiserver/pkg/util/trace with k8s.io/utils/trace
Kubernetes-commit: 93b086f6eafc1e94214fc1d946a1917482751cf3
2019-01-24 11:50:30 -05:00
Jordan Liggitt 80029a760c Deprecate and remove use of alpha metadata.initializers field, remove IncludeUninitialized options
Kubernetes-commit: 17aa60686ebe5fd04b4fe6f442dc36a8d70b6730
2019-01-17 09:19:28 -05:00
Dr. Stefan Schimanski c3865fa725 apiserver: set klog as etcdclient logger
Kubernetes-commit: a00d08610f2303cd433e75cff7f73c0d0dc18b1d
2018-11-21 15:31:25 +01:00
Davanum Srinivas 2710b17b80 Move from glog to klog
- Move from the old github.com/golang/glog to k8s.io/klog
- klog as explicit InitFlags() so we add them as necessary
- we update the other repositories that we vendor that made a similar
change from glog to klog
  * github.com/kubernetes/repo-infra
  * k8s.io/gengo/
  * k8s.io/kube-openapi/
  * github.com/google/cadvisor
- Entirely remove all references to glog
- Fix some tests by explicit InitFlags in their init() methods

Change-Id: I92db545ff36fcec83afe98f550c9e630098b3135

Kubernetes-commit: 954996e231074dc7429f7be1256a579bedd8344c
2018-11-09 13:49:10 -05:00
Jordan Liggitt bd604a62aa Remove deprecated --etcd-quorum-read flag
Kubernetes-commit: cff79c542130831f4a212099974570244a0c9586
2018-10-08 11:04:28 -04:00
Christoph Blecker 92e87e143a Update gofmt for go1.11
Kubernetes-commit: 97b2992dc191a357e2167eff5035ce26237a4799
2018-10-05 12:59:38 -07:00