Commit Graph

1441 Commits

Author SHA1 Message Date
Clayton Coleman
c299a8049c Add Table to meta.k8s.io/v1alpha1
Table is a generic tabular output that can be returned by servers to
enable clients to display data simply.
2017-05-15 10:50:49 -04:00
Clayton Coleman
2413fe15ee Add interface{} to openapi basic types 2017-05-15 10:50:49 -04:00
Kubernetes Submit Queue
958bbaaa44 Merge pull request #45732 from sdminonne/apiextension-test
Automatic merge from submit-queue (batch tested with PRs 45070, 45821, 45732, 45494, 45789)

apiextesions-server integration tests: test multiple registration

**What this PR does / why we need it**:
Add integration test for Multiple registrations XREF: #45511

**Special notes for your reviewer**:
@deads2k my first plan was to submit one single PR for both tests but I'm facing one issue with resources deregistration. Get in touch via slack
2017-05-15 07:49:54 -07:00
Kubernetes Submit Queue
9590b94f7c Merge pull request #45070 from alindeman/container-heap
Automatic merge from submit-queue

Uses container/heap for DelayingQueue

The current implementation of DelayingQueue doesn't perform very well when a large number of items (at random delays) are inserted. The original authors seemed to be aware of this and noted it in a `TODO` comment. This is my attempt at switching the implementation to use a priority queue based on `container/heap`.

Benchmarks from before the change:
```
╰─ go test -bench=. -benchmem | tee /tmp/before.txt
BenchmarkDelayingQueue_AddAfter-8         300000            256824 ns/op             520 B/op          3 allocs/op
PASS
ok      k8s.io/kubernetes/staging/src/k8s.io/client-go/util/workqueue   77.237s
```

After:
```
╰─ go test -bench=. -benchmem | tee /tmp/after.txt
BenchmarkDelayingQueue_AddAfter-8         500000              3519 ns/op             406 B/op          4 allocs/op
PASS
ok      k8s.io/kubernetes/staging/src/k8s.io/client-go/util/workqueue   2.969s
```

Comparison:
```
╰─ benchcmp /tmp/before.txt /tmp/after.txt
benchmark                             old ns/op     new ns/op     delta
BenchmarkDelayingQueue_AddAfter-8     256824        3519          -98.63%

benchmark                             old allocs     new allocs     delta
BenchmarkDelayingQueue_AddAfter-8     3              4              +33.33%

benchmark                             old bytes     new bytes     delta
BenchmarkDelayingQueue_AddAfter-8     520           406           -21.92%
```

I also find the `container/heap`-based code a bit more easy to understand. The implementation of the PriorityQueue is based on the documentation for `container/heap`.

Feedback definitely welcomed. This is one of my first contributions.

```release-note
NONE
```
2017-05-15 07:06:03 -07:00
Dmitry Shulyak
a713604b24 Use streaming constants from pkg/api/v1 instead of pkg/api 2017-05-15 17:00:14 +03:00
Dmitry Shulyak
64d98c2d92 Add remotecommand to client-go/pkg/api visibility rules 2017-05-15 16:28:56 +03:00
Dmitry Shulyak
8574bc564f Add exec module to client-go/util only with required code
client-go/pkt/util was removed in favor of client-go util, which consists
only from CodeExitError and ExitError interface
2017-05-15 16:28:56 +03:00
Dmitry Shulyak
2612e0c78a Move client/unversioned/remotecommand to client-go
Module remotecommand originally part of kubernetes/pkg/client/unversioned was moved
to client-go/tools, and will be used as authoritative in kubectl, e2e and other places.

Module remotecommand relies on util/exec module which will be copied to client-go/pkg/util
2017-05-15 16:28:56 +03:00
Kubernetes Submit Queue
5a1ec9bf6f Merge pull request #45804 from nilebox/nilebox/apiextensions-delegate-handler
Automatic merge from submit-queue

kube-apiextensions-server: Fix potential SEGV with null delegate handler

