Commit Graph

987 Commits

Author SHA1 Message Date
Clayton Coleman d1431e49e4 Endpoints can add a get or connect options type in their group
optionsExternalVersion is being used for shared types (meta.k8s.io). The
installer should first look in the current API group for GET and CONNECT
options objects before checking in `v1`.

Kubernetes-commit: 0e4b20fbf9ff299c37a5055e082fa27dbf2b49c0
2017-09-25 17:03:34 -04:00
Michael Taufen 8e0c55d47a Make feature gates loadable from a map[string]bool
Command line flag API remains the same. This allows ComponentConfig
structures (e.g. KubeletConfiguration) to express the map structure
behind feature gates in a natural way when written as JSON or YAML.

For example:

KubeletConfiguration Before:
```
apiVersion: kubeletconfig/v1alpha1
kind: KubeletConfiguration
featureGates: "DynamicKubeletConfig=true,Accelerators=true"
```

KubeletConfiguration After:
```
apiVersion: kubeletconfig/v1alpha1
kind: KubeletConfiguration
featureGates:
  DynamicKubeletConfig: true
  Accelerators: true
```

Kubernetes-commit: 131b419596a3d4fce1020c3b11f78034b5880593
2017-09-25 13:36:19 -07:00
Clayton Coleman d70f8cc7f2 Use watch cache when rv=0 even when limit is set
Kubernetes-commit: 6a76931e2cfd53991a2da20795b929fcaf7877e7
2017-09-25 14:22:25 -04:00
Cao Shufeng f7e881914a support micro time for advanced audit
Kubernetes-commit: 817bc6954ca9af02013fd8f492f8ef865c217b0d
2017-09-25 11:56:30 +08:00
Clayton Coleman f24913f06e Promote continuation token schema to v1
Change the filtering logic to require a leading path and clean that
afterwards.

Kubernetes-commit: ac8808b792f624fa04aa7c589bd5aca1b9afde39
2017-09-24 18:09:54 -04:00
Clayton Coleman 2f9b480e69 Fill partial pages on the server rather than forcing client to
The etcd3 storage now attempts to fill partial pages to prevent clients
having to make more round trips (latency from server to etcd is lower
than client to server). The server makes repeated requests to etcd of
the current page size, then uses the filter function to eliminate any
matches. After this change the apiserver will always return full pages,
but we leave the language in place that clients must tolerate it.

Reduces tail latency of large filtered lists, such as viewing pods
assigned to a node.

Kubernetes-commit: da7124e5e5c0385dd5bcfc72ef035effc7708913
2017-09-24 18:06:57 -04:00
Clayton Coleman 17e1e4d3cb Enable API chunking and promote to beta for 1.9
All list watchers default to using chunking.

Kubernetes-commit: 113889e72da573946f3389b628251647c2a858b9
2017-09-23 15:21:54 -04:00
Clayton Coleman 2aa97c4081 Add a negotiate method media type for use in explicit contexts
Kubernetes-commit: 26d87e49cbbc4caa9e0eef47fce9115c1f43566e
2017-09-23 15:07:55 -04:00
Jordan Liggitt 78261d54df Preserve leading and trailing slashes on proxy subpaths
Kubernetes-commit: 04eede9b2a2a24571cb084fcb952c6a2a2a2bdd1
2017-09-22 22:35:20 -04:00
Kubernetes Publisher c1e53d745d Merge pull request #52710 from sttts/sttts-less-aggressive-staging-godep-mangling
Automatic merge from submit-queue (batch tested with PRs 52843, 52710, 52821, 52844). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>..

update-staging-godeps: only mangle staging repos in staging Godeps.json