**What this PR does / why we need it**:
In the kube-apiextensions-server there is a fallback value for `null` delegate to `http.NotFoundHandler()` in handling group and versions discovery, but no fallback for custom resources endpoint.
It leads to SEGV when running with `genericapiserver.EmptyDelegate`.
2017-05-15 06:20:45 -07:00
Salvatore Dario Minonne
992544a30c apiextesions-server integration tests: test multiple registration 2017-05-15 13:50:59 +02:00
nikhiljindal
4c828eeaab Autogenerated swagger changes 2017-05-14 23:11:02 -07:00
nikhiljindal
a1ffc8c487 Autogenerated proto changes 2017-05-14 23:09:47 -07:00
nikhiljindal
44fc88cecd Updating generic registry to return UID while deleting the object 2017-05-14 23:09:47 -07:00
Nail Islamov
0e79b7c91b Fix potential SEGV with null delegate handler 2017-05-15 13:36:51 +10:00
Nikhita Raghunath
738c6f0d3f Add plural name for CustomResources example 2017-05-14 23:13:40 +05:30
p0lyn0mial
8cea69aa98 This PR implements AdmissionOptions.ApplyTo
ApplyTo adds the admission chain to the server configuration the method lazily initializes a generic plugin
that is appended to the list of pluginInitializers.

apiserver.Config will hold an instance of SharedInformerFactory to ensure we only have once instance.
The field will be initialized in apisever.SecureServingOptions
2017-05-14 10:30:19 +02:00
Cao Shufeng
e541defd49 add --as-group option to cli
The usecase of this change:
When a super user grant some RBAC permissions to a group, he can use
--as-group to test whether the group get the permissions.
Note that now we support as-groups, as-user-extra in kubeconfig file
after this change.
2017-05-14 16:21:05 +08:00
Jordan Liggitt
cd3a1187a1 Require nodeName for mirror pods, make mirror pod annotation immutable 2017-05-13 22:34:41 -04:00
Andy Lindeman
dad64459a9 Uses container/heap 2017-05-13 21:21:11 +00:00
Andy Lindeman
21ca6c498a Adds benchmark test 2017-05-13 20:35:35 +00:00
Kubernetes Submit Queue
abaffb243e Merge pull request #45692 from caesarxuchao/limit-client-go-package-import-2
Automatic merge from submit-queue (batch tested with PRs 44748, 45692)

Limiting client go packages visibility, round 3

Continue the work in the merged PR https://github.com/kubernetes/kubernetes/pull/45258

These packages in client-go will be gone after #44065 is fixed:
pkg/api/helper, pkg/api/util, internal version of api groups, API install packages. 

This PR removes the dependency on these packages and add bazel visibility rules to prevent relapse.
2017-05-12 16:04:37 -07:00
Kubernetes Submit Queue
35eba22cc7 Merge pull request #41162 from MrHohn/esipp-ga
Automatic merge from submit-queue (batch tested with PRs 45623, 45241, 45460, 41162)

Promotes Source IP preservation for Virtual IPs from Beta to GA

Fixes #33625. Feature issue: kubernetes/features#27.

Bullet points:
- Declare 2 fields (ExternalTraffic and HealthCheckNodePort) that mirror the ESIPP annotations.
- ESIPP alpha annotations will be ignored.
- Existing ESIPP beta annotations will still be fully supported.
- Allow promoting beta annotations to first class fields or reversely.
- Disallow setting invalid ExternalTraffic and HealthCheckNodePort on services. Default ExternalTraffic field for nodePort or loadBalancer type service to "Global" if not set.

**Release note**:

```release-note
Promotes Source IP preservation for Virtual IPs to GA.

Two api fields are defined correspondingly:
- Service.Spec.ExternalTrafficPolicy <- 'service.beta.kubernetes.io/external-traffic' annotation.
- Service.Spec.HealthCheckNodePort <- 'service.beta.kubernetes.io/healthcheck-nodeport' annotation.
```
2017-05-12 15:00:46 -07:00
Kubernetes Submit Queue
dbcfa96c60 Merge pull request #45460 from nilebox/nilebox-pod-preset-renaming
Automatic merge from submit-queue (batch tested with PRs 45623, 45241, 45460, 41162)

Replacing “Pod Injection Policy” with “Pod Preset” in the code documentation

**What this PR does / why we need it**:
Replacing the leftovers of the old term "Pod Injection Policy" with "Pod Preset" in the code documentation.
2017-05-12 15:00:43 -07:00
Lee Verberne
01c6f898bc Update staging README to reflect multiple repos
This directory no longer contains only client-go
2017-05-12 13:19:50 -07:00
Zihong Zheng
12b6c2b879 Autogenerated files 2017-05-12 10:59:00 -07:00
Kubernetes Submit Queue
d437703d27 Merge pull request #44787 from mbohlool/c1
Automatic merge from submit-queue (batch tested with PRs 45684, 45266, 45669, 44787, 44984)

Add GroupVersionKind extension to OpenAPI operations

Fixes: #43249
ref: #34254

```release-note
Added Group/Version/Kind and Action extension to OpenAPI Operations 
```
2017-05-12 03:20:42 -07:00
Kubernetes Submit Queue
0c5a7b434c Merge pull request #45638 from gyliu513/newindexer
Automatic merge from submit-queue (batch tested with PRs 45571, 45657, 45638, 45663, 45622)

Added indexer description for the API of NewIndexerInformer.

**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 #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-05-12 02:28:39 -07:00
Kubernetes Submit Queue
86eb18944f Merge pull request #45495 from deads2k/server-24-stop
Automatic merge from submit-queue

plumb stopch to post start hook index since many of them are starting go funcs

Many post-start hooks require a stop channel to properly terminate their go funcs.

@p0lyn0mial I think you need this for https://github.com/kubernetes/kubernetes/pull/45355 ptal.
@ncdc per request
@sttts can you review too since Andy is out?
2017-05-11 16:50:21 -07:00
Chao Xu
14045d253d hack/update-bazel.sh 2017-05-11 15:59:04 -07:00
Chao Xu
b91f787d83 run visibility-control.sh to setup visibility for all internal versions of client-go api groups, and their install packages 2017-05-11 15:42:15 -07:00
Chao Xu
b1b5ead8b4 update visibility manually 2017-05-11 15:17:25 -07:00
Chao Xu
c354076aa4 remove invocation of k8s.io/client-go/pkg/api/install
change import of client-go/api/helper to kubernetes/api/helper

remove unnecessary use of client-go/api.registry

change use of client-go/pkg/util to kubernetes/pkg/util

remove dependency on client-go/pkg/apis/extensions

remove unnecessary invocation of k8s.io/client-go/extension/intsall

change use of k8s.io/client-go/pkg/apis/authentication to v1
2017-05-11 15:03:46 -07:00
Kubernetes Submit Queue
69ad6addcc Merge pull request #45559 from rmmh/no-xss
Automatic merge from submit-queue

HTML escape apiserver errors to avoid triggering vulnerability scanners.

Simple XSS scans might fetch /<script>alert('vulnerable')</script>, and
fail when the response body includes the script tag verbatim, despite
the headers directing the browser to interpret the response as text.

This isn't a real vulnerability, but it's easier to fix this here than
it is to fix the scanners.


**Release note**:
```release-note
NONE
```
2017-05-11 13:17:40 -07:00
deads2k
be39283923 plumb stopch to post start hook index since many of them are starting go funcs 2017-05-11 09:16:13 -04:00
Kubernetes Submit Queue
48caf95a6c Merge pull request #45631 from nilebox/nilebox/remove-doc-insecure
Automatic merge from submit-queue

Remove mentioning insecure server (which is not supported anymore) from API server docs

**What this PR does / why we need it**:
Remove mentioning insecure serving from the docs, since only secure serving is supported now.
2017-05-11 05:36:27 -07:00
Kubernetes Submit Queue
6288c4e96c Merge pull request #44861 from sttts/sttts-dynamic-client-listoptions-fallback
Automatic merge from submit-queue

apimachinery: NotRegisteredErr for known kinds not registered in target GV

Fixes the fall back to core v1 for *Options in the parameter encoder of the dynamic client.