- this re-adds non-staging k8s.io/* repos to the staging Godeps.jsons
- x-outs instead of removing of staging dependencies in order to get a
  precise trigger for a complete godep restore+save run in the publisher
  bot.

The first breaks k8s.io/kube-aggregator's staging export.

The second potentially leads to inconsistent godeps in our exported staging repos.

Kubernetes-commit: 3ba46ee9fab32ccaeeee4af4a80375e6e1d71ace
2017-09-22 11:42:57 +00:00
Kubernetes Publisher 4770ca60b0 Update staging godeps
Kubernetes-commit: 678eeb54da07fb33e3860bc670e6b101a966a47d
2017-09-22 11:42:07 +00:00
Kubernetes Publisher 8e3f903391 Merge pull request #52790 from sttts/sttts-conversion-gen-vendor-independent
Automatic merge from submit-queue (batch tested with PRs 52477, 52790, 52798). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>..

conversion-gen: make staging dirs independent of living in vendor/

The `+k8s:conversion-gen` tags included the package directory inside of kube's vendor dir. This
makes them invalid when we publish staging repos.

Without this PR our sample-apiserver example code-generation is broken once published.

Kubernetes-commit: 74ff323f9e546e62288d331f62a37e0ec58f6b35
2017-09-22 11:42:06 +00:00
Kubernetes Publisher 69cfac46ed Merge pull request #52466 from charrywanganthony/audit-2
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>..

Update the test under audit/policy

Small change to cope with [previous review](https://github.com/kubernetes/kubernetes/pull/51782#pullrequestreview-61526174)
@crassirostris

Kubernetes-commit: 2d7192c54afe7d946bdaa9534958cfd06adbc0cf
2017-09-22 11:42:06 +00:00
Kubernetes Publisher 7b23343a61 conversion-gen: make staging dirs independent of living in vendor/
Kubernetes-commit: f5451127512e42294564efae97d4cb669df54f49
2017-09-22 11:42:06 +00:00
Kubernetes Publisher d7e7a0ab18 Update the test under audit policy
Kubernetes-commit: ea1694eab1a1b251b31ce006cc48594a7eb05add
2017-09-22 11:42:06 +00:00
Jeff Grafton eabf5a2c6e Use buildozer to delete licenses() rules
Kubernetes-commit: 02fb4200dcdf8636eac5953d04b2c4af912f443b
2017-09-21 14:54:29 -07:00
Jeff Grafton ecbbfb0461 Use buildozer to remove deprecated automanaged tags
Kubernetes-commit: 532bd482dfbe25c6fc970d2175f7e02fec2fc8c0
2017-09-21 14:53:56 -07:00
Jordan Liggitt 64d1b8400e Make feature gate enablement checks lock-free
Kubernetes-commit: 55692c52e1d6f3922bf4af2b6cbe2b0eef886fbd
2017-09-21 14:51:04 -04:00
FengyunPan 0b6b17905d Update gophercloud to Handle New Identity Endpoints
Currently openstack cloud provider just support keystone v2.0 and v3
The latest Identity Service is publishing an ID of v3.8, we should
update gophercloud to recognize v3.8 as a valid version id.

Kubernetes-commit: f98326b7f9364f6a5c3e336af1279833713e73c9
2017-09-21 18:58:13 +08:00
Clayton Coleman 4175a07239 Track gauge of all long running API requests
Allows a caller to know how many exec, log, proxy, and watch calls are
running at the current moment.

Kubernetes-commit: fabce1b893f96bdf466c1fdb1fcf825210c008ae
2017-09-19 20:35:29 -04:00
Nikhita Raghunath deca9ba80f bump(github.com/go-openapi/spec): 7abd5745472fff5eb3685386d5fb8bf38683154d
Kubernetes-commit: 9968c18a6cf11e3c4461e1d6bc9ab4de5625c202
2017-09-19 11:25:48 +05:30
Kubernetes Publisher e82569769e Merge pull request #43152 from ncdc/watch-cache-retry-live-object-on-conflict
Automatic merge from submit-queue (batch tested with PRs 52176, 43152). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>..

etcd3 store: retry with live object on conflict if there was a suggestion

Retry with a live object instead of the cached version if the watch
cache receives a conflict trying to do the update.

Fixes #41892

Kubernetes-commit: d48611a1da00a2fe32011404fe25fb6af51673a5
2017-09-16 09:45:31 -07:00
Kubernetes Publisher 0f62a50c16 etcd3 store: retry w/live object on conflict
In GuaranteedUpdate, if it was called with a suggestion (e.g. via the
watch cache), and the suggested object is stale, perform a live lookup
and then retry the update.

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

Kubernetes-commit: bf33df16b52508974ddedacd814010cfe0fb79f0
2017-09-22 11:42:06 +00:00
Kubernetes Publisher 90c569d37e Merge pull request #52544 from shyamjvs/increase-window-of-prometheus-metric
Automatic merge from submit-queue

Increase sliding window to 5hr for request_latencies metric

We're seeing high latency values for a couple of types of api calls in our density test (ref https://github.com/kubernetes/kubernetes/issues/51899). And we're recording values from only the last 1 hour in the metric (as @wojtek-t told me offline) - so our test result is pretty much counting only the calls during the delete phase.

cc @kubernetes/sig-scalability-misc @kubernetes/sig-api-machinery-misc @gmarek

Kubernetes-commit: 9ef9a1b8f032ecccee94aff773e9db13b9b7ced6
2017-09-15 09:19:06 -07:00
Kubernetes Publisher 8fc21589fe Increase sliding window to 5hr for request_latencies metric
Kubernetes-commit: e1ba3da16c9bebccb3902952d56b59f2e2dbb900
2017-09-22 11:42:05 +00:00
Kubernetes Publisher 15e7adf3e2 Merge pull request #52543 from shyamjvs/add-more-traces-to-delete-resource-handler
Automatic merge from submit-queue

Add extra steps to delete resource handler trace

Based on https://github.com/kubernetes/kubernetes/issues/51899#issuecomment-329786131

cc @kubernetes/sig-scalability-misc @kubernetes/sig-api-machinery-misc @gmarek

Kubernetes-commit: 9f954c146f37261aa62981b7505f9ba0dcb255e1
2017-09-15 08:27:43 -07:00
Kubernetes Publisher 5efaef8eee Merge pull request #52237 from smarterclayton/watch_metric
Automatic merge from submit-queue (batch tested with PRs 51824, 50476, 52451, 52009, 52237)

Improve apiserver metrics reporting

Normalize "WATCHLIST" to "WATCH", add "scope" to the other metrics (listing 50k pods is != listing pods in a namespace), and add a new scope "resource" to cover individual resource calls.

This roughly aligns metrics with our ACL model (technically resource scope is GET, but POST to a subresource and POST to a namespace are not the same thing).

```release-note
WATCHLIST calls are now reported as WATCH verbs in prometheus for the apiserver_request_* series.  A new "scope" label is added to all apiserver_request_* values that is either 'cluster', 'resource', or 'namespace' depending on which level the query is performed at.
```

Kubernetes-commit: 93ddb7be5f547f5ebb0a60bd1135234fdf4e3c07
2017-09-22 11:42:05 +00:00
Kubernetes Publisher 24ccf40372 Add extra steps to delete resource handler trace
Kubernetes-commit: 6089cadab3d136455b1b4376d819464fb0d2379a
2017-09-22 11:42:05 +00:00
Kubernetes Publisher 7d0b0b91fc Report "resource" scope where possible
Also rename the variables to match the concept

Kubernetes-commit: c13a3c03201c9082c4b373b7af8b99d7effd5a62
2017-09-22 11:42:04 +00:00
Kubernetes Publisher 7727b5a3a8 Report scope on all apiserver metrics
Counting list of namespaces is != list across all namespaces (same for
latency)

Kubernetes-commit: 545aba778d5d039a3b8a0f0939fdf8f8261ae1a8
2017-09-22 11:42:04 +00:00
Kubernetes Publisher 4c578f11a1 Normalize WATCHLIST to WATCH in metrics
This causes confusion and doesn't match what we authorize on

Kubernetes-commit: 5e46d5b5450f7e7db87e860440f1bb1f8f523ffa
2017-09-22 11:42:04 +00:00
Clayton Coleman 1caba4b96e Collapse all metrics handlers into common code
Remove the MonitorRequest method and replace with a method that takes
request.RequestInfo, which is our default way to talk about API objects.
Preserves existing semantics for calls.

Kubernetes-commit: 10e6dc5ed3573118c56fa8823b387e47c8e8ae06
2017-09-11 14:53:18 -04:00
Kubernetes Publisher 19667a1afc sync: update godeps 2017-09-09 21:45:29 +00:00
Kubernetes Publisher 338b91b284 Merge pull request #52112 from smarterclayton/watch
Automatic merge from submit-queue (batch tested with PRs 50949, 52155, 52175, 52112, 52188)

Allow watch cache to be disabled per type

Currently setting watch cache size for a given resource does not disable
the watch cache. This commit adds a new `default-watch-cache-size` flag
to map to the existing field, and refactors how watch cache sizes are
calculated to bring all of the code into one place. It also adds debug
logging to startup to allow us to verify watch cache enablement in
production.

Part of #51825 

Will allow watch cache to be disabled selectively.

Kubernetes-commit: e1bf145c9fb8766ee3be3f0e06175dd9da3cbe5d
2017-09-08 15:11:31 -07:00
Clayton Coleman 644d9a8cf1 Allow watch cache to be disabled per type
Currently setting watch cache size for a given resource does not disable
the watch cache. This commit adds a new `default-watch-cache-size` flag
to map to the existing field, and refactors how watch cache sizes are
calculated to bring all of the code into one place. It also adds debug
logging to startup to allow us to verify watch cache enablement in
production.

Kubernetes-commit: fc2d201e155296f311ae0a9278b00dcae2d68708
2017-09-09 21:44:33 +00:00
Walter Fender 9a6c2541ac Ensure we log the flag apiserver starts with.
Trying to make sure we always log the flags an instance of apiserver
starts with.
This can be especially valuable for emailed logs or e2e/kubemark tests.

Kubernetes-commit: 366459aee84a4de1f0342a464bd479a5d12e6f0f
2017-09-08 10:00:50 -07:00
Kubernetes Publisher 94baeb40da Merge pull request #52030 from soltysh/creationtimestamp_audit
Automatic merge from submit-queue (batch tested with PRs 51900, 51782, 52030)

Fill in creationtimestamp in audit events

**What this PR does / why we need it**:
This is fixing null creationtimestamp in audit events.

@sttts @crassirostris like we've talked earlier today

**Release note**:
```release-note
none
```

Kubernetes-commit: 36b3a0d75b177f7fb3b68750b46dd4c2aeb45664
2017-09-08 09:46:36 -07:00
Maciej Szulik 6959d4a79a Fill in creationtimestamp in audit events
Kubernetes-commit: 3dd3e7aa5243228b49211f4bb40022a719cc57ac
2017-09-09 21:44:33 +00:00
Kubernetes Publisher f20cf13f23 Merge pull request #51782 from charrywanganthony/audit-1
Automatic merge from submit-queue (batch tested with PRs 51900, 51782, 52030)

A policy with 0 rules should return an error

**Which issue this PR fixes** 
[isuue#51565](https://github.com/kubernetes/kubernetes/issues/51565)

**Release note**: 
``` 
An audit policy file with 0 rule returns an error.
```

Kubernetes-commit: 4a72b32d3693e4f53c004c48d7ff58f628289fa6
2017-09-08 09:46:33 -07:00
Kubernetes Publisher 9e4b4be3a5 Merge pull request #51900 from sttts/sttts-informer-stratification
Automatic merge from submit-queue (batch tested with PRs 51900, 51782, 52030)

apiservers: stratify versioned informer construction

The versioned share informer factory has been part of the GenericApiServer config,
but its construction depended on other fields of that config (e.g. the loopback
client config). Hence, the order of changes to the config mattered.

This PR stratifies this by moving the SharedInformerFactory from the generic Config
to the CompleteConfig struct. Hence, it is only filled during completion when it is
guaranteed that the loopback client config is set.

While doing this, the CompletedConfig construction is made more type-safe again,
i.e. the use of SkipCompletion() is considereably reduced. This is archieved by
splitting the derived apiserver Configs into the GenericConfig and the ExtraConfig
part. Then the completion is structural again because CompleteConfig is again
of the same structure: generic CompletedConfig and local completed ExtraConfig.

Fixes #50661.

Kubernetes-commit: 63d6bdb58c864de4f42ff139cb0a044a35f7a36f
2017-09-09 21:44:32 +00:00
Chao Wang 221a6a181e A policy with 0 rules should return an error
Kubernetes-commit: 0ad4282fd0b31e1d12b711696efb134bdc2f83cc
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski 9f41d17af2 Update bazel
Kubernetes-commit: fbd310dbc7312fcae4267dd64326a1e7b4a0a8ae
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski a063c5336d apiserver: avoid panics on nil sub-option structs
Kubernetes-commit: b153268da79d2acf14e042945959801c3dba8221
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski 97e22b00fa apiserver: split core API creation from secure serving
Kubernetes-commit: 2b64d3a0fd2ccdad4b2f21acb484a36e04381856
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski 75cf96f31e apiserver: stratify versioned informer construction
Kubernetes-commit: ca3f7453464f6866a3bf467c8b9d8e132484cfb4
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski 8ec769da6b apiserver: allow disabling authz/n via options
Kubernetes-commit: dffe50f8bd820295f7f1fbc56a6269b6b8c6966b
2017-09-09 21:44:32 +00:00
Dr. Stefan Schimanski e4b1b0656b apiserver: make config completion structural recursion
Kubernetes-commit: 1bcea54104cb7f53e58924dd5413cf4ba7ceb587
2017-09-09 21:44:32 +00:00
Kubernetes Publisher 2afdeada7b Merge pull request #52071 from CaoShuFeng/warning
Automatic merge from submit-queue (batch tested with PRs 52091, 52071)

Log a warning when --audit-policy-file not passed to apiserver

When audit backend provided, but --audit-policy-file is not passed, leave a info in log.
**Release note**:
```
Log a warning when --audit-policy-file not passed to apiserver
```

Kubernetes-commit: 500642602210088447c9dcd7abe2e26815f271ed
2017-09-08 04:57:59 -07:00
Kubernetes Publisher 2c3f99c328 Merge pull request #51932 from dixudx/fix_forbidden_messages
Automatic merge from submit-queue

fix format of forbidden messages

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #51813

**Special notes for your reviewer**:
/assign @deads2k @liggitt

**Release note**:

```release-note
None
```

Kubernetes-commit: 45fe0a9e0417eb148c3082c53ae16da7377a2c32
2017-09-09 21:44:31 +00:00
Cao Shufeng d2f7a0c820 Log a warning when --audit-policy-file not passed to apiserver
Kubernetes-commit: 3b91f1cc0d32278a9baf2a4b9b4e416cbfb2457f
2017-09-09 21:44:31 +00:00