The dynamic client uses NotRegisteredErr to fall back to core v1 if ListOptions is not known
in the given GV. This commit fixes the case that ListOptions is known in some group, but not
in the given one.
2017-05-11 03:06:25 -07:00
Dr. Stefan Schimanski
2ece9e4dec NotRegisteredErr for known kinds not registered in target GV
The dynamic client uses NotRegisteredErr to fall back to core v1 if ListOptions is not known
in the given GV. This commit fixes the case that ListOptions is known in some group, but not
in the given one.
2017-05-11 09:59:04 +02:00
Guangya Liu
e42f7c7480 Added indexer description for the API of NewIndexerInformer. 2017-05-11 14:28:25 +08:00
Kubernetes Submit Queue
7ac1936cc6 Merge pull request #45561 from deads2k/tpr-11-defaulting
Automatic merge from submit-queue (batch tested with PRs 45556, 45561, 45256)

add defaulting for customresources

This adds the promised defaulting for customresources.  Namespaced by default, listkind=kind+List, singular=toLower(kind).
2017-05-10 22:24:41 -07:00
Kubernetes Submit Queue
3126e73400 Merge pull request #45556 from deads2k/tpr-10-validation
Automatic merge from submit-queue

add validation for customresourcedefintions

Add basic validation for customresource definitions.

@adohe if you had review bandwidth, this is a relatively small one.
2017-05-10 22:21:21 -07:00
Nail Islamov
6c448319ac Remove mentioning insecure server (which is not supported anymore) 2017-05-11 13:18:58 +10:00
xilabao
892980dd74 update gopass to fix format error 2017-05-11 09:16:53 +08:00
Kubernetes Submit Queue
aba95a169b Merge pull request #45543 from sttts/sttts-external-roundtrip
Automatic merge from submit-queue (batch tested with PRs 45382, 45384, 44781, 45333, 45543)

Do roundtrip testing with external kinds in client-go TPR example

This tests that our serialization machinery works for TPR types, i.e. without internal counterpart and without generated code.

/cc @nilebox
2017-05-10 17:47:47 -07:00
Kubernetes Submit Queue
a48cfe9fe5 Merge pull request #45384 from caesarxuchao/copy-metrics-interanl
Automatic merge from submit-queue (batch tested with PRs 45382, 45384, 44781, 45333, 45543)

Copy internal types to metrics

Supersedes #45306. 

#45306 removed the internal types and suggested whoever needs the internal types should define their own copy, and use the code-gen tools to generated the conversion functions. Per offline discussion with @DirectXMan12, we wanted to go that direction but it's not clear where to put the internal types yet. Hence, as a temporary solution, we decided copy the referred client-go/pkg/api types into metrics api to avoid the dependency.

The commit "remove need of registry from custom_metrics/client.go" is similar to what I did to the fake client in an earlier PR. Let me know if you want to put the commit in another PR.
2017-05-10 17:47:41 -07:00
Kubernetes Submit Queue
ad9b41dbe2 Merge pull request #45535 from sttts/sttts-client-go-owners
Automatic merge from submit-queue

Add myself to client-go OWNERS

**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 #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-05-10 14:39:01 -07:00
Kubernetes Submit Queue
3ddbed969b Merge pull request #45490 from deads2k/owners-01-extensions
Automatic merge from submit-queue

add owners to new packages

Adds owners files to some packages that need it.
2017-05-10 12:51:51 -07:00
deads2k
70a95c3ed9 add defaulting for customresources 2017-05-10 13:43:57 -04:00
Solly Ross
be28a99afe Update generated clients for k8s.io/metrics
This commit updates the generated clients for k8s.io/metrics based on
the generators updated in the previous commits.
2017-05-10 13:40:58 -04:00
Solly Ross
0b43fffa48 Enable client-gen for k8s.io/metrics
This commit turns on client-gen for k8s.io/metrics.  Clients are
generated for `k8s.io/metrics/pkg/apis/metrics` (both internal and
v1alpha1).  `k8s.io/metrics/pkg/apis/custom_metrics` uses a bespoke
client due to the unique nature of its paths.
2017-05-10 13:33:18 -04:00
Justin Santa Barbara
fd7fe79fef typos: spelling fixes in pkg/util/wait/wait.go
Fix a few minor typos
2017-05-10 10:16:28 -04:00