Commit Graph

1441 Commits

Author SHA1 Message Date
mbohlool
bcd0288e60 Fix yet another bug in OpenAPI extension generation 2017-05-04 13:34:40 -07:00
Kubernetes Submit Queue
d22a9c2599 Merge pull request #45321 from caesarxuchao/remove-GetGVK
Automatic merge from submit-queue (batch tested with PRs 45362, 45159, 45321, 45238)

Remove redundent GetObjectKind() defined on types

Embedding TypeMeta is enough.
2017-05-04 13:25:05 -07:00
Chao Xu
5f5a70f65f generated clientset changes
propagate to client-go
update-bazel.sh
2017-05-04 11:30:51 -07:00
Chao Xu
bbb94e42c1 remove registry from testing/fixture.go; update client-gen to not use
registry in the generated clients
2017-05-04 11:30:51 -07:00
Chao Xu
47b410f58b Remove redundent GetObjectKind() defined on top-level types
TypeMeta is embedded in all these types and TypeMeta has GetObjectKind()
method to implement the runtime.Object interface.
2017-05-04 10:31:58 -07:00
Kubernetes Submit Queue
82bc084297 Merge pull request #45169 from ncdc/lister-gen-typo
Automatic merge from submit-queue

Fix typo in lister-gen, regenerate

NamespaeLister -> NamespaceLister

@stevekuznetsov, just for you 😄
2017-05-04 07:24:01 -07:00
Kubernetes Submit Queue
1bfef70836 Merge pull request #44466 from deads2k/server-22-custom-mux
Automatic merge from submit-queue

use our own serve mux that directs how we want

alternative to https://github.com/kubernetes/kubernetes/pull/44405

I really wanted to avoid writing my own, but the gorilla mux works via redirect, which would be a change.  This does exact pattern matches only unless someone explicitly requests a prefix match.

@liggitt happier?
2017-05-04 05:43:53 -07:00
Kubernetes Submit Queue
e1423acc50 Merge pull request #45056 from ericchiang/update-oauth2
Automatic merge from submit-queue

bump(golang.org/x/oauth2): a6bd8cefa1811bd24b86f8902872e4e8225f74c4

As I tackle https://github.com/kubernetes/kubernetes/issues/42654 kubectl's OpenID Connect plugin will start using golang.org/x/oauth2 for refreshing, instead of go-oidc's own hand rolled oauth2 implementation. In preparation, update golang.org/x/oauth2 to include 7374b3f1ec which fixes refreshing with Okta.

We also somehow removed the dependency on `google.golang.org/appengine`. Maybe 8cf58155e4?

cc @kubernetes/sig-auth-pr-reviews
2017-05-03 19:34:14 -07:00
Chao Xu
c984468678 control visibility client-go/pkg/api 2017-05-03 14:04:36 -07:00
deads2k
c837c7fb1a use our own serve mux that directs how we want 2017-05-03 16:21:45 -04:00
Kubernetes Submit Queue
80f26fa8a8 Merge pull request #44523 from caesarxuchao/remove-client-go-api-scheme
Automatic merge from submit-queue

Remove imports of k8s.io/client-go/pkg/api

k8s.io/client-go/pkg/api will be eliminated by #44784, so we need to remove all imports of it.

This PR is large, but mostly simple changes, like:
* using constants defined in the v1 package instead of those in the internal package 
* using k8s.io/client-go/kubernetes/scheme.Codecs/Schemes instead of those in k8s.io/client-go/pkg/api
* using `v1.SchemeGroupVersion` instead of `api.Registry.GroupOrDie(api.GroupName).GroupVersion` in tests
* importing `k8s.io/kubernetes/pkg/api` instead of `k8s.io/client-go/pkg/api` if possible

With this PR https://github.com/kubernetes/kubernetes/pull/45159, the only remaining imports of `k8s.io/client-go/pkg/api` are from k8s.io/metrics.
``` bash
$ git grep "\"k8s.io/client-go/pkg/api\"" | grep -v "staging/src/k8s.io/client-go/pkg/api"
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go:25:	"k8s.io/client-go/pkg/api"
Binary file staging/src/k8s.io/metrics/pkg/apis/custom_metrics/types.generated.go matches
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/types.go:22:	"k8s.io/client-go/pkg/api"
staging/src/k8s.io/metrics/pkg/apis/metrics/install/install.go:26:	"k8s.io/client-go/pkg/api"
staging/src/k8s.io/metrics/pkg/apis/metrics/types.go:21:	"k8s.io/client-go/pkg/api"
Binary file staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.conversion.go matches
Binary file staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go matches
staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/clientset_generated.go:24:	"k8s.io/client-go/pkg/api"
staging/src/k8s.io/metrics/pkg/client/custom_metrics/client.go:26:	"k8s.io/client-go/pkg/api"
staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/fake_client.go:24:	"k8s.io/client-go/pkg/api"
```
2017-05-03 10:46:34 -07:00
Kubernetes Submit Queue
df8551acd2 Merge pull request #45115 from deads2k/tpr-07-types
Automatic merge from submit-queue (batch tested with PRs 45272, 45115)

initial types for TPRs

This pull starts creating the types described by https://github.com/kubernetes/community/blob/master/contributors/design-proposals/thirdpartyresources.md .  In the initial pull different names were suggested.  I've started this pull with `CustomResource.apiextensions.k8s.io`.

The structure begins as a separate API server to facilitate rapid prototyping and experimentation, but the end result will be added to the end of the `kube-apiserver` chain as described in https://github.com/kubernetes/community/blob/master/sig-api-machinery/api-extensions-position-statement.md .

Because it is separate to start (not included in any default server), I don't think we need a perfect name, but I'd like to be close.

@kubernetes/sig-api-machinery-misc @enisoc @smarterclayton @erictune
2017-05-03 05:36:59 -07:00
Dr. Stefan Schimanski
b0b711119b apimachinery: rename meta.{ -> UnsafeGuess}KindToResource 2017-05-03 09:49:02 +02:00
Chao Xu
d978f22e04 remove references to client-go/pkg/api 2017-05-02 17:16:06 -07:00
Kubernetes Submit Queue
72a469f3ac Merge pull request #40544 from henriquetruta/broken-podspec-link
Automatic merge from submit-queue

Fixes broken link in PodSpec

The PodSpec reference to NodeSelector misses
the `.md` extension in the file.



**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-02 12:45:48 -07:00
Kubernetes Submit Queue
e10c59af41 Merge pull request #43003 from deads2k/server-05-discovery
Automatic merge from submit-queue (batch tested with PRs 45227, 43003, 45231)

separate discovery from the apiserver

This decouples the API discovery handlers from the core API server code.  It separates the code into a new package and clarifies interfaces with existing TPR code.

@kubernetes/sig-api-machinery-pr-reviews
2017-05-02 11:24:53 -07:00
deads2k
641b83877a remove bearer token from headers after we consume it 2017-05-02 14:11:23 -04:00
Kubernetes Submit Queue
2689f033a8 Merge pull request #45222 from sttts/sttts-cut-off-endpoints-from-client-go
Automatic merge from submit-queue (batch tested with PRs 45100, 45152, 42513, 44796, 45222)

apiserver: split endpoint tests from client-go

Use the example apigroup and create its own scheme.

Fixes https://github.com/kubernetes/kubernetes/issues/45209.
2017-05-02 10:35:14 -07:00
Henrique Truta
4a487cbb11 Fixes broken link in PodSpec
The PodSpec reference to NodeSelector misses
 the .md extension in the file.
2017-05-02 13:33:49 -03:00
deads2k
e099f5eee6 separate discovery from the apiserver 2017-05-02 08:50:43 -04:00
deads2k
6a74988f96 image and resources for manual testing 2017-05-02 08:49:21 -04:00
deads2k
c7e68a27be create apiserver for extensions 2017-05-02 08:49:20 -04:00
deads2k
72eef13e3e generated 2017-05-02 08:49:20 -04:00
deads2k
a0b6241159 types 2017-05-02 08:43:34 -04:00
deads2k
ed27887ad2 wire new staging repo 2017-05-02 08:43:31 -04:00
Dr. Stefan Schimanski
67ca42b2d7 apiserver: split endpoint tests from client-go 2017-05-02 12:03:58 +02:00
Kubernetes Submit Queue
cb27476153 Merge pull request #45180 from caesarxuchao/move-metrics-to-staging
Automatic merge from submit-queue (batch tested with PRs 45077, 45180, 34727, 45079, 45177)

Move k8s.io/metrics to staging/

This is to break the cyclic dependency in our code base: kubernetes depends on k8s.io/metrics, which depends on kubernetes/staging/client-go.

@DirectXMan12 i actually moved it to staging because we will need the flexibility to update metrics code directly to do many planned refactors, so the copy of metrics in kubernetes has to be the source of truth.

client-gen is not enabled for the code yet, we can enable it after you port your changes to client-gen.

`make generated_files` is enabled for metrics.
2017-05-01 18:55:11 -07:00
Chao Xu
3294200dc8 move metrics to staging 2017-05-01 16:43:50 -07:00
Mike Danese
ff4a814cce migrate set generation to go genrule
and move ./types to staging
2017-05-01 11:11:14 -07:00
Andy Goldstein
11e4f149d9 Fix typo in lister-gen, regenerate
NamespaeLister -> NamespaceLister
2017-05-01 12:18:45 -04:00
deads2k
0da5be47cf prevent panic on setting nil deletion timestamp 2017-05-01 11:11:41 -04:00
Ricky Pai
a76ada8d5a generated files 2017-04-28 22:55:47 -07:00
Kubernetes Submit Queue
55f802b72a Merge pull request #44196 from xiangpengzhao/cmd-cleanup
Automatic merge from submit-queue

Delete "hard-coded" default value in flags usage.

**What this PR does / why we need it**:
Some flags of kubernetes components have "hard-coded" default values in their usage info. In fact, [pflag pkg](https://github.com/kubernetes/kubernetes/blob/master/vendor/github.com/spf13/pflag/flag.go#L602-L608) has already added a string `(default value)` automatically in the usage info if the flag is initialized. Then we don't need to hard-code the default value in usage info. After this PR, if we want to update the default value of a flag, we only need to update the flag where it is initialized. `pflag` will update the usage info for us. This will avoid inconsistency.

For example:
Before
```
kubelet -h
...
--node-status-update-frequency duration                   Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s (default 10s)
...
```

After
```
kubelet -h
...
--node-status-update-frequency duration                   Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. (default 10s)
...
```

**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**:
This PR doesn't delete some "hard-coded" default values because they are not explicitly initialized. We still need to hard-code them to give users friendly info.

```
--allow-privileged                                        If true, allow containers to request privileged mode. [default=false]
```

**Release note**:

```release-note
None
```
2017-04-28 21:28:09 -07:00
Kubernetes Submit Queue
ce01882e32 Merge pull request #43301 from deads2k/agg-27-add-conditions
Automatic merge from submit-queue (batch tested with PRs 44044, 44766, 44930, 45109, 43301)

add APIService conditions

Adds conditions to the APIServiceStatus struct and fixes up generators that appear to have slipped.

The first condition is "ServiceAvailable" which will provide the status currently derived in the discovery handler that decides about whether to expose the version in discovery.

@kubernetes/sig-api-machinery-pr-reviews @liggitt @ncdc
2017-04-28 17:49:13 -07:00
Eric Chiang
9fc727cf44 staging: run ./hack/update-staging-client-go.sh 2017-04-28 13:51:59 -07:00
Kubernetes Submit Queue
90d5fbca94 Merge pull request #44961 from mikedanese/fix-clone
Automatic merge from submit-queue (batch tested with PRs 45033, 44961, 45021, 45097, 44938)

replace CloneTLSConfig() with (*tls.Config).Clone()
2017-04-28 13:16:40 -07:00
Kubernetes Submit Queue
d4ece0abc3 Merge pull request #37499 from fabianofranz/kubectl_plugins
Automatic merge from submit-queue

kubectl binary plugins

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

Introduces the ability to extend `kubectl` by adding third-party plugins that will be exposed through `kubectl`.

Plugins are executable commands written in any language. To be included as a plugin, a binary or script file has to

1. be located under one of the supported plugin path locations:
1.1 `~/.kubectl/plugins` dir
1.2. one or more directory set in the `KUBECTL_PLUGINS_PATH` env var
1.3. the `kubectl/plugins` dir under one or more directory set in the `XDG_DATA_DIRS` env var, which defaults to `/usr/local/share:/usr/share`
2. in any of the plugin path above, have a subfolder with the plugin file(s)
3. in the subfolder, contain at least a `plugin.yaml` file that describes the plugin

Example:

```
$ cat ~/.kube/plugins/myplugin/plugin.yaml
name: "myplugin"
shortDesc: "My plugin's short description"
command: "echo Hello plugins!"

$ kubectl myplugin
Hello plugins!
```

~~In case the plugin declares `tunnel: true`, the plugin engine will pass the `KUBECTL_PLUGIN_API_HOST` env var when calling the plugin binary. Plugins can then access the Kube REST API in "http://$KUBECTL_PLUGIN_API_HOST/api" using the same context currently in use by `kubectl`.~~

Test plugins are provided in `pkg/kubectl/plugins/examples`. Just copy (or symlink) the files to `~/.kube/plugins` to test.

**Which issue this PR fixes**:

Related to the discussions in the proposal document: https://github.com/kubernetes/kubernetes/pull/30086 and https://github.com/kubernetes/community/pull/122.

**Release note**:
```release-note
Introduces the ability to extend kubectl by adding third-party plugins. Developer preview, please refer to the documentation for instructions about how to use it.
```
2017-04-28 12:23:59 -07:00
Kubernetes Submit Queue
9fbefe3b97 Merge pull request #44350 from deads2k/server-17-watch
Automatic merge from submit-queue (batch tested with PRs 44868, 44350)

build external watch event so simple encoders can encode

`kube-apiserver` clients require a specific serialization of `watch.Event` to function properly.  There is no reason to allow flexibility of serialization at this point since no client would able to understand a different encoding.

I found this which trying to use a simple, unstructured json encoder and the clients kept choking on watches because it serialized without the proper json tags.

@kubernetes/sig-api-machinery-pr-reviews
2017-04-28 11:41:34 -07:00
Kubernetes Submit Queue
2315008ea6 Merge pull request #44489 from CaoShuFeng/SelfLinkPathPrefix
Automatic merge from submit-queue

Fix PathPrefix for subresources

before this change:
$ curl -s http://172.16.116.128:8080/api/v1/nodes/kubenet-02/status | grep selfLink
    "selfLink": "/api/v1/nodes/{name}/status/kubenet-02/status",
after this change:
$ curl -s http://172.16.116.128:8080/api/v1/nodes/kubenet-02/status | grep selfLink
    "selfLink": "/api/v1/nodes/kubenet-02/status",

related to:
#44462

**Release note**:

```NONE
```
2017-04-28 10:50:09 -07:00
deads2k
afc5ae1539 generated 2017-04-28 11:28:37 -04:00
deads2k
b5f0e3d07e add APIService status conditions 2017-04-28 10:47:29 -04:00
Kubernetes Submit Queue
8787b13d75 Merge pull request #43922 from cezarsa/spdy-fix
Automatic merge from submit-queue

prevent corrupted spdy stream after hijacking connection

This PR fixes corner case in spdy stream code where some bytes would never arrive at the server.

Reading directly from a hijacked connection isn't safe because some data may have already been read by the server before `Hijack` was called. To ensure all data will be received it's safer to read from the returned `bufio.Reader`. This problem seem to happen more frequently when using Go 1.8.
This is described in https://golang.org/pkg/net/http/#Hijacker:

> // The returned bufio.Reader may contain unprocessed buffered
   // data from the client.

I came across this while debugging a flaky test that used code from the `k8s.io/apimachinery/pkg/util/httpstream/spdy` package. After filling the code with debug logs and long hours running the tests in loop in the hope of catching the error I finally caught something weird.

The first word on the first spdy frame [read by the server here](b625085230/vendor/github.com/docker/spdystream/spdy/read.go (L148)) had the value `0x03000100`. See, the first frame to arrive on the server was supposed to be a control frame indicating the creation of a new stream, but all control frames need the high-order bit set to 1, which was not the case here, so the saver mistakenly assumed this was a data frame and the stream would never be created. The correct value for the first word of a SYN_STREAM frame was supposed to be `0x80030001` and this lead me on the path of finding who had consumed the first 1 byte prior to the frame reader being called and finally finding the problem with the Hijack call.

I added a new test to try stressing this condition and ensuring that this bug doesn't happen anymore. However, it's quite ugly as it loops 1000 times creating streams on servers to increase the chances of this bug happening. So, I'm not sure whether it's worth it to keep this test or if I should remove it from the PR. Please let me know what you guys think and I'll be happy to update this.

Fixes #45093 #45089 #45078 #45075 #45072 #45066 #45023
2017-04-28 07:40:03 -07:00
Fabiano Franz
2b178ad608 Basic support for kubectl plugins 2017-04-28 01:34:07 -03:00
Mike Danese
6c6dbec1e2 replace CloneTLSConfig() with (*tls.Config).Clone() 2017-04-27 19:51:36 -07:00
Kubernetes Submit Queue
b2d714a7ca Merge pull request #44888 from caesarxuchao/clean-deepcopy-init
Automatic merge from submit-queue

Prepare for move zz_generated_deepcopy.go to k8s.io/api

This is in preparation to move deep copies to with the types to the types repo (see https://github.com/kubernetes/gengo/pull/47#issuecomment-296855818). The init() function is referring the `SchemeBuilder` defined in the register.go in the same packge, so we need to revert the dependency.

This PR depends on https://github.com/kubernetes/gengo/pull/49, otherwise verification will fail.
2017-04-27 18:48:28 -07:00
Kubernetes Submit Queue
8efb5c9957 Merge pull request #44983 from caesarxuchao/easy-remove-client-go-api-scheme
Automatic merge from submit-queue (batch tested with PRs 45052, 44983, 41254)

Non-controversial part of #44523

For easier review of #44523, i extracted the non-controversial part out to this PR.
2017-04-27 17:14:04 -07:00
Chao Xu
d0b94538b9 make it possible to move SchemeBuilder with zz_generated.deepcopy.go 2017-04-27 16:57:29 -07:00
Kubernetes Submit Queue
14a557b1a2 Merge pull request #44346 from mikedanese/build-static
Automatic merge from submit-queue (batch tested with PRs 41106, 44346, 44929, 44979, 45027)

bazel: statically link dockerized components
2017-04-27 12:11:00 -07:00
Chao Xu
958903509c bazel 2017-04-27 09:41:53 -07:00
Chao Xu
3fa7b7824a easy changes 2017-04-27 09:41:53 -07:00
Kubernetes Submit Queue
2e7cc0222d Merge pull request #44935 from yifan-gu/fix_poll
Automatic merge from submit-queue (batch tested with PRs 44940, 44974, 44935)

apimachinery/pkg/util/wait: Fix potential goroutine leak in pollInternal().

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

Without the change, the wait function wouldn't exit until the timeout
happens, so if the timeout is set to a big value and the Poll() is run
inside a loop, then the total goroutines will increase indefinitely.

This PR fixes the issue by closing the stop channel to tell the wait function
to exit immediately if condition is true or any error happens.
2017-04-26 20:34:14 -07:00
Kubernetes Submit Queue
c446132a97 Merge pull request #44974 from caesarxuchao/remove-client-go-api-listers
Automatic merge from submit-queue (batch tested with PRs 44940, 44974, 44935)

Remove import of internal api package in generated external-versioned listers

Follow up of https://github.com/kubernetes/kubernetes/pull/44523

One line change in cmd/libs/go2idl/lister-gen/generators/lister.go, and simple changes in pkg/apis/autoscaling/v2alpha1/register.go, other changes are generated.

The internal api package will be eliminated from client-go, so these imports should be removed. Also, it's more correct to report the versioned resource in the error.
2017-04-26 20:34:13 -07:00
Kubernetes Submit Queue
904b020756 Merge pull request #43469 from enisoc/has-conflicts
Automatic merge from submit-queue

Fix mergepatch.HasConflicts().

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

This fixes some false negatives:

* If a map had multiple entries, only the first was checked.
* If a list had multiple entries, only the first was checked.

**Which issue this PR fixes**:

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```
2017-04-26 18:32:33 -07:00
Kubernetes Submit Queue
433aec11c8 Merge pull request #44531 from pwittrock/kubectl-openapi
Automatic merge from submit-queue

OpenAPI support for kubectl

Support for openapi spec in kubectl.

Includes:
- downloading and caching openapi spec to a local file
- parsing openapi spec into binary serializable datastructures (10x faster load times 600ms -> 40ms)
- caching parsed openapi spec in memory for each command

```release-note
NONE
```
2017-04-26 16:59:17 -07:00
Chao Xu
ee61ffb4b1 bazel 2017-04-26 14:41:10 -07:00
Chao Xu
0bac9b6aaa update list-gen to not import internal package in external listers 2017-04-26 14:41:09 -07:00
Andy Goldstein
fc2128c8d8 Update bazel 2017-04-26 09:45:19 -04:00
Andy Goldstein
715d5d9c91 Add redirect support to SpdyRoundTripper
Add support for following redirects to the SpdyRoundTripper. This is
necessary for clients using it directly (e.g. the apiserver talking
directly to the kubelet) because the CRI streaming server issues a
redirect for streaming requests.

Also extract common logic for following redirects.
2017-04-26 09:45:19 -04:00
Cao Shufeng
dde1221839 Fix PathPrefix for subresources 2017-04-26 14:51:19 +08:00
Kubernetes Submit Queue
d03ca66367 Merge pull request #41636 from luxas/bump_go_18
Automatic merge from submit-queue (batch tested with PRs 41287, 41636, 44881, 44826)

Bump to go1.8 and remove the edge GOROOT

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

Bumps to go1.8; we get:
 - performance improvements
 - build time improvements
 - the possibility to remove the hacky edge-GOROOT for arm and ppc64le that must use go1.8
 - all other awesome features that are included in go1.8: https://golang.org/doc/go1.8

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes https://github.com/kubernetes/kubernetes/issues/38228

**Special notes for your reviewer**:

@ixdy Please push the image ASAP so we can see if this passes all tests

**Release note**:

```release-note
Upgrade go version to v1.8
```
cc @ixdy @bradfitz @jessfraz @wojtek-t @timothysc @spxtr @thockin @smarterclayton @bprashanth @gmarek
2017-04-25 17:56:40 -07:00
Kubernetes Submit Queue
fd3171b3a8 Merge pull request #41287 from whitlockjc/webhook-tests
Automatic merge from submit-queue (batch tested with PRs 41287, 41636, 44881, 44826)

apiserver: add pkg/util/webhook tests

This commit adds tests for pkg/util/webhooks.  The purpose of this was not only for better code coverage but also to alleviate the need for consumers to write their own tests for core functionality.

**Reasoning**

While working on the generic webhook admission plugin for https://github.com/kubernetes/community/pull/132, I found out that there are no tests for `staging/k8s.io/apiserver/pkg/util/webhook` and I also noticed that various places in the k8s sources were also replicating the same core tests that could/should be handled in `staging/k8s.io/apiserver/pkg/util/webhook`:

* `staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook_test.go`
* `staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook_test.go`
* `plugin/pkg/admission/imagepolicy/admission_test.go`
* _possibly more..._

That's what this PR does, adds tests for `staging/k8s.io/apiserver/pkg/util/webhook` so that consumers no longer have to worry about testing client configuration issues, TLS issues, etc. just to use `staging/k8s.io/apiserver/pkg/util/webhook`.

cc @cjcullen
2017-04-25 17:56:38 -07:00
Yifan Gu
3d0391864e apimachinery/pkg/util/wait: Fix potential goroutine leak in pollInternal().
Without the change, the wait function wouldn't exit until the timeout
happens, so if the timeout is set to a big value and the Poll() is run
inside a loop, then the total goroutines will increase indefinitely.

This PR fix the issue by closing the stop channel to tell the wait function
to exit immediately if condition is true or any error happens.
2017-04-25 17:24:40 -07:00
Solly Ross
b6256e1f3f OWNERS: add directxman12 to pkg/apis/autoscaling
Added directxman12 (current SIG lead of SIG-autoscaling) as a reviewer
for pkg/apis/autoscaling.
2017-04-25 17:43:42 -04:00
Lucas Käldström
50af2e84ab
Update the staging directory 2017-04-26 00:32:00 +03:00
Lucas Käldström
f32e6d8a89
Update protobuf 2017-04-25 23:50:31 +03:00
Kubernetes Submit Queue
e1adcc2367 Merge pull request #44583 from mikedanese/go1.8
Automatic merge from submit-queue

bump bazel build to go1.8.1 and remove invalid unit tests

part of https://github.com/kubernetes/kubernetes/issues/38228

I firmly believe that unit tests that check error strings are incorrect unit tests. If we care about what type of error is returned, we need to use public error types. Anywhere we are using generic errors, we don't care other then that we saw an error.
2017-04-25 13:32:28 -07:00
Kubernetes Submit Queue
f4eed2477d Merge pull request #44491 from NickrenREN/volume-MountOptionAnnotation
Automatic merge from submit-queue (batch tested with PRs 44601, 44842, 44893, 44491, 44588)

Define const annotation variable once

We do not need to define the const annotation var twice in pkg/volume and pkg/volume/validation


**Release note**:
```release-note
NONE
```
2017-04-25 12:51:39 -07:00
Mike Danese
e48a4f0af7 fix various bad tests 2017-04-25 11:23:33 -07:00
Phillip Wittrock
21e239fb82 kubectl OpenAPI bazel updates 2017-04-25 10:45:50 -07:00
Phillip Wittrock
212c2a3a72 kubectl OpenAPI support 2017-04-25 10:45:49 -07:00
Phillip Wittrock
70704196be kubectl OpenAPI godeps updates 2017-04-25 10:44:56 -07:00
Kubernetes Submit Queue
cd380b580b Merge pull request #44462 from deads2k/server-21-selflink
Automatic merge from submit-queue (batch tested with PRs 42477, 44462)

fix cluster scoped self-link

Might fix #37622, definitely fixes the cluster-scoped resource problem.  Looks like it was just a typo when compared against  https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/endpoints/installer.go#L451

@adohe @DirectXMan12
2017-04-25 10:25:46 -07:00
Kubernetes Submit Queue
1fd19f7fa2 Merge pull request #42477 from jsafrane/v1-2-new-api
Automatic merge from submit-queue (batch tested with PRs 42477, 44462)

Use storage.v1 instead of v1beta1

storage.v1beta1 was used to work around GKE which did not expose v1. Now that GKE is updated, we can switch everything to v1.

This is simple sed v1beta1 -> v1 + enabled a new test + changed preference of exposed interfaces in `storage/install/install.go`.

@msau42, PTAL and let me know when GKE is updated with storage v1 API and this PR can be actually merged.

@kubernetes/sig-storage-pr-reviews 

```release-note
NONE
```
2017-04-25 10:25:44 -07:00
deads2k
5746d876e3 fix cluster scoped self-link 2017-04-25 11:23:18 -04:00
Jan Safranek
cde2746821 Regenerate everything 2017-04-25 15:34:46 +02:00
Liam White
0bdfb7ae13 Increase code coverage for pkg/api/resource
Signed-off-by: Liam White <liamwhite@uk.ibm.com>
2017-04-25 08:12:11 +01:00
Di Xu
47442f1c57 update gophercloud that fixed code format
mainly to include #265(https://github.com/gophercloud/gophercloud/pull/265)
2017-04-25 03:16:03 +00:00
Kubernetes Submit Queue
c3ec845ab6 Merge pull request #44862 from liggitt/icc-namespace-override
Automatic merge from submit-queue

Stop treating in-cluster-config namespace as an override

Fixes #44835

The namespace of an in-cluster config should behave like the namespace specified in a kubeconfig file... it should be used as the default namespace, but be able to be overridden by namespaces specified in yaml files passed to `kubectl create -f`.

```release-note
Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in.
```
2017-04-24 19:22:42 -07:00
Jeremy Whitlock
d15dba7e8b apiserver: add pkg/util/webhook tests
This commit adds tests for pkg/util/webhooks.  The purpose of this was
not only for better code coverage but also to alleviate the need for
consumers to write their own tests for core functionality.
2017-04-24 16:13:17 -06:00
Kubernetes Submit Queue
a9454baba4 Merge pull request #44788 from enisoc/patch-numeric
Automatic merge from submit-queue

PATCH: Fix erroneous meaningful conflict for numeric values.

The wrong json package was used, resulting in patches being unmarshaled with numbers as float64 rather than int64. This in turn confused `HasConflicts()` which expects numeric types to match.

The end result was false positives of meaningful conflicts, such as:

```
there is a meaningful conflict (firstResourceVersion: "8517", currentResourceVersion: "8519"):
 diff1={"metadata":{"resourceVersion":"8519"},"spec":{"replicas":0},"status":"conditions":null,"fullyLabeledReplicas":null,"replicas":0}}
, diff2={"spec":{"replicas":0}}
```

This is branched from a discussion on https://github.com/kubernetes/kubernetes/pull/43469.

```release-note
Fix false positive "meaningful conflict" detection for strategic merge patch with integer values.
```
2017-04-24 12:11:29 -07:00
Jordan Liggitt
1305559abb
Stop treating in-cluster-config namespace as an override 2017-04-24 14:33:02 -04:00
Kubernetes Submit Queue
7e42d3848e Merge pull request #44492 from CaoShuFeng/namer
Automatic merge from submit-queue (batch tested with PRs 44837, 44779, 44492)

remove duplicate code from restful namer

The deleted codes have the same logic with function ObjectName.

**Release note**:

```release-note
```
2017-04-24 07:56:02 -07:00
Kubernetes Submit Queue
c90faa8071 Merge pull request #44779 from enj/enj/r/etcd_default_name_copy
Automatic merge from submit-queue (batch tested with PRs 44837, 44779, 44492)

Default ObjectNameFunc for all REST Stores

All `Store`s in Kubernetes follow the same logic for determining the name of an object.  This change makes it so that `CompleteWithOptions` defaults the `ObjectNameFunc` if it is not specified.  Thus a user does not need to remember to use `ObjectMeta.Name`.  Using the wrong field as the name can lead to an object which has a name that bypasses normal object name validation.

Signed-off-by: Monis Khan <mkhan@redhat.com>

cc @liggitt @soltysh for review

**Release note**:

```
NONE
```
2017-04-24 07:55:59 -07:00
Kubernetes Submit Queue
08c5e28904 Merge pull request #44837 from danielqsj/apiissue
Automatic merge from submit-queue

Fix Content-Type error of apis

**What this PR does / why we need it**:
Response's Content-type of `/apis` is `text/plain`, not `application/json`.

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

**Special notes for your reviewer**:
We could use `responsewriters.WriteObjectNegotiated()` to write Content-type correctly.

**Release note**:

```release-note
```
2017-04-24 07:14:33 -07:00
Kubernetes Submit Queue
57fdd75cb8 Merge pull request #43440 from CaoShuFeng/audit_port
Automatic merge from submit-queue

Update basic audit filter's comment message

**Release note**:

```NONE
```
2017-04-24 06:27:59 -07:00
shijunqian
90802b2e3d Fix Content-Type error of apis 2017-04-24 16:12:00 +08:00
Kubernetes Submit Queue
ac90c0e45c Merge pull request #44579 from mikedanese/cert-fix
Automatic merge from submit-queue

make certs used in roundtripper_test same as those used in proxy_test

This fixes an invalid cert error in 1.8. Gross copy paste but we will likely never have to do this again.

Part of https://github.com/kubernetes/kubernetes/issues/38228

https://github.com/kubernetes/kubernetes/blame/master/staging/src/k8s.io/apiserver/pkg/endpoints/proxy_test.go#L524-L570
2017-04-23 22:23:36 -07:00
NickrenREN
e443277d58 Define const annotation variable once
Move annotation to package imported by both pkg/volume and pkg/volume/validation
2017-04-24 11:54:21 +08:00
NickrenREN
7d00e5cfb6 remove deprecated NodeLegacyHostIP 2017-04-24 11:01:25 +08:00
Kubernetes Submit Queue
e0ba40b67c Merge pull request #39716 from zhouhaibing089/etcd-health-check
Automatic merge from submit-queue

etcd component status check should include credentials

- [x] Add TLS credentials into `pkg/genericapiserver.Backend`.
- [x] Add TLS credentials into `pkg/registry/core/componentstatus.Server`.
- [x] `pkg/probe/http.httpProber` should accept the TLS credentials.

Now it is working.

```console
$ kubectl get cs
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health": "true"}
```

Fixes https://github.com/kubernetes/kubernetes/issues/27343.
2017-04-22 07:30:30 -07:00
Anthony Yeh
1ab6a33db4
PATCH: Fix erroneous meaningful conflict for numeric values.
The wrong json package was used, resulting in patches being unmarshaled
with numbers as float64 rather than int64.
This in turn confused HasConflicts() which expects numeric types to match.

The end result was false positives of meaningful conflicts, such as:

```
there is a meaningful conflict (firstResourceVersion: "8517",
currentResourceVersion: "8519"):
 diff1={"metadata":{"resourceVersion":"8519"},"spec":{"replicas":0},"status":{"conditions":null,"fullyLabeledReplicas":null,"replicas":0}}
, diff2={"spec":{"replicas":0}}
```
2017-04-21 17:24:07 -07:00
Anthony Yeh
103cb17bad
Fix mergepatch.HasConflicts().
This fixes some false negatives:

* If a map had multiple entries, only the first was checked.
* If a list had multiple entries, only the first was checked.
2017-04-21 15:33:10 -07:00
Kubernetes Submit Queue
fa750c02be Merge pull request #44570 from liggitt/namespace-icc
Automatic merge from submit-queue

Explicit namespace from kubeconfig should override in-cluster config

Fixes #43662 

If an explicitly specified namespace is read from a kubeconfig file, we should not fall back to in-cluster config

```release-note
kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback.
```
2017-04-21 14:45:23 -07:00
Monis Khan
ed35deb69d
Default ObjectNameFunc for all REST Stores
All Stores in Kubernetes follow the same logic for determining the name
of an object.  This change makes it so that CompleteWithOptions defaults
the ObjectNameFunc if it is not specified.  Thus a user does not need to
remember to use ObjectMeta.Name.  Using the wrong field as the name can
lead to an object which has a name that bypasses normal object name
validation.

Signed-off-by: Monis Khan <mkhan@redhat.com>
2017-04-21 15:47:25 -04:00
Kubernetes Submit Queue
ee86c18d92 Merge pull request #44623 from p0lyn0mial/split_out_admission_options
Automatic merge from submit-queue (batch tested with PRs 42202, 40784, 44642, 44623, 44761)

Split out AdmissionOptions

**What this PR does / why we need it**: The changes in this PR split out AdmissionOptions from ServerRunOptions. In the long term AdmissionOptions will accepts various dependencies
and spit out AdmissionControl

**Release note**:

NONE
2017-04-21 11:52:09 -07:00
Kubernetes Submit Queue
936137d22b Merge pull request #44076 from liggitt/impersonation-groupify
Automatic merge from submit-queue

Include system:authenticated group when impersonating

Fixes #43227

An authorized impersonation request solely for a specific username previously resulted in a `user.Info` that did not include either the `system:authenticated` or `system:unauthenticated` groups. That meant that permissions intended to be granted to all users, like discovery, would be denied the impersonated user.

This allows `kubectl get pods --as=<username>` to work as expected

```release-note
API requests using impersonation now include the `system:authenticated` group in the impersonated user automatically.
```
2017-04-21 09:22:35 -07:00
Kubernetes Submit Queue
c4bc7c1166 Merge pull request #44636 from yvespp/master
Automatic merge from submit-queue

client-go PortForwarder: don't log an error if net.Listen fails

**What this PR does / why we need it**:
If ipv6 is disabled the client-go PortForwarder logs an error:
```
E0406 17:26:06.983609   29625 portforward.go:209] Unable to create listener: Error listen tcp6 [::1]:30143: socket: address family not supported by protocol
```
This pull request removes this error log. Reasons:
* Tunnel creation might still succeed on ipv4 and the error just confuses the user (see https://github.com/kubernetes/helm/issues/2223).
* If the tunnel can't be created the error gets also loggen in `listenOnPort`.
* runtime.HandleError should only be used on errors "_when a non-user facing piece of code cannot return an error"_ which isn't the case here.

**Which issue this PR fixes**
Fixes https://github.com/kubernetes/helm/issues/2223
2017-04-21 08:34:17 -07:00
Kubernetes Submit Queue
3559c067c6 Merge pull request #41571 from php-coder/fix_comments
Automatic merge from submit-queue

Minor cleanups

Minor improvements:
- `ValidateNoNewFinalizers`: remove unused const
- Mention that mutation of `spec.initContainers[*].image` field is allowed
- Improve godoc comments
2017-04-21 08:34:07 -07:00
Roman Mohr
b39b3ba016 client-go workqueue example
Demonstrates how to compose a controller out of cache.Controller,
cache.Indexer and a workqueue.
2017-04-21 12:41:30 +02:00
Kubernetes Submit Queue
870585e8e1 Merge pull request #44651 from knightXun/string
Automatic merge from submit-queue (batch tested with PRs 44594, 44651)

remove strings.compare(), use string native operation

I notice we use strings.Compare() in some code, we can remove it and use native operation.
2017-04-20 14:08:59 -07:00
Kubernetes Submit Queue
7b43f922aa Merge pull request #42176 from enisoc/controller-ref-job
Automatic merge from submit-queue (batch tested with PRs 42177, 42176, 44721)

Job: Respect ControllerRef

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

This is part of the completion of the [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md) proposal. It brings Job into full compliance with ControllerRef. See the individual commit messages for details.

**Which issue this PR fixes**:

This ensures that Job does not fight with other controllers over control of Pods.

Ref: #24433

**Special notes for your reviewer**:

**Release note**:

```release-note
Job controller now respects ControllerRef to avoid fighting over Pods.
```
cc @erictune @kubernetes/sig-apps-pr-reviews
2017-04-20 12:57:06 -07:00
Jordan Liggitt
63b5650885
Explicit namespace from kubeconfig should override in-cluster config 2017-04-20 13:46:23 -04:00
Jordan Liggitt
67360883bc
Switch to pointer to policy rule, visit and short circuit during authorization 2017-04-20 10:52:53 -04:00
Cao Shufeng
939b962975 refactor code from restful namer
Some codes are replaced because they will never run.
2017-04-20 17:34:08 +08:00
Kubernetes Submit Queue
afc01d92d2 Merge pull request #42272 from marun/apiserver-fail-fast
Automatic merge from submit-queue

apiserver: Update genericapiserver to panic on listener error

Previously runServer would try to listen again if a listener error occurred.  This commit changes the response to a panic to allow a process manager (systemd/kubelet/etc) to react to the failure.

**Release note**:

```release-note
The Kubernetes API server now exits if it encounters a networking failure (e.g. the networking interface hosting its address goes away) to allow a process manager (systemd/kubelet/etc) to react to the problem.  Previously the server would log the failure and try again to bind to its configured address:port.
```

cc: @liggitt @sttts @deads2k @derekwaynecarr
2017-04-19 23:51:34 -07:00
Cezar Sa Espinola
cc5a309fd7
prevent corrupted spdy stream after hijacking connection
Reading directly from a hijacked connection isn't safe because some
data may have already been read by the server before Hijack was called.
To ensure all data will be received it's safer to read from the returned
bufio.Reader.
2017-04-19 21:50:49 -03:00
Anthony Yeh
ad026026e0 Job: Update Lister documentation for ControllerRef.
The Job Listers still use selectors, because this is the
behavior expected by callers. This clarifies the meaning of the
returned list. Some callers may need to switch to using
GetControllerOf() instead, but that is a separate, case-by-case issue.
2017-04-19 14:03:36 -07:00
Clayton Coleman
32cbeaf516
Add OWNERS for staging and api
api/ is a copy of pkg/api (same reasoning)
staging/ is the set of people who should be allowing new top level
nested packages + the set of people who can change the staging machinery
code
staging/src/k8s.io/apimachinery/ is the set of core machinery people
2017-04-19 15:58:09 -04:00
p0lyn0mial
4a3dcff3bf bazel update 2017-04-19 17:22:44 +02:00
Kubernetes Submit Queue
d46983f2e5 Merge pull request #44667 from gmarek/fix_get_traces
Automatic merge from submit-queue

Fix traces for get requests

Currently traces for GETs are not useful at all, as they're measuring the wrong thing.
2017-04-19 08:06:41 -07:00
gmarek
2a49281b55 Fix traces for get requests 2017-04-19 15:04:03 +02:00
Kubernetes Submit Queue
712ccf3fa4 Merge pull request #44082 from zetaab/fixzone2
Automatic merge from submit-queue

use availability_zone instead of availability (update godep for gophercloud)

**What this PR does / why we need it**: there is typo in json variable name

**Which issue this PR fixes**: fixes #44032

**Special notes for your reviewer**:our openstack environment region name is not nova, so I tested this and it works now

All cinder blockstorages are using variable name availability_zone instead of availability. Docs: 

v3:
https://developer.openstack.org/api-ref/block-storage/v3/index.html?expanded=create-a-volume-detail#create-a-volume

v2:
https://developer.openstack.org/api-ref/block-storage/v2/index.html?expanded=create-volume-detail#create-volume

I could not find v1 documentation anymore from openstack pages. However, https://developer.rackspace.com/docs/cloud-block-storage/v1/api-reference/cbs-volumes-operations/#create-a-volume documentation says also availability_zone is the correct one. 

Like mentioned in https://github.com/kubernetes/kubernetes/issues/44032#issuecomment-291488494 openstack CLI is using availability_zone
2017-04-19 03:26:25 -07:00
xu fei
b0a3f492af remove strings.compare(), use string native operation 2017-04-19 09:32:29 +08:00
Maru Newby
30fb3be4d2 apiserver: Update genericapiserver to panic on listener error
Previously runServer would try to listen again if a listener error
occurred.  This commit changes the response to a panic to allow a
process manager (systemd/kubelet/etc) to react to the failure.
2017-04-18 15:48:45 -07:00
Yves Peter
99711a96a4 client-go PortForwarder: don't log an error if net.Listen fails 2017-04-18 22:46:32 +02:00
p0lyn0mial
de9706bc15 Split out AdmissionOptions
In the long term AdmissionOptions will accepts various dependencies
and spit out AdmissionControl
2017-04-18 19:48:14 +02:00
Kubernetes Submit Queue
eccba3b6d0 Merge pull request #42711 from xilabao/small-fix-in-audit-log
Automatic merge from submit-queue

clean auditStringSlice in audit
2017-04-18 03:03:21 -07:00
Kubernetes Submit Queue
f40fafe755 Merge pull request #44568 from mikedanese/fix-staging
Automatic merge from submit-queue (batch tested with PRs 40055, 42085, 44509, 44568, 43956)

revert BUILD changes at the end of DRY_RUN=n copy.sh

Fixes https://github.com/kubernetes/kubernetes/issues/44567

cc @caesarxuchao @ixdy @spxtr
2017-04-17 15:39:11 -07:00
Kubernetes Submit Queue
a1684fea80 Merge pull request #42085 from cblecker/gofmt-fix
Automatic merge from submit-queue (batch tested with PRs 40055, 42085, 44509, 44568, 43956)

Fix gofmt errors

**What this PR does / why we need it**:
There were some gofmt errors on master. Ran the following to fix:
```
hack/verify-gofmt.sh | grep ^diff | awk '{ print $2 }' | xargs gofmt -w -s
```

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-04-17 15:39:07 -07:00
Kubernetes Submit Queue
44127c588d Merge pull request #40055 from StudyNick/zte-20170118
Automatic merge from submit-queue

error word

dummyController Struct comment "disonnected " is error word
WaitForCacheSync method comment "contoller" is error word
2017-04-17 15:30:17 -07:00
Mike Danese
ceb0b4e799 make certs used in roundtripper_test same as those used in proxy_test 2017-04-17 14:37:40 -07:00
Kubernetes Submit Queue
73fb978181 Merge pull request #44398 from caesarxuchao/move-v1/refs-and-v1/resource
Automatic merge from submit-queue (batch tested with PRs 44569, 44398)

Move v1/refs and v1/resource

This PR moves pkg/api/v1/ref.go and pkg/api/v1/resource_helper.go to their own sub packages, it's very similar to 44299 and 44302.

The PR is mostly mechanical, except that 
* i moved some utility function from resource.go to pkg/api/v1/pod and pkg/api/v1/node, as they are more appropriate
* i updated the staging/copy.sh to copy the new subpackages, so that helper functions are copied. We can get rid of this copy after client-go stops copying API types.
2017-04-17 14:03:57 -07:00
Kubernetes Submit Queue
4372b437ba Merge pull request #44513 from mml/windows
Automatic merge from submit-queue (batch tested with PRs 44519, 43194, 44513)

Use regexp instead of substring to do search and replace.

enisoc pointed out how ToLower can change (lengthen even!) the length of
a string given arbitrary input.

Follow-up to #44421 for #44419
2017-04-17 12:39:06 -07:00
Kubernetes Submit Queue
ca8f1bcf3d Merge pull request #44519 from thockin/remove-deprecated-public-ips
Automatic merge from submit-queue

Remove deprecatedPublicIPs field
2017-04-17 12:11:00 -07:00
Chao Xu
4f9591b1de move pkg/api/v1/ref.go and pkg/api/v1/resource.go to subpackages. move some functions in resource.go to pkg/api/v1/node and pkg/api/v1/pod 2017-04-17 11:38:11 -07:00
Mike Danese
4eb5498bc7 run update-bazel.sh at the end of DRY_RUN=n copy.sh 2017-04-17 11:27:21 -07:00
Kubernetes Submit Queue
74d0258818 Merge pull request #44373 from knightXun/patch-2
Automatic merge from submit-queue

change event count type

event count type had better to be uint.

thx all.
2017-04-17 01:33:57 -07:00
zhouhaibing089
b1040171b6 componentstatus: support client cert health check
etcd has support for client-cert-auth, which can be configured via the flag `--ca-file`,
when that is enabled, all the client requests must present with a client certificate,
however, the current component status check uses a single transport for all of the checks,
this is wrong, the checks should be different for each of different component, and make
each of them use different transport(tls configurations).
2017-04-17 13:58:33 +08:00
xilabao
4b8abd811d remove useless check in audit.go 2017-04-17 09:58:19 +08:00
Tim Hockin
fa93290b72 --amend 2017-04-16 13:06:01 -07:00
Kubernetes Submit Queue
dee81ed56a Merge pull request #44113 from mikkeloscar/update-goproxy
Automatic merge from submit-queue

vendor: Update elazarl/goproxy to fix e2e test with go1.8

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

This updates the dependency `github.com/elazarl/goproxy` to include this fix c4fc26588b which makes kubernetes e2e tests build with go1.8. It was crashing before as described in https://github.com/elazarl/goproxy/issues/188#issuecomment-281092250 and #38228

**Which issue this PR fixes**

This is part of the fix for #38228 

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-04-16 10:26:55 -07:00
Kubernetes Submit Queue
f05ce1e8f1 Merge pull request #44423 from monopole/fixUserAgent
Automatic merge from submit-queue

Use OS-specific libs when computing client User-Agent in kubectl, etc.

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

The User-Agent reported by clients (e.g. kubectl) in request
headers should include the name of the client executable
but not the full path to that executable.

This PR changes how this name is determined by using the
operating-system specific package "path/filepath" (meant for
working with file system paths) instead of the "path" package
(meant for URL paths).

This fixes a problem on the Windows OS in the case where, if the
user has not set their PATH to point to the location of their
client executable, the User-Agent includes the full path - which
is unnecessary.

Fixes: #44419

```release-note
Use OS-specific libs when computing client User-Agent in kubectl, etc.
```
2017-04-14 18:14:16 -07:00
Jeffrey Regan
04f993250b Use OS-specific libs when computing client User-Agent.
**What this PR does / why we need it**:

The User-Agent reported by clients (e.g. kubectl) in request
headers should include the name of the client executable
but not the full path to that executable.

This PR changes how this name is determined by using the
operating-system specific package "path/filepath" (meant for
working with file system paths) instead of the "path" package
(meant for URL paths).

This fixes a problem on the Windows OS in the case where, if the
user has not set their PATH to point to the location of their
client executable, the User-Agent unnecessarily includes the
full path.

Fixes: #44419
2017-04-14 16:06:11 -07:00
Mike Danese
3757e8bb5c bazel: statically link dockerized components
and remove libc from docker images when it's not needed.
2017-04-14 15:51:54 -07:00
Chao Xu
d4850b6c2b move pkg/api/v1/helpers.go to subpackage 2017-04-14 14:25:11 -07:00
Matt Liggett
fe202fcfc4 Use regexp instead of substring to do search and replace.
enisoc pointed out how ToLower can change (lengthen even!) the length of
a string given arbitrary input.
2017-04-14 14:25:02 -07:00
Mike Danese
bd23931aeb ignore BUILD files in staging 2017-04-14 10:41:02 -07:00
Mike Danese
981dd8dc66 add testdata for tests in //vendor/k8s.io/... 2017-04-14 10:41:02 -07:00
Mike Danese
a05c3c0efd autogenerated 2017-04-14 10:40:57 -07:00
Andy Goldstein
e63fcf708d Make controller Run methods consistent
- startup/shutdown logging
- wait for cache sync logging
- defer utilruntime.HandleCrash()
- wait for stop channel before exiting
2017-04-14 07:27:45 -04:00
Kubernetes Submit Queue
079dc0d78e Merge pull request #44421 from mml/windows
Automatic merge from submit-queue (batch tested with PRs 44362, 44421, 44468, 43878, 44480)

Drop leading path of KUBECTL.EXE if it shows up in User-Agent.

Partial fix for #44419 

Release note: kube-apiserver now drops unneeded path information if an older version of Windows kubectl sends it.
2017-04-14 01:46:01 -07:00
Kubernetes Submit Queue
47ccb092f4 Merge pull request #44302 from caesarxuchao/move-resource_helpers.go
Automatic merge from submit-queue (batch tested with PRs 44440, 44038, 44302, 44316, 43876)

Move pkg/api/ref.go and pkg/api/resource_helpers.go to subpackages

First two commits are #44296 #44299. (unfortunately, removing these commits results in conflicts)

This PR moves resource_helpers.go to a subpackage. It's mostly a mechanic move, except that:
* i kept the methods of ResourceName and ResourceList in pkg/api/method.go

I'll send one more PR to separate api.Scheme etc. to their own package.
2017-04-13 23:18:03 -07:00
Kubernetes Submit Queue
4a68dda84c Merge pull request #44038 from soltysh/batch_docs
Automatic merge from submit-queue (batch tested with PRs 44440, 44038, 44302, 44316, 43876)

Update batch types.go docs

@bgrant0607 you asked about it in https://github.com/kubernetes/kubernetes/pull/42663#discussion_r109065758
2017-04-13 23:18:01 -07:00
Kubernetes Submit Queue
5ad494077e Merge pull request #42914 from liggitt/fix-defaulting
Automatic merge from submit-queue (batch tested with PRs 44424, 44026, 43939, 44386, 42914)

remove defaulting from conversion path

follow up for #42764

* remove call to defaulting from conversion path (defaulting is a separate step from conversion)
* remove non-top-level-object defaulting registration (unused after conversion call is removed)
* generate missing top-level defaults for some api groups:
  * autoscaling/v2alpha1
  * policy/v1alpha1
  * policy/v1beta1
* register top-level defaults for some api groups that were missing them:
  * autoscaling/v2alpha1
  * settings/v1alpha1
2017-04-13 22:07:10 -07:00
Kubernetes Submit Queue
f83badf057 Merge pull request #44386 from gyliu513/comment
Automatic merge from submit-queue (batch tested with PRs 44424, 44026, 43939, 44386, 42914)

`failure-domain` is no longer used in command line arg.

**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-04-13 22:07:09 -07:00
Kubernetes Submit Queue
ab22baf94d Merge pull request #44299 from caesarxuchao/move-ref.go
Automatic merge from submit-queue (batch tested with PRs 44406, 41543, 44071, 44374, 44299)

Move pkg/api/ref.go to a subpackage

First commit is #44296. (unfortunately, removing that commit results in conflicts)

This PR moves the pkg/api/ref.go to its own subpackage. It's mostly a mechanic move.

I'll send a few more PRs to make the k8s.io/kubernetes/pkg/api package only contains the code we want in the k8s.io/api repo, then we can run a [script](a0015fd1be (diff-7a2fbb4371972350ee414c6b88aee1c8)) to cut the new repo.
2017-04-13 19:52:11 -07:00
Kubernetes Submit Queue
4653a9b280 Merge pull request #41543 from dshulyak/decouple_remotecommand
Automatic merge from submit-queue (batch tested with PRs 44406, 41543, 44071, 44374, 44299)

Decouple remotecommand

Refactored unversioned/remotecommand to decouple it from undesirable dependencies:

- term package now is not required, and functionality required to resize terminal size can be plugged in directly in kubectl
- in order to remove dependency on kubelet package - constants from kubelet/server/remotecommand were moved to separate util package (pkg/util/remotecommand)
- remotecommand_test.go moved to pkg/client/tests module
2017-04-13 19:52:05 -07:00
Kubernetes Submit Queue
b7ed2d1149 Merge pull request #43199 from jorenhehe/labels-typos
Automatic merge from submit-queue

fix typos

**Release note**:

```release-note
NONE
```
2017-04-13 18:13:39 -07:00
Kubernetes Submit Queue
1dcb288108 Merge pull request #41779 from StudyNick/zte-20170221
Automatic merge from submit-queue (batch tested with PRs 44447, 44456, 43277, 41779, 43942)

'workqueue' modify 'work queue'
2017-04-13 15:02:00 -07:00
Jordan Liggitt
86623ed241
Include system:authenticated group when impersonating 2017-04-13 17:08:30 -04:00
Chao Xu
9837a98564 move resource_helpers.go to a subpackage 2017-04-13 12:03:42 -07:00
Chao Xu
d9920c53a5 move ref.go to its own subpackage 2017-04-13 10:02:43 -07:00
Dmitry Shulyak
f50480c714 Decouple remotecommand client from term/kubelet dependencies
In order to move client/unversioned/remotecommand to client-go as a followup
for this change we have to decouple it from tons of dependencies
2017-04-13 15:56:40 +03:00
Maciej Szulik
a307c47dfd Staging changes for docs in batch types.go 2017-04-13 14:15:21 +02:00
Kubernetes Submit Queue
a9019fe14a Merge pull request #44399 from deads2k/server-19-deregister
Automatic merge from submit-queue

add deregistration for paths

Aggregation and TPRs require the ability to de-register endpoints.  This adds the capability and makes it threadsafe.
2017-04-13 05:12:35 -07:00
Kubernetes Submit Queue
868eb745ab Merge pull request #42663 from soltysh/37166_followup
Automatic merge from submit-queue

Add default information to CronJobSpec

This is requested followup to https://github.com/kubernetes/kubernetes/pull/41890

@smarterclayton @janetkuo ptal
2017-04-13 03:23:26 -07:00
Matt Liggett
4cff7c3d30 Drop leading path of KUBECTL.EXE if it shows up in User-Agent. 2017-04-12 17:16:32 -07:00
deads2k
cd950364e5 add deregistration for paths 2017-04-12 16:21:08 -04:00
Jordan Liggitt
ad116026d9
Remove vestiges of defaulting from conversion path, switch to top-level default registration only 2017-04-12 13:36:15 -04:00
Kubernetes Submit Queue
5ba21e83b9 Merge pull request #43085 from sttts/sttts-duplicated-meta-conversions
Automatic merge from submit-queue

apimachinery/pkg/apis/meta: remove duplicated conversions
2017-04-12 07:01:09 -07:00
deads2k
f53c9a7e59 build external watch event so simple encoders can encode 2017-04-12 07:51:04 -04:00
Kubernetes Submit Queue
949440b43a Merge pull request #43698 from sttts/sttts-non-global-admission-plugin-registry
Automatic merge from submit-queue

Non global admission plugin registry

For testing the global state is a problem. This PR turns the actual registry into a struct that must be instantiated. For the beginning, we do this in `pkg/kubeapiserver/admission`. In some follow-up (where we hunt down all globals some day), we will move this into the genericapiserver.
2017-04-12 04:12:11 -07:00
Guangya Liu
5026b9efba failure-domain is no longer used in command line arg. 2017-04-12 18:15:42 +08:00
Kubernetes Submit Queue
9db7953c24 Merge pull request #44138 from sttts/sttts-cleanup-godeps-json-updater
Automatic merge from submit-queue

Clean up staging/godeps-json-updater.go
2017-04-12 03:02:42 -07:00
Kubernetes Submit Queue
d70b55ead5 Merge pull request #42466 from sttts/sttts-client-go-plugin-import-verify
Automatic merge from submit-queue

hack/verify-staging-imports.sh: check that plugins are not imported b…
2017-04-12 03:02:35 -07:00
Kubernetes Submit Queue
1ba9202cd8 Merge pull request #42781 from spzala/conversionlint
Automatic merge from submit-queue

Conversionlint

**What this PR does / why we need it**:
This PR adds a comment placeholder for the exported or public functions in conversion generator files. Such functions without a comment results into golint failure in various generated files. The changes in this patch takes care of about 36 related lint failures. 
Given below is an example lint error, 
zz_generated.conversion.go:91:1: exported function Convert_v1alpha1_Binding_To_servicecatalog_Binding should have comment or be unexported

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
Considering minor changes no issue is created. 

**Special notes for your reviewer**:
Hello, I am trying to fix golint failures as we see them in the kubernetes-incubator/service-catalog project. I have separate PRs opened for lint issues related to other generator code which are in separate libraries like gengo. Thanks! 

**Release note**:

```release-note
```
2017-04-12 03:02:26 -07:00
Dr. Stefan Schimanski
63f547e1b1 pkg/admission: make plugin registry non-global 2017-04-12 11:37:25 +02:00
Kubernetes Submit Queue
bd3146a2a4 Merge pull request #44357 from deads2k/agg-29-up
Automatic merge from submit-queue

delete rolebinding from correct namespace

Fixes #44212

The rolebinding needs to be deleted from the namespace we create it in.

@mdshuai
2017-04-12 01:31:36 -07:00
Kubernetes Submit Queue
abd92fab1e Merge pull request #44296 from caesarxuchao/move-api-helpers.go
Automatic merge from submit-queue

Move api helpers.go to a subpackage

Part of https://github.com/kubernetes/kubernetes/issues/44065.

This PR moves the pkg/api/helpers.go to its own subpackage. It's mostly a mechanic move, except that
* I removed ConversionError in helpers.go, it's not used by anyone
* I moved the 3 methods of Taint and Toleration to pkg/api/methods.go, and left a TODO saying refactoring these methods to functions.

I'll send a few more PRs to make the k8s.io/kubernetes/pkg/api package only contains the code we want in the k8s.io/api repo, then we can run a [script](a0015fd1be (diff-7a2fbb4371972350ee414c6b88aee1c8)) to cut the new repo.
2017-04-11 23:46:04 -07:00
Kubernetes Submit Queue
23b666894d Merge pull request #44368 from mbohlool/bugfix
Automatic merge from submit-queue

Bugfix: OpenAPI generator should pass generate type extensions

OpenAPI spec generator does not pass generated type extensions (using `x-kubernetes-` tags on types). This is already working for field extensions but not for types.
2017-04-11 21:23:26 -07:00
Kubernetes Submit Queue
e60cc6ee3d Merge pull request #44090 from NickrenREN/remove-alpha-pv
Automatic merge from submit-queue

Remove alphaProvisioner in PVController and AlphaStorageClassAnnotation

remove alpha annotation and alphaProvisioner 

**Release note**:

```release-note
NONE
```
2017-04-11 20:41:40 -07:00
Klaus Ma
7b7a759915 Set defaults for initContainer beta. 2017-04-12 10:06:38 +08:00
xu fei
461761e5b0 change event count type
event count type had better to be uint.
2017-04-12 09:53:39 +08:00
Chao Xu
08aa712a6c move helpers.go to helper 2017-04-11 15:49:11 -07:00
mbohlool
ab5bcf6d2d Bugfix: OpenAPI generator should pass generate type extensions 2017-04-11 15:32:19 -07:00
Kubernetes Submit Queue
c17f0f60f9 Merge pull request #41427 from timothysc/etcd_3_1_godep
Automatic merge from submit-queue (batch tested with PRs 43304, 41427, 43490, 44352)

Update etcd-client godep to 3.1.5

This transitively level sets the godeps to yank in the 3.1.5 client.  

Currently WIP, b/c it required some regen and I had some weird local permissions issue. 

xref: #41143

/cc @xiang90 @mml
2017-04-11 13:46:15 -07:00
Sahdev P. Zala
08639023d0 Conversion generated code changes for golint fix
The exported or public functions requires a doc comment to pass golint.
This commit has changes of conversion generated code. The actual doc
changes are added into a separate commit for a clean review.
2017-04-11 15:34:51 -04:00
deads2k
f80adb10dc delete rolebinding from correct namespace 2017-04-11 15:30:30 -04:00
Kubernetes Submit Queue
f1b9c17cef Merge pull request #44221 from ncdc/fix-validateClusterInfo-empty-cluster-check
Automatic merge from submit-queue (batch tested with PRs 43545, 44293, 44221, 43888)

validateClusterInfo: use clientcmdapi.NewCluster()

Change validateClusterInfo to use clientcmdapi.NewCluster() instead of
clientcmdapi.Cluster{} when comparing against the passed in clusterInfo.
clusterInfo most likely will be a combination of
clientcmdapi.NewCluster() merged with potential overrides. This is
necessary because otherwise, the DeepEqual between what is supposed to
be an empty Cluster and clusterInfo will fail, resulting in an error
that doesn't allow fall-through to checking for in-cluster
configuration.

https://github.com/kubernetes/kubernetes/pull/40508 changed `DirectClientConfig.getContext()` to start with a `clientcmdapi.NewCluster()` instead of the zero value for `clientcmdapi.Cluster`. This means that the `Extensions` map in the `Cluster` is initialized instead of `nil`, which breaks the `DeepEqual` test unless you compare `clusterInfo` against an initialized `clientcmdapi.NewCluster()`.

cc @smarterclayton @sttts @vjsamuel @liggitt @deads2k @soltysh @fabianofranz @kubernetes/sig-api-machinery-pr-reviews
2017-04-11 12:18:22 -07:00
Kubernetes Submit Queue
867159416f Merge pull request #44293 from deads2k/api-08-unstructureditems
Automatic merge from submit-queue (batch tested with PRs 43545, 44293, 44221, 43888)

make unstructured items correspond to other items for storage

"normal" `Items` elements include the struct itself, not a pointer to the struct.  Some of the deeper bits of storage rely on this behavior in reflective paths.

This updates the `UnstructuredList` to be "normal".

@kubernetes/sig-api-machinery-pr-reviews
2017-04-11 12:18:20 -07:00
Kubernetes Submit Queue
60310ce0f7 Merge pull request #42860 from jcbsmpsn/change-pem-type-to-constant
Automatic merge from submit-queue

Change the PEM block type to use the constant
2017-04-11 11:24:27 -07:00
Kubernetes Submit Queue
673ca98fd5 Merge pull request #44294 from deads2k/server-16-gorestful
Automatic merge from submit-queue

remove dependency on gorestful for rest handling

There's no reason for us to rely upon go-restful for our REST handling.  This separates the layers so that gorestful route functions are built on top of native `http.HandlerFuncs`.

@DirectXMan12 I think this is the sort of handling you wanted to be able to add and remove at will, right?  I have other commits that demonstrate how to wire these into "normal" `http.Handlers` if its useful to you.

@kubernetes/sig-api-machinery-pr-reviews @smarterclayton @sttts @lavalamp
2017-04-11 09:50:27 -07:00
Kubernetes Submit Queue
6d8aa2b15f Merge pull request #44021 from CaoShuFeng/kube-aggregator/apis
Automatic merge from submit-queue

add "/apis/" to kube-aggregator apisHandler

This makes the following two urls have the same result.
https://ip:443/apis
https://ip:443/apis/
**Release note**:

```NONE
```
2017-04-11 09:02:22 -07:00
Timothy St. Clair
fc04bba10e Update staging files 2017-04-11 10:18:46 -05:00
deads2k
c5e2f7c229 remove dependency on gorestful for rest handling 2017-04-11 09:57:19 -04:00
Timothy St. Clair
818dd4443d Update generated due to proto-shift 2017-04-11 08:48:59 -05:00
Timothy St. Clair
93c051e28f Level sets dependency graph to consume etcd 3.1.5 2017-04-11 08:34:40 -05:00
deads2k
706823aaa8 make unstructured items correspond to other items for storage 2017-04-11 08:44:16 -04:00
Kubernetes Submit Queue
859b97b551 Merge pull request #44170 from danwinship/networkpolicy-docs
Automatic merge from submit-queue (batch tested with PRs 43887, 41914, 44170)

Make NetworkPolicy docs reflect reality

spinoff of #39164; this just updates the docs to reflect the way the v1beta1 API has actually been implemented

**Release note**:
```release-note
NONE
```
2017-04-10 19:46:16 -07:00
Kubernetes Submit Queue
d4eaf0b680 Merge pull request #44281 from deads2k/server-15-objectmetafor
Automatic merge from submit-queue (batch tested with PRs 43273, 44287, 44281)

Remove ObjectMetaFor

Builds on https://github.com/kubernetes/kubernetes/pull/43767

The second commit removes `ObjectMetaFor`.  This was debt we left around after we created the interfaces.  Fixing this makes it possible to start running `Unstructured` through generic storage.

@kubernetes/sig-api-machinery-pr-reviews @smarterclayton @lavalamp
2017-04-10 16:19:14 -07:00
Kubernetes Submit Queue
b9a5a5c9b3 Merge pull request #42748 from dcbw/cfssl-localup
Automatic merge from submit-queue (batch tested with PRs 43866, 42748)

hack/cluster: download cfssl if not present

hack/local-up-cluster.sh uses cfssl to generate certificates and
will exit it cfssl is not already installed.  But other cluster-up
mechanisms (GCE) that generate certs just download cfssl if not
present.  Make local-up-cluster.sh do that too so users don't have
to bother installing it from somewhere.
2017-04-10 14:27:11 -07:00
deads2k
04460c8750 remove objectmetafor 2017-04-10 15:13:35 -04:00
Kubernetes Submit Queue
f5052024ba Merge pull request #43767 from deads2k/server-13-namer
Automatic merge from submit-queue

remove go-restful from namer for rest handling

Our RESTHandler code is currently tightly coupled to go-restful, but there's no reason for this coupling.  It makes integrations that want API handling (decode, sanity check, admission, verb handling), but don't need the REST installer flow impractical.  I know of two layers now: metrics and TPR.

This starts the process of unwinding by switching the `ScopeNamer` (used for request identification and selflinks) to use the standard http library along with the `RequestInfo` we place in the context for authorization and any other interested layer.

@kubernetes/sig-api-machinery-misc @smarterclayton @ncdc @sttts
2017-04-10 12:06:08 -07:00
Kubernetes Submit Queue
4ee4df9602 Merge pull request #41758 from abdasgupta/go18-resolve
Automatic merge from submit-queue (batch tested with PRs 41758, 44137)

Updated key.pm and cert.pm to remove error in setting up localhostCert pool.

Signed-off-by: Abhishek Dasgupta <a10gupta@linux.vnet.ibm.com>

Errors like following are coming while running `make test` with Go1.8:
```
=== RUN   TestProxyUpgrade
2017/02/16 06:36:19 http: TLS handshake error from 127.0.0.1:36740: tls: no cipher suite supported by both client and server
2017/02/16 06:36:19 http: panic serving 127.0.0.1:46266: runtime error: invalid memory address or nil pointer dereference
goroutine 31 [running]:
net/http.(*conn).serve.func1(0xc420213ea0)
	/usr/local/go/src/net/http/server.go:1721 +0xb0
panic(0x703e00, 0xc05b00)
	/usr/local/go/src/runtime/panic.go:489 +0x284
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/rest.(*UpgradeAwareProxyHandler).tryUpgrade(0xc42034b0e0, 0xbbba60, 0xc4203f81c0, 0xc42043b300, 0xc4200a1b00)
	/root/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/rest/proxy.go:155 +0x4d8
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/rest.(*UpgradeAwareProxyHandler).ServeHTTP(0xc42034b0e0, 0xbbba60, 0xc4203f81c0, 0xc42043b300)
	/root/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/rest/proxy.go:86 +0x7c
net/http.serverHandler.ServeHTTP(0xc4203ac370, 0xbbba60, 0xc4203f81c0, 0xc42043b300)
	/usr/local/go/src/net/http/server.go:2568 +0x90
net/http.(*conn).serve(0xc420213ea0, 0xbbc9a0, 0xc4202e9ec0)
	/usr/local/go/src/net/http/server.go:1825 +0x514
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2668 +0x254
--- FAIL: TestProxyUpgrade (0.01s)
	proxy_test.go:347: error setting up localhostCert pool
	proxy_test.go:377: https (valid hostname): proxy_test: x509: RSA key missing NULL parameters
	proxy_test.go:441: https (valid hostname + RootCAs): websocket dial err: websocket.Dial ws://127.0.0.1:45249/some/path: unexpected EOF
```

This PR is resolving similar errors through updating Certificate and Key variables.
2017-04-10 10:06:13 -07:00
Kubernetes Submit Queue
a9b0aaa66e Merge pull request #43377 from deads2k/server-09-logging
Automatic merge from submit-queue

only log stacks on server errors

Stack traces on http logging statements can be useful, but you  usually only need them for server errors not for things like redirects or even client errors since the server won't be fixing those.

This tightens the "log stack" behavior to only happen for server errors.  Messages will still be logged, but the automatic stacks will only come out for server errors.

@enj @mfojtik @smarterclayton
@kubernetes/sig-api-machinery-misc
2017-04-10 07:53:09 -07:00
deads2k
da27957390 remove go-restful from namer for rest handling 2017-04-10 09:21:23 -04:00
Dan Winship
11471e965d Regenerate files 2017-04-10 09:00:48 -04:00
Kubernetes Submit Queue
a177c8e8b1 Merge pull request #43943 from knightXun/patch-2
Automatic merge from submit-queue

Update meta.go

i think that's better,just a advise.less code sounds good.
2017-04-10 05:58:11 -07:00
Maciej Szulik
ce013adfbb Staging client changes for defaults updates 2017-04-10 14:02:16 +02:00
deads2k
b73cddb227 only log stacks on server errors 2017-04-10 07:57:43 -04:00
Abhishek Dasgupta
0d42da1b93 Updated key.pm and cert.pm to remove error in setting up localhostCert pool.
Signed-off-by: Abhishek Dasgupta <a10gupta@linux.vnet.ibm.com>
2017-04-10 17:10:55 +05:30
NickrenREN
fa7bd44966 Remove alphaProvisioner in PVController and AlphaStorageClassAnnotation 2017-04-10 17:09:40 +08:00
Cao Shufeng
f85899a975 Use const value for legacyAPIServiceName 2017-04-10 04:47:33 -04:00
Kubernetes Submit Queue
6d7e6c74c9 Merge pull request #43375 from CaoShuFeng/forbiddenMessage
Automatic merge from submit-queue

Fix empty RBAC Forbidden message

Fix empty RBAC Forbidden message when accessing cluster scope resources.
**Release note**:

```NONE
```
2017-04-08 09:02:19 -07:00
Jesse Haka
3066783403 update staging godeps 2017-04-08 14:11:32 +03:00
Kubernetes Submit Queue
d043e20feb Merge pull request #44121 from mbohlool/patch
Automatic merge from submit-queue (batch tested with PRs 43777, 44121)

Add patchMergeKey and patchStrategy  support to OpenAPI

Support generating Open API extensions for strategic merge patch tags in go struct tags
Support `patchStrategy` and `patchMergeKey`.
Also support checking if the Open API extension and struct tags match.

```release-note
Support generating Open API extensions for strategic merge patch tags in go struct tags
```

cc: @pwittrock @ymqytw 

(Description mostly copied from #43833)
2017-04-07 20:01:10 -07:00
Kubernetes Submit Queue
d8fbff35cd Merge pull request #44223 from caesarxuchao/gather-constants
Automatic merge from submit-queue

move constants to their own file

A step towards #44065

These constants are part of the API and will be moved to k8s.io/api. The helper functions are not and will remain in the main repo. This PR separates them to different files. Next step is put all the helper functions into sub-packages, so that the package `k8s.io/kubernetes/pkg/api` only contains code we want to move to k8s.io/api.

I added the retest-not-required label because this just moves code to another file in the same package.
2017-04-07 18:28:20 -07:00
Kubernetes Submit Queue
c8f90171e4 Merge pull request #39678 from resouer/extract-resource
Automatic merge from submit-queue (batch tested with PRs 41775, 39678, 42629, 42524, 43028)

Extract resources functions belongs to api/util

Address: extract kubelet resources functions belongs to `pkg/api/v1/resource_helpers.go`
2017-04-07 17:44:14 -07:00
Kubernetes Submit Queue
7d4fe5f3cd Merge pull request #41775 from CaoShuFeng/username_password_401_403
Automatic merge from submit-queue

Ensure invalid username/password returns 401 error, not 403

If a user attempts to use basic auth, and the username/password combination
is rejected, the authenticator should return an error. This distinguishes
requests that did not provide username/passwrod (and are unauthenticated
without error) from ones that attempted to, and failed.

Related to:
https://github.com/kubernetes/kubernetes/pull/39408
2017-04-07 17:35:42 -07:00
Chao Xu
2e44bb1c3b separate constants to their own file 2017-04-07 17:31:45 -07:00
ymqytw
5f60dcd90b autogen 2017-04-07 15:44:33 -07:00
ymqytw
1804e5e548 add patch comment tags in open api 2017-04-07 15:44:32 -07:00
Kubernetes Submit Queue
98a4c6ba7f Merge pull request #43396 from rootfs/iscsi-chap
Automatic merge from submit-queue (batch tested with PRs 44119, 42538, 43802, 42336, 43396)

iSCSI CHAP support

**What this PR does / why we need it**:
To support CHAP authentication in a multi-tenant setup
**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
Support iSCSI CHAP authentication
```
2017-04-07 14:09:42 -07:00
Kubernetes Submit Queue
51301d83d1 Merge pull request #43802 from deads2k/api-07-listfor
Automatic merge from submit-queue (batch tested with PRs 44119, 42538, 43802, 42336, 43396)

remove ListMetaFor

Finish replacing `ListMetaFor` with `ListAccessor`.  This gives more flexibility for list handling as intended.  `UnstructuredList` matches now.

@kubernetes/sig-api-machinery-pr-reviews
2017-04-07 14:09:38 -07:00
Andy Goldstein
266ba9ffde validateClusterInfo: use clientcmdapi.NewCluster()
Change validateClusterInfo to use clientcmdapi.NewCluster() instead of
clientcmdapi.Cluster{} when comparing against the passed in clusterInfo.
clusterInfo most likely will be a combination of
clientcmdapi.NewCluster() merged with potential overrides. This is
necessary because otherwise, the DeepEqual between what is supposed to
be an empty Cluster and clusterInfo will fail, resulting in an error
that doesn't allow fall-through to checking for in-cluster
configuration.
2017-04-07 16:50:03 -04:00
Jacob Simpson
515987db3f Change the PEM block type to use the constant 2017-04-07 10:24:53 -07:00
Kubernetes Submit Queue
9095c78f14 Merge pull request #43373 from supereagle/fix-typos
Automatic merge from submit-queue (batch tested with PRs 43373, 41780, 44141, 43914, 44180)

fix some typos in apiserver

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

**Which issue this PR fixes**: 

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-04-07 09:57:35 -07:00
xiangpengzhao
420caf200c
Delete "hard-coded" default value in flags usage. 2017-04-07 11:21:37 +08:00
supereagle
e35b7d1082 fix some typos in apiserver 2017-04-07 09:49:55 +08:00
Jordan Liggitt
c415e4aeab
Fix original object mutation on patch retry 2017-04-06 12:30:43 -04:00
Dr. Stefan Schimanski
6e026b4d43 Clean up staging/godeps-json-updater.go 2017-04-06 09:32:57 +02:00
Cao Shufeng
30844541d5 Fix empty RBAC Forbidden message 2017-04-06 01:00:40 -04:00
Kubernetes Submit Queue
e3e44b77ff Merge pull request #42964 from k82cn/update_defalt_toleration_sec
Automatic merge from submit-queue (batch tested with PRs 44084, 42964)

Updated AddOrUpdateTolerationInPod to return bool only.

Updated AddOrUpdateTolerationInPod to return bool only, as there's no case to generate error (the error was used for annotation, it'll not return error after moving to field); and also update admission & daemonset accordingly.
2017-04-05 20:45:20 -07:00
Kubernetes Submit Queue
f797abc28d Merge pull request #43880 from ymqytw/refactor_SMP
Automatic merge from submit-queue (batch tested with PRs 44097, 42772, 43880, 44031, 44066)

Refactor Strategic Merge Patch

Refactor Strategic Merge Patch

```release-note
None
```
2017-04-05 16:41:22 -07:00
Kubernetes Submit Queue
e900f7baec Merge pull request #41974 from fate-grand-order/patch-2
Automatic merge from submit-queue

fix misspell "underlying" in request.go
2017-04-05 15:38:49 -07:00
Mikkel Oscar Lyderik Larsen
b5ce698a68 Update elazarl/goproxy 2017-04-05 23:33:21 +02:00
ymqytw
325f506c5c refactor Strategic Merge Patch 2017-04-05 10:27:11 -07:00
Huamin Chen
777eb32e91 generated files
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-04-05 12:46:42 +00:00
Slava Semushin
95049b6440 Minor cleanups.
- ValidateNoNewFinalizers: remove unused const
- Mention that mutation of spec.initContainers[*].image field is allowed
- Improve godoc comments
- validation_test.go(expectPrefix): remove unused function
2017-04-05 09:49:35 +02:00
Kubernetes Submit Queue
d6cde8c4ce Merge pull request #42288 from chupman/comment-fix
Automatic merge from submit-queue (batch tested with PRs 42288, 44055)

Fixed inaccurate comments for Secret and ConfigMap

**What this PR does / why we need it**:
Updates the comments for ConfigMap and Secret in types.go to correspond to the regex used in validation.go
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
Fixes #42203
**Special notes for your reviewer**:

**Release note**:

```release-note 
None
```
2017-04-04 17:39:18 -07:00
Chris Hupman
dc4b8e3496 Fixed inaccurate comments for Secret and ConfigMap
Fixes #42203

ran documentation update scripts in hack folder

Signed-off-by: Chris Hupman <chupman@us.ibm.com>
2017-04-04 19:42:08 +00:00
Davanum Srinivas
29e4031f61 Update boltdb dependency to fix golang 1.7 intermittent failures
We have a old boltdb/bolt, etcd has moved to newer boltdb, so we should
do the same. Specifically this change needs to be in our tree:
92410e0673

as this fixes intermittent issues we see in our CI runs. So in this
PR, we vendor the v1.3.0 version of boltdb/bolt.

Fixes #43973
2017-04-04 10:48:19 -04:00
Cao Shufeng
ab70e5f58c add "/apis/" to kube-aggregator apisHandler
This makes the following two urls have the same result.
https://<ip>:443/apis
https://<ip>:443/apis/
2017-04-04 02:37:44 -04:00
Dan Williams
f20437a822 hack/cluster: download cfssl if not present
hack/local-up-cluster.sh uses cfssl to generate certificates and
will exit it cfssl is not already installed.  But other cluster-up
mechanisms (GCE) that generate certs just download cfssl if not
present.  Make local-up-cluster.sh do that too.
2017-04-03 23:31:16 -05:00
Kubernetes Submit Queue
e28cb42706 Merge pull request #42717 from andrewsykim/support-host-ip-downward-api
Automatic merge from submit-queue

Support status.hostIP in downward API

**What this PR does / why we need it**:
Exposes pod's hostIP (node IP) via downward API. 

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: 
fixes https://github.com/kubernetes/kubernetes/issues/24657

**Special notes for your reviewer**:
Not sure if there's more documentation that's needed, please point me in the right direction and I will add some :)
2017-04-03 15:48:12 -07:00
Harry Zhang
74a99e1e1d Update generate staging client-go 2017-04-03 06:57:57 +00:00
Kubernetes Submit Queue
81545c2922 Merge pull request #42016 from MHBauer/fix-copypasta
Automatic merge from submit-queue

Update godoc to match

**What this PR does / why we need it**:
comments don't match the code. I can also just remove them.

**Which issue this PR fixes**
golint if it was run, but it is nice to have comments that appear to be relevant to the code.


**Special notes for your reviewer**:
docs only

**Release note**:

```release-note
NONE
```
2017-04-02 18:08:33 -07:00
knightXun
ff68ba789e Update meta.go
i think that's better,just a advise
2017-04-01 17:25:48 +08:00
Kubernetes Submit Queue
10e9ef7189 Merge pull request #43817 from spxtr/owners
Automatic merge from submit-queue

Update my OWNERS entries.

Not sure why I was set as a reviewer for apimachinery and apiserver stuff. Adding myself to build/.
**Release note**:
```release-note
NONE
```
2017-03-31 11:29:29 -07:00
Kubernetes Submit Queue
91c03b0e8f Merge pull request #43813 from liggitt/conditional-post-start-hook
Automatic merge from submit-queue

Make RBAC post-start hook conditional on RBAC authorizer being used

Makes the RBAC post-start hook (and reconciliation) conditional on the RBAC authorizer being used

Ensures we don't set up unnecessary objects.

```release-note
RBAC role and rolebinding auto-reconciliation is now performed only when the RBAC authorization mode is enabled.
```
2017-03-31 05:51:49 -07:00
Kubernetes Submit Queue
cf7a4f8f51 Merge pull request #43853 from YuPengZTE/devCertfile
Automatic merge from submit-queue (batch tested with PRs 42360, 43109, 43737, 43853)

Fix typo

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>



**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-03-31 00:34:29 -07:00
Kubernetes Submit Queue
dbca1f75f7 Merge pull request #43737 from CaoShuFeng/store_test
Automatic merge from submit-queue (batch tested with PRs 42360, 43109, 43737, 43853)

delete etcd socket file for unit tests

This change clean up the environment for etcd3 unit test.
Without this change, "make test" will leave some socket files in
workspace. And these socket files make hack/verify-generated-protobuf.sh
fails.

**Release note**:

```NONE
```
2017-03-31 00:34:26 -07:00
Jordan Liggitt
2c89ff59e2
Allow disabling specific post-start hooks 2017-03-30 21:40:07 -04:00
yupengzte
bb656f97f1 Fix typo
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-30 19:09:26 +08:00
Kubernetes Submit Queue
bf4b04b192 Merge pull request #42337 from liggitt/tls-config
Automatic merge from submit-queue (batch tested with PRs 38741, 41301, 43645, 43779, 42337)

Plumb cipher/tls version serving options

Needed to allow servers to harden or relax default tls versions and ciphers
2017-03-29 14:53:38 -07:00
Joe Finney
896db18f28 Update my OWNERS entries. 2017-03-29 10:13:21 -07:00
deads2k
7df37c484d remove ListMetaFor 2017-03-29 08:09:49 -04:00
andrewsykim
f05d584a4a Regenerate code for api change 2017-03-28 20:20:20 -04:00
Christoph Blecker
6681835b0c
Fix gofmt errors 2017-03-28 17:12:04 -07:00
Kubernetes Submit Queue
9efb1f34e8 Merge pull request #43623 from liggitt/discovery-order
Automatic merge from submit-queue (batch tested with PRs 40885, 43623, 43735)

Update godoc for discovery registration

Follow up from https://github.com/kubernetes/kubernetes/pull/43553/files?diff=split#r107723539
2017-03-28 11:16:22 -07:00
Jordan Liggitt
e156aca4f2
Plumb cipher/tls version serving options 2017-03-28 10:35:43 -04:00
Jordan Liggitt
85b23bb98a
Update godoc for discovery registration 2017-03-28 10:23:35 -04:00
Cao Shufeng
4e9dcf3da5 delete etcd socket file for unit tests
This change clean up the environment for etcd3 unit test.
Without this change, "make test" will leave some socket files in
workspace. And these socket files make hack/verify-generated-protobuf.sh
fails.
2017-03-28 05:36:33 -04:00
p0lyn0mial
86e06e2401 Admission plugin initializer for the generic API server.
This PR implements a standard admission plugin initializer for the generic API server.
The initializer accepts external clientset, external informers and the authorizer.
2017-03-28 08:13:09 +02:00
Kubernetes Submit Queue
4159cb57b6 Merge pull request #42835 from deads2k/server-01-remove-insecure
Automatic merge from submit-queue (batch tested with PRs 42835, 42974)

remove legacy insecure port options from genericapiserver

The insecure port has been a source of problems and it will prevent proper aggregation into a cluster, so the genericapiserver has no need for it.  In addition, there's no reason for it to be in the main kube-apiserver flow either.  This pull removes it from genericapiserver and removes it from the shared kube-apiserver code.  It's still wired up in the command, but its no longer possible for someone to mess up and start using in mainline code.

@kubernetes/sig-api-machinery-misc @ncdc
2017-03-27 17:00:21 -07:00
Kubernetes Submit Queue
f14618a56b Merge pull request #43622 from deads2k/cli-10-category
Automatic merge from submit-queue (batch tested with PRs 42087, 43383, 43622)

move category expansion out of restmapper

RESTMapping isn't related to CategoryExpansion (the bit that expands "all" into items to be RESTMapped).  This provides that separation and simplifies the RESTMapper interface.

@kubernetes/sig-cli-pr-reviews
2017-03-27 16:08:20 -07:00
Kubernetes Submit Queue
dfbbb115dd Merge pull request #43383 from deads2k/server-10-safe-proxy
Automatic merge from submit-queue

proxy to IP instead of name, but still use host verification

I think I found a setting that lets us proxy to an IP and still do hostname verification on the certificate.  

@liggitt @sttts  Can you see if you agree that this knob does what I think it does?  Last commit only, still needs tests.
2017-03-27 16:01:06 -07:00
Kubernetes Submit Queue
242882daf6 Merge pull request #43562 from sttts/sttts-MaxRetryWhenPatchConflicts
Automatic merge from submit-queue (batch tested with PRs 43681, 40423, 43562, 43008, 43381)

k8s.io/apiserver: make maxRetryWhenPatchConflicts public

This variable used to be public (before https://github.com/kubernetes/kubernetes/pull/37468). It is pretty use-full to write reliable integration tests that involve resource patching, and it is used in downstream project for that purpose.
2017-03-27 12:49:24 -07:00
deads2k
cd29754680 move legacy insecure options out of the main flow 2017-03-27 14:07:54 -04:00
deads2k
c2f8ef1b1a move insecure options to kubeapiserver 2017-03-27 13:55:45 -04:00
deads2k
8895f314b4 move category expansion out of restmapper 2017-03-27 13:54:05 -04:00
deads2k
3414231672 proxy to IP instead of name, but still use host verification 2017-03-27 12:33:03 -04:00
Kubernetes Submit Queue
b705835bae Merge pull request #42911 from deads2k/server-04-combined
Automatic merge from submit-queue (batch tested with PRs 43694, 41262, 42911)

combine kube-apiserver and kube-aggregator

This combines several pulls currently in progress and wires them together.  The aggregator sits in front of the normal kube-apiserver and allows local fallthrough instead of proxying.

@kubernetes/sig-api-machinery-misc 
@DirectXMan12 since you seem invested, your life will get easier
@luxas FYI since you've started trying to wire something together.  



Dependent Pulls LGTM:
- [x] https://github.com/kubernetes/kubernetes/pull/42801
- [x] https://github.com/kubernetes/kubernetes/pull/42886
- [x] https://github.com/kubernetes/kubernetes/pull/42900
- [x] https://github.com/kubernetes/kubernetes/pull/42732
- [x] https://github.com/kubernetes/kubernetes/pull/42672
- [x] https://github.com/kubernetes/kubernetes/pull/43141
- [x] https://github.com/kubernetes/kubernetes/pull/43076
- [x] https://github.com/kubernetes/kubernetes/pull/43149
- [x] https://github.com/kubernetes/kubernetes/pull/43226
- [x] https://github.com/kubernetes/kubernetes/pull/43144
2017-03-27 09:30:24 -07:00
Kubernetes Submit Queue
f60ac80ee4 Merge pull request #41262 from ncdc/bump-go-systemd
Automatic merge from submit-queue (batch tested with PRs 43694, 41262, 42911)

Bump go-systemd to v14

**What this PR does / why we need it**: bump go-systemd to the latest release, which includes a build tag fix so non-cgo systems can compile.

**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**: go-systemd added an option to unset the `NOTIFY_SOCKET` environment variable as part of the execution of `SdNotify`. I have set that to true, which means that child processes (if any) won't have that set. If anyone thinks it should remain set, I'm happy to change it to false - just let me know.

**Release note**:

```release-note
```

cc @smarterclayton @sdodson @deads2k @sttts @lavalamp @caesarxuchao
2017-03-27 09:30:22 -07:00
Kubernetes Submit Queue
870aee4087 Merge pull request #43308 from deads2k/generation-broke
Automatic merge from submit-queue (batch tested with PRs 42900, 43044, 42896, 43308, 43621)

enable generation

Looks like the deep equals and conversion generation were turned off for sample-apiserver and kube-aggregator.  This turns them back on.

@kubernetes/sig-api-machinery-misc
2017-03-27 08:32:29 -07:00
Kubernetes Submit Queue
efa5322766 Merge pull request #42896 from deads2k/server-03-codec
Automatic merge from submit-queue (batch tested with PRs 42900, 43044, 42896, 43308, 43621)

require codecfactory

The genericapiserver requires a codec to start.  Help new comers to the API by forcing them to set it when they create a new config.
2017-03-27 08:32:27 -07:00
Kubernetes Submit Queue
1fa91fddc5 Merge pull request #42900 from deads2k/agg-26-fallthrough
Automatic merge from submit-queue

rewire aggregation handling chain to be normal

Uses https://github.com/kubernetes/kubernetes/pull/42886 to allow the aggregator to be "normal" as far as the handling chain goes.  This will allow for cleaner composition.

@kubernetes/sig-api-machinery-misc
2017-03-27 07:54:56 -07:00
deads2k
546b45c9c0 enable generation 2017-03-27 09:56:26 -04:00
deads2k
8e26fa25da wire in aggregation 2017-03-27 09:44:10 -04:00
Kubernetes Submit Queue
9a1648686c Merge pull request #43687 from piosz/remove-an
Automatic merge from submit-queue

Remove fluentd-ds-ready label

ref #42840
2017-03-27 06:18:45 -07:00
deads2k
087a030221 require codecfactory 2017-03-27 08:19:08 -04:00
deads2k
b28966b48a rewire aggregation handling chain to be normal 2017-03-27 08:15:16 -04:00
deads2k
f31eb0a77f force callers to specify the cert dns names 2017-03-27 07:49:01 -04:00
Piotr Szczesniak
37d2a457db Remove fluentd-ds-ready label 2017-03-27 10:15:26 +02:00
Kubernetes Submit Queue
ff603cfc5e Merge pull request #43076 from deads2k/server-06-add-to-server
Automatic merge from submit-queue

allow combining API servers

Builds on https://github.com/kubernetes/kubernetes/pull/42886 (already lgtm'ed)

We need to be able to chain multiple API servers together so that a fallthrough case from to another results in delegated handling without double wrapping. We also need to be able to combine shared lists like healthz and poststarthooks so that a single API server start will run all the poststarthooks and present a unified view of health.  This creates an interface and methods to provide that wiring.

@kubernetes/sig-api-machinery-misc @ncdc
2017-03-26 17:38:32 -07:00
Kubernetes Submit Queue
484ac692f8 Merge pull request #43141 from deads2k/tpr-04-register
Automatic merge from submit-queue (batch tested with PRs 43429, 43416, 43312, 43141, 43421)

Create controller to auto register TPRs with the aggregator

Builds on https://github.com/kubernetes/kubernetes/pull/42732 (already lgtmed)

Creates a simple controller to wire TPRs with the API Service autoregistration controller.

@kubernetes/sig-api-machinery-misc @ncdc
2017-03-25 22:24:27 -07:00
Kubernetes Submit Queue
bc0171c6ec Merge pull request #43312 from deads2k/cli-08-discovery
Automatic merge from submit-queue (batch tested with PRs 43429, 43416, 43312, 43141, 43421)

add singular resource names to discovery

Adds the singular resource name to our resource for discovery.  This is something we've discussed to remove our pseudo-pluralization library which is unreliable even for english and really has no hope of properly handling other languages or variations we can expect from TPRs and aggregated API servers.

This pull simply adds the information to discovery, it doesn't not re-wire any RESTMappers.

@kubernetes/sig-cli-misc  @kubernetes/sig-apimachinery-misc @kubernetes/api-review


```release-note
API resource discovery now includes the `singularName` used to refer to the resource.
```
2017-03-25 22:24:25 -07:00
Kubernetes Submit Queue
944131d880 Merge pull request #43416 from caesarxuchao/remove-timed-workqueue
Automatic merge from submit-queue (batch tested with PRs 43429, 43416, 43312, 43141, 43421)

remove timed_queue from workqueue

Fix https://github.com/kubernetes/kubernetes/issues/40494.

It's added to gather metrics of the workqueue used in the garbage collector. Now that a regular workqueue has supported the metrics, we can remove timed_queue.
2017-03-25 22:24:23 -07:00
Kubernetes Submit Queue
f4d863a655 Merge pull request #43359 from smarterclayton/reuse_timer
Automatic merge from submit-queue

JitterUntil should reuse Timer instead of allocating
2017-03-25 19:57:38 -07:00
Kubernetes Submit Queue
feffb89ee2 Merge pull request #43314 from deads2k/server-08-audit
Automatic merge from submit-queue (batch tested with PRs 43144, 42671, 43226, 43314, 43361)

use - to indicate audit log goes to system out

When debugging API servers, particularly aggregated API servers, it's really useful to see the audit trail in their normal pod logs.  This makes `--audit-log-path=-` direct audit information to stdout.

@kubernetes/sig-api-machinery-misc
2017-03-25 19:10:26 -07:00
Kubernetes Submit Queue
59728a09de Merge pull request #43144 from deads2k/server-06-informer-start
Automatic merge from submit-queue (batch tested with PRs 43144, 42671, 43226, 43314, 43361)

start informers as a post-start-hook

Switches the shared informer start to a post start hook to make future API server composition easier.  PostStartHooks will have to be unioned for server composition and this ensures that we don't accidentally skip starting them.
2017-03-25 19:10:22 -07:00
Kubernetes Submit Queue
ce55522e41 Merge pull request #43039 from caesarxuchao/fix-fake-event-search
Automatic merge from submit-queue (batch tested with PRs 41297, 42638, 42666, 43039, 42567)

use metav1.ListOptions in fake_event_expansion.go

Fix https://github.com/kubernetes/client-go/issues/145.
2017-03-25 18:15:25 -07:00
Kubernetes Submit Queue
f9e87e1dc2 Merge pull request #42902 from louyihua/allow-tcp-probe-host
Automatic merge from submit-queue (batch tested with PRs 42998, 42902, 42959, 43020, 42948)

Add Host field to TCPSocketAction

Currently, TCPSocketAction always uses Pod's IP in connection. But when a pod uses the host network, sometimes firewall rules may prevent kubelet from connecting through the Pod's IP.

This PR introduces the 'Host' field for TCPSocketAction, and if it is set to non-empty string, the probe will be performed on the configured host rather than the Pod's IP. This gives users an opportunity to explicitly specify 'localhost' as the target for the above situations.

```release-note
Add Host field to TCPSocketAction
```
2017-03-25 17:17:23 -07:00
Kubernetes Submit Queue
8aeb601266 Merge pull request #42886 from deads2k/server-02-fallthrough
Automatic merge from submit-queue

allow fallthrough handling from go-restful routes

This sets up the gorestful routes to fall through to a default handler and reorders the API to be ahead of the other endpoints.  This makes it possible to cleanly support cases of "match, fail, try this other handler" which we'll need for API server composition.

@kubernetes/sig-api-machinery-pr-reviews @ncdc
2017-03-25 15:56:05 -07:00
Kubernetes Submit Queue
a9c8d97709 Merge pull request #42801 from deads2k/agg-25-local
Automatic merge from submit-queue

add local option to APIService

APIServices need an option to avoid proxying in cases where the groupversion is handled later in the chain.  This will allow a coherent and complete set of APIServices, but won't require extra connections.

@kubernetes/sig-api-machinery-misc @ncdc @cheftako
2017-03-25 15:12:19 -07:00
Kubernetes Submit Queue
f11258ad81 Merge pull request #42672 from deads2k/agg-24-use-custom-scheme
Automatic merge from submit-queue (batch tested with PRs 42672, 42770, 42818, 42820, 40849)

use separate scheme to serve the kube-aggregator

This removes a hack which used the client scheme to serve the kube-aggregator.  This switches it to run from its own scheme.

@kubernetes/sig-api-machinery-pr-reviews 
@ncdc
2017-03-25 14:27:22 -07:00
Andy Goldstein
085db20a02 React to go-systemd changes 2017-03-24 13:59:41 -04:00
Andy Goldstein
a6b06bcf5c bump(github.com/coreos/go-systemd): 48702e0da86bd25e76cfef347e2adeb434a0d0a6 2017-03-24 13:59:40 -04:00
Kubernetes Submit Queue
04b35a55df Merge pull request #43148 from justinsb/typo_newgroupmetadfactory
Automatic merge from submit-queue

Fix typo: NewGroupMetadFactory

NewGroupMetadFactory -> NewGroupMetaFactory

```release-note
NONE
```
2017-03-24 10:26:47 -07:00
Kubernetes Submit Queue
ba63cb4538 Merge pull request #42903 from krousey/owners
Automatic merge from submit-queue

Remove krousey from some OWNERS files
2017-03-24 10:26:40 -07:00
Kubernetes Submit Queue
dbf152acac Merge pull request #42032 from linyouchong/linyouchong-20170224
Automatic merge from submit-queue

update kubeconfig document url in comments

**What this PR does / why we need it**:
update kubeconfig document url in comments
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: 
NONE

**Special notes for your reviewer**:
NONE
**Release note**:
NONE
2017-03-24 10:24:57 -07:00
Jordan Liggitt
707f0fb131
Preserve API group order in discovery, prefer extensions over apps 2017-03-23 11:10:53 -04:00
Dr. Stefan Schimanski
be6be1370b k8s.io/apiserver: make maxRetryWhenPatchConflicts public 2017-03-23 11:33:10 +01:00
Avesh Agarwal
0f65df66e6 Auto generated stuff. 2017-03-22 01:26:43 -04:00
deads2k
b34f03e975 add controller to autoregister APIServices 2017-03-21 13:29:13 -04:00
deads2k
bccef75d7a allow combining API servers 2017-03-21 13:22:41 -04:00
deads2k
02efeeaf40 allow fallthrough handling from go-restful routes 2017-03-21 13:19:28 -04:00
deads2k
36cb9ed640 add singular resource names to discovery 2017-03-21 11:04:08 -04:00
Cao Shufeng
267288249b Update basic audit filter's comment message 2017-03-21 05:42:30 -04:00
Jordan Liggitt
7ceeee8665
Update client-go 2017-03-20 23:57:38 -04:00
Jordan Liggitt
939ca532aa
generated files 2017-03-20 23:57:38 -04:00
Chao Xu
29432ce054 remove timed_queue, its functionality is supported by a regular queue now 2017-03-20 16:19:24 -07:00
Clayton Coleman
01a23fd0bc
JitterUntil should reuse Timer instead of allocating
Many of our core loops rotate around JitterUntil, which means we create
a lot of garbage at steady state for timers. Add proper timer reuse in
this loop.
2017-03-19 19:01:53 -04:00
Kubernetes Submit Queue
9497139cb6 Merge pull request #42828 from janetkuo/ds-types
Automatic merge from submit-queue

Update field descriptions of DaemonSet rolling udpate

@kargakis @lukaszo @kubernetes/sig-apps-bugs
2017-03-17 17:54:14 -07:00
Kubernetes Submit Queue
eb43cd5eb3 Merge pull request #43271 from liggitt/affinity-namespace
Automatic merge from submit-queue (batch tested with PRs 43313, 43257, 43271, 43307)

Remove 'all namespaces' meaning of empty list in PodAffinityTerm

Removes the distinction between `null` and `[]` for the PodAffinityTerm#namespaces field (option 4 discussed in https://github.com/kubernetes/kubernetes/issues/43203#issuecomment-287237992), since we can't distinguish between them in protobuf (and it's a less than ideal API)

Leaves the door open to reintroducing "all namespaces" function via a dedicated field or a dedicated token in the list of namespaces

Wanted to get a PR open and tests green in case we went with this option.

Not sure what doc/release-note is needed if the "all namespaces" function is not present in 1.6
2017-03-17 15:12:33 -07:00
Janet Kuo
263d605112 Auto-generate 2017-03-17 14:42:37 -07:00
deads2k
91f461283e use - to indicate audit log goes to system out 2017-03-17 14:43:15 -04:00
Jordan Liggitt
cc6bc17ab4
update client-go 2017-03-17 00:32:52 -04:00
Chao Xu
2378d39771 update-all.sh 2017-03-16 15:58:30 -07:00
Chao Xu
80686e67aa update comment on the default DeletionPropagationPolicy 2017-03-16 15:43:05 -07:00
deads2k
5b08029e79 start informers as a post-start-hook 2017-03-16 11:12:17 -04:00
jorenhehe
1d424cc55d fix typos 2017-03-16 14:08:47 +08:00
Kubernetes Submit Queue
2bec20ce55 Merge pull request #43122 from liggitt/protobuf-default
Automatic merge from submit-queue

Prevent protobuf storage with etcd2

Prevents accidentally storing protobuf content in etcd2 when upgrading to 1.6

c.f. https://github.com/kubernetes/kubernetes/issues/42976#issuecomment-286537139

```release-note
if kube-apiserver is started with `--storage-backend=etcd2`, the media type `application/json` is used.
```
2017-03-15 22:07:03 -07:00
Kubernetes Submit Queue
6d2defbc09 Merge pull request #42967 from cblecker/godep-version79
Automatic merge from submit-queue (batch tested with PRs 40964, 42967, 43091, 43115)

Update hack scripts to use godep v79 and ensure_godep_version

**What this PR does / why we need it**:
Based on #42965 and https://github.com/kubernetes/kubernetes/pull/42958#discussion_r105568318, this pins the godep version at v79, which should fix some issues when running godep in go1.8 local environments.

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

**Special notes for your reviewer**:
This should likely get the v1.6 milestone so that it can be merged into master. While I'm setting a default godep version, I'm continuing to use the local pins per this comment: https://github.com/kubernetes/kubernetes/pull/42965#issuecomment-285962723 .

**Release note**:

```release-note
NONE
```

cc: @sttts
2017-03-15 16:08:25 -07:00
Christoph Blecker
d31a88fee7
Bump godep version to v79 2017-03-15 10:32:37 -07:00
Justin Santa Barbara
f682aa1c91 Fix typo: NewGroupMetadFactory
NewGroupMetadFactory -> NewGroupMetaFactory
2017-03-15 11:33:50 -04:00
Jordan Liggitt
87e32c7532
Force etcd2 to use application/json, add base64-wrapper decoder as fallback 2017-03-15 11:24:12 -04:00
Mikkel Oscar Lyderik Larsen
c02484d380 vendor: Update github.com/evanphx/json-patch
Updates github.com/evanphx/json-patch dependency to a version that
doesn't crash when handling an invalid json patch.

Includes fix from https://github.com/evanphx/json-patch/pull/35

Fix #40218
2017-03-14 15:56:55 -04:00
Chao Xu
68effc7b2d fix fake_event_expansion.go 2017-03-14 11:52:49 -07:00
Dr. Stefan Schimanski
e310e0d059 apimachinery/pkg/apis/meta: remove duplicated conversions in v1 and internal 2017-03-14 17:54:23 +01:00
Lou Yihua
64f2b0c0fc Update generated & client-go 2017-03-14 23:49:21 +08:00
Kubernetes Submit Queue
f5114ffa5a Merge pull request #42669 from curtisallen/update_dep_go-oidc
Automatic merge from submit-queue (batch tested with PRs 42802, 42927, 42669, 42988, 43012)

update to latest version of coreos/go-oidc

Includes updates that enable OIDC with OKTA as a IDP



**What this PR does / why we need it**:
Updates to the latest version of coreos/go-oidc

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

**Special notes for your reviewer**:
Updates coreos/go-oidc module to include fixes for https://github.com/coreos/go-oidc/issues/137 which prevent OKTA being used as an IDP
**Release note**:

```release-note
NONE
```

cc:/ @ericchiang
2017-03-14 07:31:34 -07:00
Klaus Ma
98a52fd6b5 generated client-go. 2017-03-13 22:40:56 +08:00
deads2k
b27de102cb add local option to APIService 2017-03-13 10:10:50 -04:00
Dr. Stefan Schimanski
792d1f3dc0 hack/verify-staging-imports.sh: check that plugins are not imported by default 2017-03-12 19:51:31 +01:00
Kubernetes Submit Queue
e315c388b2 Merge pull request #42944 from liggitt/patch-defaulting
Automatic merge from submit-queue

Ensure patched objects are defaulted correctly

Restores defaulting behavior for patch API calls removed in e34e1abe33 (diff-517d1b81963bbc7c9b0a16e6eb3c0e2f)

Restores the unit test that ensures we get a defaulted result after applying a patch

Fixes https://github.com/kubernetes/kubernetes/issues/42764
Fixes #42834
2017-03-11 17:49:41 -08:00
Kubernetes Submit Queue
8cb14a4f7f Merge pull request #42755 from aveshagarwal/master-fix-default-toleration-seconds
Automatic merge from submit-queue (batch tested with PRs 41794, 42349, 42755, 42901, 42933)

Fix DefaultTolerationSeconds admission plugin

DefaultTolerationSeconds is not working as expected. It is supposed to add default tolerations (for unreachable and notready conditions). but no pod was getting these toleration. And api server was throwing this error:

```
Mar 08 13:43:57 fedora25 hyperkube[32070]: E0308 13:43:57.769212   32070 admission.go:71] expected pod but got Pod
Mar 08 13:43:57 fedora25 hyperkube[32070]: E0308 13:43:57.789055   32070 admission.go:71] expected pod but got Pod
Mar 08 13:44:02 fedora25 hyperkube[32070]: E0308 13:44:02.006784   32070 admission.go:71] expected pod but got Pod
Mar 08 13:45:39 fedora25 hyperkube[32070]: E0308 13:45:39.754669   32070 admission.go:71] expected pod but got Pod
Mar 08 14:48:16 fedora25 hyperkube[32070]: E0308 14:48:16.673181   32070 admission.go:71] expected pod but got Pod
```

The reason for this error is that the input to admission plugins is internal api objects not versioned objects so expecting versioned object is incorrect. Due to this, no pod got desired tolerations and it always showed:

```
Tolerations: <none>
```

After this fix, the correct  tolerations are being assigned to pods as follows:

```
Tolerations:	node.alpha.kubernetes.io/notReady=:Exists:NoExecute for 300s
		node.alpha.kubernetes.io/unreachable=:Exists:NoExecute for 300s
```

@davidopp @kevin-wangzefeng @kubernetes/sig-scheduling-pr-reviews @kubernetes/sig-scheduling-bugs @derekwaynecarr 

Fixes https://github.com/kubernetes/kubernetes/issues/42716
2017-03-10 22:02:18 -08:00
Jordan Liggitt
464db160b4
Ensure patched objects are defaulted correctly 2017-03-10 22:07:10 -05:00
Kris
ee4227f4bf Remove krousey from some OWNERS files 2017-03-10 11:12:29 -08:00
Curtis Allen
7d409b3731 bump(github.com/coreos/go-oidc): be73733bb8cc830d0205609b95d125215f8e9c70
Includes updates that enable OIDC with OKTA as a IDP
2017-03-10 10:53:07 -07:00
Avesh Agarwal
f88c901518 Auto update of staging client. 2017-03-09 20:24:44 -05:00
deads2k
1dc8ae9b57 use separate scheme to serve the kube-aggregator 2017-03-09 10:45:02 -05:00
Kubernetes Submit Queue
aad34ad26e Merge pull request #42553 from k82cn/autogen_proto
Automatic merge from submit-queue (batch tested with PRs 42786, 42553)

Updated auto generated protobuf codes.

Generated by `./hack/update-generated-protobuf-dockerized.sh` in Mac.
2017-03-09 07:37:36 -08:00
Kubernetes Submit Queue
1a3c3be58b Merge pull request #42786 from gyliu513/feature-gates
Automatic merge from submit-queue (batch tested with PRs 42786, 42553)

Updated comments for TaintBasedEvictions.

**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**:
2017-03-09 07:37:35 -08:00
Guangya Liu
ed28695d3e Updated comments for TaintBasedEvictions. 2017-03-09 17:06:31 +08:00
Michael Fraenkel
cadc8a141d Update docs and client 2017-03-09 07:34:56 +00:00
Maru Newby
6f70b977ff apiserver: Add non-blocking run method to simplify testing 2017-03-08 06:32:10 -08:00
Kubernetes Submit Queue
d306acca86 Merge pull request #42175 from enisoc/controller-ref-dep
Automatic merge from submit-queue

Deployment: Fully Respect ControllerRef

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

This is part of the completion of the [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md) proposal. It brings Deployment into full compliance with ControllerRef. See the individual commit messages for details.

**Which issue this PR fixes**:

This ensures that Deployment does not fight with other controllers over control of Pods and ReplicaSets.

Ref: https://github.com/kubernetes/kubernetes/issues/24433

**Special notes for your reviewer**:

**Release note**:

```release-note
Deployment now fully respects ControllerRef to avoid fighting over Pods and ReplicaSets. At the time of upgrade, **you must not have Deployments with selectors that overlap**, or else [ownership of ReplicaSets may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading).
```
cc @erictune @kubernetes/sig-apps-pr-reviews
2017-03-07 20:44:36 -08:00
Kubernetes Submit Queue
5af81b0955 Merge pull request #42173 from enisoc/controller-ref-ds
Automatic merge from submit-queue (batch tested with PRs 42692, 42169, 42173)

DaemonSet: Respect ControllerRef

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

This is part of the completion of the [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md) proposal. It brings DaemonSet into full compliance with ControllerRef. See the individual commit messages for details.

**Which issue this PR fixes**:

This ensures that DaemonSet does not fight with other controllers over control of Pods.

**Special notes for your reviewer**:

**Release note**:

```release-note
DaemonSet now respects ControllerRef to avoid fighting over Pods.
```
cc @erictune @kubernetes/sig-apps-pr-reviews
2017-03-07 20:10:28 -08:00
Kubernetes Submit Queue
5bc7387b3c Merge pull request #42169 from ncdc/pprof-trace
Automatic merge from submit-queue (batch tested with PRs 42692, 42169, 42173)

Add pprof trace support

Add support for `/debug/pprof/trace`

Can wait for master to reopen for 1.7.

cc @smarterclayton @wojtek-t @gmarek @timothysc @jeremyeder @kubernetes/sig-scalability-pr-reviews
2017-03-07 20:10:26 -08:00
Anthony Yeh
c288f52d2f DaemonSet: Update Lister documentation for ControllerRef.
The DaemonSet Listers still use selectors, because this is the
behavior expected by callers. This clarifies the meaning of the
returned list. Some callers may need to switch to using
GetControllerOf() instead, but that is a separate, case-by-case issue.
2017-03-07 16:42:29 -08:00
Kubernetes Submit Queue
d64434c056 Merge pull request #42625 from caesarxuchao/add-notes-client-go-examples
Automatic merge from submit-queue

Adding note saying client-go examples only work with the code in the same branch

Adding this note because the problem has confused many users.

It's doc change and only affects client-go examples, so adding the milestone.
2017-03-07 13:04:48 -08:00
Kubernetes Submit Queue
7593a9f555 Merge pull request #42648 from sttts/sttts-multiple-feature-gate-calls
Automatic merge from submit-queue (batch tested with PRs 42637, 42648)

Support multiple --feature-gates flags in the command line

Fixes the issue in https://github.com/kubernetes/kubernetes/pull/42647.

Before this change the whole set of gates was replaced with new values. Now values are overridden one by one.
2017-03-07 12:14:18 -08:00
Dr. Stefan Schimanski
faa5b44381 Support multiple --feature-gates flags in the command line 2017-03-07 17:55:46 +01:00
Kubernetes Submit Queue
ed04316828 Merge pull request #41890 from soltysh/issue37166
Automatic merge from submit-queue (batch tested with PRs 41890, 42593, 42633, 42626, 42609)

Remove everything that is not new from batch/v2alpha1

Fixes #37166.

@lavalamp you've asked for it 
@erictune this is a prereq for moving CronJobs to beta. I initially planned to put all in one PR, but after I did that I figured out it'll be easier to review separately. ptal 

@kubernetes/api-approvers @kubernetes/sig-api-machinery-pr-reviews ptal
2017-03-07 08:10:38 -08:00
Andy Goldstein
b011529d8a Add pprof trace support
Add pprof trace support and --enable-contention-profiling to those
components that don't already have it.
2017-03-07 10:10:42 -05:00
Chao Xu
cecf0ca730 adding note 2017-03-06 22:34:12 -08:00
Kubernetes Submit Queue
8b10527bb1 Merge pull request #42506 from liggitt/etcd-prefix
Automatic merge from submit-queue (batch tested with PRs 42506, 42585, 42596, 42584)

Preserve custom etcd prefix compatibility for etcd3

Fixes #42505

```release-note
restored normalization of custom `--etcd-prefix` when `--storage-backend` is set to etcd3
```
2017-03-06 22:20:09 -08:00
Kubernetes Submit Queue
4c4c9e47f3 Merge pull request #42489 from ymqytw/switch_json
Automatic merge from submit-queue

switch to k8s json to avoid number decoding issue

Fixes #42488
Fixes #42282

> use "k8s.io/apimachinery/pkg/util/json" to avoid number conversion issues

@liggitt Same reason as https://github.com/kubernetes/kubernetes/pull/40666#pullrequestreview-19186078

```release-note
NONE
```
2017-03-06 19:51:16 -08:00
Jordan Liggitt
6853e4d71e
Preserve custom etcd prefix compatibility for etcd3 2017-03-06 20:58:06 -05:00
Kubernetes Submit Queue
73c5d6cd2f Merge pull request #41653 from jlowdermilk/gcp-auth-plugin
Automatic merge from submit-queue (batch tested with PRs 42080, 41653, 42598, 42555)

Support whitespace in command path for gcp auth plugin

```
External command option on gcp client auth plugin supports whitespace in command path.
```

Splitting on whitespace to get cmd+args breaks when the path the executable contains spaces. Resolve by adding a new "cmd-args" field to config to allow the full string of "cmd-path" to be interpreted as path to executable.

This change is backwards compatible with existing behavior.
2017-03-06 17:16:13 -08:00
Kubernetes Submit Queue
d50a59ec66 Merge pull request #42080 from enisoc/controller-ref-ss
Automatic merge from submit-queue (batch tested with PRs 42080, 41653, 42598, 42555)

StatefulSet: Respect ControllerRef

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

This is part of the completion of the [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md) proposal. It brings StatefulSet into full compliance with ControllerRef. See the individual commit messages for details.

**Which issue this PR fixes**:

Fixes #36859

**Special notes for your reviewer**:

**Release note**:

```release-note
StatefulSet now respects ControllerRef to avoid fighting over Pods. At the time of upgrade, **you must not have StatefulSets with selectors that overlap** with any other controllers (such as ReplicaSets), or else [ownership of Pods may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading).
```
cc @erictune @kubernetes/sig-apps-pr-reviews
2017-03-06 17:16:10 -08:00
Klaus Ma
42fe601055 Updated auto generated codes. 2017-03-06 23:13:35 +00:00
Anthony Yeh
57fb5e2bba Deployment: Update Lister documentation for ControllerRef.
The Deployment Listers still use selectors, because this is the
behavior expected by callers. This clarifies the meaning of the
returned list. Some callers may need to switch to using
GetControllerOf() instead, but that is a separate, case-by-case issue.
2017-03-06 15:12:07 -08:00
Jeff Lowdermilk
995ecfe84e Support whitespace in command path for gcp auth plugin
Specific use case is GKE users running gcloud/kubectl on Windows
with a cloud sdk installation path containing spaces. Also improving
test coverage using trick borrowed from exec_test.go
2017-03-06 13:52:18 -08:00
Kubernetes Submit Queue
69019e3051 Merge pull request #31783 from dominikschulz/cleanmetrics
Automatic merge from submit-queue (batch tested with PRs 31783, 41988, 42535, 42572, 41870)

Clean user agent to reduce metrics cardinality

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

This PR is an example implementation for my issue #31781.

``` release-note
```

This commit cleans common browser user-agents to reduce the metrics
cardinality in exported prometheus metrics.

Resolves kubernetes/kubernetes#31781
2017-03-06 11:30:12 -08:00
Anthony Yeh
25d90cdaec StatefulSet: Update Lister documentation for ControllerRef.
The StatefulSet Listers still use selectors, because this is the
behavior expected by callers. This clarifies the meaning of the
returned list. Some callers may need to switch to using
GetControllerOf() instead, but that is a separate, case-by-case issue.
2017-03-06 09:46:03 -08:00
Kubernetes Submit Queue
61e7d1ebf1 Merge pull request #42491 from deads2k/auth-03-adder
Automatic merge from submit-queue

make the system:authenticated group adder smarter

Fixes #42437 

This prevents the group adder from adding the system:authenticated group when:
 1. it's already in the list
 2. the user is system:anonymous
 3. system:unauthenticated is in the list

Smaller alternative to https://github.com/kubernetes/kubernetes/pull/42421 for 1.6.

@kubernetes/sig-auth-pr-reviews @enj @liggitt
2017-03-06 05:45:03 -08:00
Maciej Szulik
591b2e005c Staging client changes for cleaning batch/v2alpha1 2017-03-06 12:27:16 +01:00
Dominik Schulz
b5c89a8be6 Clean user agent
This commit cleans common browser user-agents to reduce the metrics
cardinality in exported prometheus metrics.
2017-03-06 07:10:04 +01:00
Kubernetes Submit Queue
93a3efd896 Merge pull request #42300 from caesarxuchao/fix-client-verify
Automatic merge from submit-queue

ignore base.go in client-verify

We need to cherry-pick it to 1.6 to fix #42290.
2017-03-03 21:56:48 -08:00
Kubernetes Submit Queue
99445553df Merge pull request #42310 from liggitt/init-container-default
Automatic merge from submit-queue (batch tested with PRs 42443, 38924, 42367, 42391, 42310)

Apply custom defaults to init containers

Adds overridden defaults to init containers. They were not being defaulted the same way normal containers were.
2017-03-03 18:08:45 -08:00
Vladimir Vivien
915a54180d Addition of ScaleIO Kubernetes Volume Plugin
This commits implements the Kubernetes volume plugin allowing pods to seamlessly access and use data stored on ScaleIO volumes.
2017-03-03 15:47:19 -05:00
ymqytw
b29f4c26d7 switch to k8s json to avoid number conversion issue 2017-03-03 12:17:53 -08:00
Kubernetes Submit Queue
6db099fcee Merge pull request #42275 from deads2k/cli-05-restmapper
Automatic merge from submit-queue (batch tested with PRs 41306, 42187, 41666, 42275, 42266)

discovery restmapping should always prefer /v1

The core kube API, empty group, version==v1 should always be the most preferred group and resource from a rest mapper.  This special cases that.  All the others should be based on discovery order as we previously agreed.

@kubernetes/sig-cli-pr-reviews @kubernetes/sig-api-machinery-pr-reviews 
@enj
2017-03-03 10:54:43 -08:00
Kubernetes Submit Queue
4932b1422c Merge pull request #42187 from smarterclayton/wrong_error_from_timeout
Automatic merge from submit-queue (batch tested with PRs 41306, 42187, 41666, 42275, 42266)

Server timeout returns an incorrect error

Not a valid Status object in JSON

Part of #42163
2017-03-03 10:54:40 -08:00
deads2k
379a73a8db make the system:authenticated group adder smarter 2017-03-03 12:32:52 -05:00
Kubernetes Submit Queue
ec09dab13e Merge pull request #41770 from k82cn/updated_sched_name
Automatic merge from submit-queue (batch tested with PRs 42365, 42429, 41770, 42018, 35055)

Updated scheduler name for multi-scheduler.

fixes #41859
2017-03-03 09:24:44 -08:00
Kubernetes Submit Queue
053458cc83 Merge pull request #41984 from enisoc/controller-ref-rc-rs
Automatic merge from submit-queue (batch tested with PRs 41984, 41682, 41924, 41928)

RC/RS: Fully Respect ControllerRef

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

This is part of the completion of the [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md) proposal. It brings ReplicaSet and ReplicationController into full compliance with ControllerRef. See the individual commit messages for details.

**Which issue this PR fixes**:

Although RC/RS had partially implemented ControllerRef, they didn't use it to determine which controller to sync, or to update expectations. This could lead to instability or controllers getting stuck.

Ref: https://github.com/kubernetes/kubernetes/issues/24433

**Special notes for your reviewer**:

**Release note**:
```release-note
```
cc @erictune @kubernetes/sig-apps-pr-reviews
2017-03-02 10:51:05 -08:00
Kubernetes Submit Queue
c6206c198a Merge pull request #42277 from liggitt/group-resource-error
Automatic merge from submit-queue

Only set a groupresource on errors if a resource was specified

@deads2k this gets rid of the weird .meta.k8s.io error on unauthorized errors
2017-03-02 06:14:55 -08:00
Kubernetes Submit Queue
3d868401e2 Merge pull request #42253 from liggitt/nil-invalid-field-error
Automatic merge from submit-queue (batch tested with PRs 42128, 42064, 42253, 42309, 42322)

Fix panic on nil invalid field error

bug fix for validation panic

if a field.Invalid is constructed with a nil badvalue, the Error() method panics, since reflect.TypeOf() returns nil
2017-03-02 05:00:52 -08:00
Kubernetes Submit Queue
6969aff027 Merge pull request #42128 from jsafrane/v1-2-combined
Automatic merge from submit-queue (batch tested with PRs 42128, 42064, 42253, 42309, 42322)

Add storage.k8s.io/v1 API

This is combined version of reverted #40088 (first 4 commits) and #41646. The difference is that all controllers and tests use old `storage.k8s.io/v1beta1` API so in theory all tests can pass on GKE.

Release note:
```release-note
StorageClassName attribute has been added to PersistentVolume and PersistentVolumeClaim objects and should be used instead of annotation `volume.beta.kubernetes.io/storage-class`. The beta annotation is still working in this release, however it will be removed in a future release.
```
2017-03-02 05:00:39 -08:00
Kubernetes Submit Queue
1634d8f9f7 Merge pull request #42084 from caesarxuchao/keep-k8s.io-godep
Automatic merge from submit-queue (batch tested with PRs 41672, 42084, 42233, 42165, 42273)

Keep entries of apimachinery in client-go's Godeps.json

1. copy.sh now copies staging/ to a temp dir, creates snapshots for them, and then adds the temp dir to GOPATH before running `godep save`. This way, we don't need the `go list` check added in #41987 so that's removed @sttts.
2. copy.sh fills the entries for k8s.io/apimachinery with dummy SHA1 in client-go's Godeps.json. The publish robot will later fill the actually published one.
3. copy.sh removes the entire `_vendor` from client-go. We cannot keep `_vendor` because it makes hard to use the `git filter-branch` magic for client-go, because the filtered commits might contain changes to `_vendor` while client-go only has `vendor/`.

Some notes on point 3: the robot will restore the vendor/ later, but exclude k8s.io/* and glog, so that users retrieving client-go with `go get` won't end up with multiple copies of them. I think this should be a ***general rule*** for published k8s.io/* repos: every published repos should have complete Godeps.json with latest commit hashes of other k8s.io/* repos, but vendor/k8s.io/* and vendor/glog will be removed from all repos.

@sttts @lavalamp @deads2k
2017-03-02 03:20:23 -08:00
Kubernetes Submit Queue
fc31dae165 Merge pull request #41932 from ericchiang/self-client-config-scheme
Automatic merge from submit-queue (batch tested with PRs 42126, 42130, 42232, 42245, 41932)

apiserver/pkg/server: include scheme in insecure self client config

Noticed this during bootkube development: https://github.com/kubernetes-incubator/bootkube/issues/325

In Go 1.8's `url.Parse` became more strict, and `url.Parse("127.0.0.1:8080")` now fails.

https://beta.golang.org/doc/go1.8#net_url
https://play.golang.org/p/dw_cPeotG4

Accidentally compiled bootkube with 1.8 and tracked a panic down to the loopback client config. Though we're still using the old "genericapiserver", this seems to be translated from the old one.

The actual panic we observed was

```
E0222 19:40:11.364949       5 server.go:254] Failed to create clientset: parse 127.0.0.1:8080: first path segment in URL cannot contain colon
panic: parse 127.0.0.1:8080: first path segment in URL cannot contain colon
goroutine 35 [running]:
github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion.NewForConfigOrDie(0xc420728ea0, 0xc420738e30)
        /home/eric/src/github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/core_client.go:132 +0x62
github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/pkg/master.(*Config).Complete(0xc420739db8, 0x0)
        /home/eric/src/github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/pkg/master/master.go:180 +0x40a
github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app.Run(0xc42007a3c0, 0x0, 0x0)
        /home/eric/src/github.com/kubernetes-incubator/bootkube/vendor/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go:347 +0x1e8d
github.com/kubernetes-incubator/bootkube/pkg/bootkube.(*bootkube).Run.func1(0xc4206b01e0, 0xc420164300)
        /home/eric/src/github.com/kubernetes-incubator/bootkube/pkg/bootkube/bootkube.go:124 +0x2f
created by github.com/kubernetes-incubator/bootkube/pkg/bootkube.(*bootkube).Run
        /home/eric/src/github.com/kubernetes-incubator/bootkube/pkg/bootkube/bootkube.go:124 +0xb0
```

I don't actually know if this is the correct fix or if there should be changes to `NewForConfigOrDie`. Am looking for comments more than anything.

edit: @abourget pointed out over on bootkube that the actual panic was fixed in the internalclient by https://github.com/kubernetes/kubernetes/pull/38519.

cc @deads2k @sttts @kubernetes/sig-api-machinery-pr-reviews
2017-03-02 02:07:31 -08:00
Jan Safranek
9487552e41 Regenerate everything 2017-03-02 10:23:58 +01:00
Jan Safranek
c535c3e20b Regenerate everything 2017-03-02 08:56:26 +01:00
Kubernetes Submit Queue
47f63acf23 Merge pull request #41931 from jessfraz/pip
Automatic merge from submit-queue (batch tested with PRs 41931, 39821, 41841, 42197, 42195)

Admission Controller: Add Pod Preset

Based off the proposal in https://github.com/kubernetes/community/pull/254

cc @pmorie @pwittrock 

TODO:
- [ ] tests



**What this PR does / why we need it**: Implements the Pod Injection Policy admission controller

**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
Added new Api `PodPreset` to enable defining cross-cutting injection of Volumes and Environment into Pods.
```
2017-03-01 20:07:54 -08:00
Klaus Ma
a74fcd0a8d generated client-go. 2017-03-02 11:19:33 +08:00
Kubernetes Submit Queue
01bfbb5fa0 Merge pull request #42259 from deads2k/rbac-07-reconcile-binding
Automatic merge from submit-queue

Add RBAC roles for bootstrap controllers

Supercedes https://github.com/kubernetes/kubernetes/pull/42221

When locking down controllers to individual RBAC roles we need to make sure that the bootstrap controllers have the right permissions.

This adds the roles and bindings at the correct namespace scopes for the bootstrap-signer and token-cleaner controllers.

@liggitt ptal
@jbeda @luxas you got a good way to test this?  It must not be covered in normal e2e or we'd've seen the issue before.
2017-03-01 16:57:51 -08:00
Anthony Yeh
f54a5c9728 RC/RS: Update Lister documentation for ControllerRef.
The RC/RS Listers still use selectors, because this is the behavior
expected by callers. This clarifies the meaning of the returned list.
Some callers may need to switch to using GetControllerOf() instead,
but that is a separate, case-by-case issue.
2017-03-01 15:43:51 -08:00
Kubernetes Submit Queue
d5ff69468e Merge pull request #29378 from vefimova/docker_resolv
Automatic merge from submit-queue

Re-writing of the resolv.conf file generated by docker

Fixes #17406 

Docker 1.12 will contain feature "The option --dns and --net=host should not be mutually exclusive" (docker/docker#22408)
This patch adds optional support for this ability in kubelet (for now in case of "hostNetwork: true" set all dns settings are ignored if any).
To enable feature use newly added kubelet flag: --allow-dns-for-hostnet=true
2017-03-01 14:19:08 -08:00
Chao Xu
aae25271d9 generated 2017-03-01 14:19:06 -08:00
Chao Xu
b326064d45 copy.sh rewrites rev of apimachinery with dummy rev in Godeps.json; remove _vendor 2017-03-01 14:13:10 -08:00
Jess Frazelle
cc3166e2d7
fix client-go
Signed-off-by: Jess Frazelle <acidburn@google.com>
2017-03-01 13:05:47 -08:00
Jess Frazelle
5bb53133a9
update staging client
Signed-off-by: Jess Frazelle <acidburn@google.com>
2017-03-01 13:05:44 -08:00
Chao Xu
19fc6a5d21 ignore base.go 2017-03-01 10:33:41 -08:00
Kubernetes Submit Queue
c713ef434d Merge pull request #42327 from deads2k/api-06-debug
Automatic merge from submit-queue

show patch error as string not byte slice

Debugging for https://github.com/kubernetes/kubernetes/issues/39471 shows

```
client_test.go:309: Failed updating patchpod with patch type application/json-patch+json: Operation cannot be fulfilled on pods "patchpod": there is a meaningful conflict:
	 diff1=[123 34 109 101 116 97 100 97 116 97 34 58 123 34 108 97 98 101 108 115 34 58 123 34 102 111 111 34 58 110 117 108 108 125 44 34 114 101 115 111 117 114 99 101 86 101 114 115 105 111 110 34 58 34 49 52 50 50 34 125 125]
	, diff2=[123 34 109 101 116 97 100 97 116 97 34 58 123 34 108 97 98 101 108 115 34 58 110 117 108 108 125 125]
```

I don't speak byte slice, so this makes it a string for next time.

@sttts
2017-03-01 10:18:42 -08:00
vefimova
fc8a37ec86 Added ability for Docker containers to set usage of dns settings along with hostNetwork is true
Introduced chages:
   1. Re-writing of the resolv.conf file generated by docker.
      Cluster dns settings aren't passed anymore to docker api in all cases, not only for pods with host network:
      the resolver conf will be overwritten after infra-container creation to override docker's behaviour.

   2. Added new one dnsPolicy - 'ClusterFirstWithHostNet', so now there are:
      - ClusterFirstWithHostNet - use dns settings in all cases, i.e. with hostNet=true as well
      - ClusterFirst - use dns settings unless hostNetwork is true
      - Default

Fixes #17406
2017-03-01 17:10:00 +00:00
deads2k
ea887557d3 show patch error as string not byte slice 2017-03-01 11:32:16 -05:00
deads2k
49f8a37c64 discovery restmapping should always prefer /v1 2017-03-01 10:59:23 -05:00
Maciej Szulik
b844f7d4a4 Staging changes for apps/v1beta1.deployments 2017-03-01 15:14:41 +01:00
Maciej Szulik
1f04d9353e Remove comment from all staging Godeps.json 2017-03-01 12:56:39 +01:00
Maciej Szulik
44bc6dadde Godeps updater should ignore comments 2017-03-01 12:56:06 +01:00
Kubernetes Submit Queue
3afefae02a Merge pull request #38676 from caesarxuchao/sync-gc
Automatic merge from submit-queue (batch tested with PRs 38676, 41765, 42103, 41833, 41702)

Add synchronous garbage collection

Fix https://github.com/kubernetes/kubernetes/issues/29891.

Split into five commits:
1. generated: don't need review
2. API: got reviewed in #38678, i addressed @lavalamp's comments there.
3. registry changes: @nikhiljindal could you help take a look?
4. gc changes: reviewed by @deads2k in #38679. It needs another pass.
5. tests: @lavalamp @deads2k could take a look?

TODO:
- [ ] Update doc. Note that the existing doc has been refactored in https://github.com/kubernetes/kubernetes.github.io/pull/2488.
- [ ] add an admission controller to check if a user can set OwnerReference.BlockOwnerDeletion
- [ ] https://github.com/kubernetes/kubernetes/pull/38676#discussion_r103277274
- [ ] split the unit tests garbagecollector_test.go according to the components tested.
- [ ] try if it's practically safe to use the cached object status in attempToDeleteItem(), after synchronous GC feature is stable. (Also see https://github.com/kubernetes/kubernetes/pull/38676#discussion_r103056971)
- [ ] add blockOwnerDeletion for rs adoption https://github.com/kubernetes/kubernetes/pull/38679#discussion_r93817284
- [ ] https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/38676/pull-kubernetes-e2e-gce-etcd3/20101/ (improve the log message)

```release-note
Added foreground garbage collection: the owner object will not be deleted until all its dependents are deleted by the garbage collector. Please checkout the [user doc](https://kubernetes.io/docs/concepts/abstractions/controllers/garbage-collection/) for details.
deleteOptions.orphanDependents is going to be deprecated in 1.7. Please use deleteOptions.propagationPolicy instead.
```
2017-03-01 01:44:02 -08:00
Kubernetes Submit Queue
499f089230 Merge pull request #42178 from derekwaynecarr/decode-node-list-spam
Automatic merge from submit-queue (batch tested with PRs 41597, 42185, 42075, 42178, 41705)

stop spamming logs on restart of api server

**What this PR does / why we need it**:
This PR reduces an excessive amount of log spam on startup of any API server with larger amounts of content.  We have experienced server restart times ~5 minutes that is a consequence of us tracing each directory in etcd during our initial decoding.  This spams the journald process, and results in much of those messages getting rate limited and dropped, and making actual problems much harder to debug.  This stops us logging discrete keys in favor of just knowing that an operation was slow for the particular object type (which is enough information!)

this PR also makes it so we know what trace operation was ended in our log messages!

sample log now:

```
Trace "decodeNodeList *[]api.PolicyBinding" (started 2017-02-20 22:20:33.98771112 +0000 UTC)
Decoded 10718 nodes
decodeNodeList *[]api.PolicyBinding [500ms] END
```
2017-03-01 00:36:09 -08:00
Kubernetes Submit Queue
f1939a77b7 Merge pull request #42075 from deads2k/agg-22-auth-auto
Automatic merge from submit-queue (batch tested with PRs 41597, 42185, 42075, 42178, 41705)

auto discovery CA for extension API servers

This is what the smaller pulls were leading to.  Only the last commit is unique and I expect I'll still tweak some pod definitions, but this is where I was going.

@sttts @liggitt
2017-03-01 00:36:07 -08:00
Kubernetes Submit Queue
17b6c17536 Merge pull request #42185 from smarterclayton/watch_log
Automatic merge from submit-queue (batch tested with PRs 41597, 42185, 42075, 42178, 41705)

Don't log context or full request URI due to security concerns
2017-03-01 00:36:04 -08:00
Chao Xu
93686da104 registry changes 2017-02-28 23:05:41 -08:00
Chao Xu
5bfacf59f6 API 2017-02-28 23:05:40 -08:00
Chao Xu
e4aa9db258 generated 2017-02-28 23:05:40 -08:00
Jordan Liggitt
cfb1cd486e
Apply custom defaults to init containers 2017-03-01 01:50:30 -05:00
Kubernetes Submit Queue
992b18065d Merge pull request #42183 from sttts/sttts-bool-parse-warning
Automatic merge from submit-queue (batch tested with PRs 42216, 42136, 42183, 42149, 36828)

Fix bool parse warning in apimachinery

```golang
var DefaultConverter = NewConverter(parseBool(os.Getenv("KUBE_PATCH_CONVERSION_DETECTOR")))
func parseBool(key string) bool {
	value, err := strconv.ParseBool(key)
	if err != nil {
		utilruntime.HandleError(fmt.Errorf("Couldn't parse '%s' as bool for unstructured mismatch detection", key))
	}
	return value
}
````

leading to

```
W0227 10:06:01.037] E0227 10:06:01.023502   16550 converter.go:87] Couldn't parse '' as bool for unstructured mismatch detection
```
2017-02-28 21:17:00 -08:00
Clayton Coleman
60d8365751
Server timeout returns an incorrect error
Not a valid Status object in JSON
2017-02-28 19:21:06 -05:00
Aditya Dani
28df55fc31 Portworx Volume Driver in Kubernetes
- Add a new type PortworxVolumeSource
- Implement the kubernetes volume plugin for Portworx Volumes under pkg/volume/portworx
- The Portworx Volume Driver uses the libopenstorage/openstorage specifications and apis for volume operations.

Changes for k8s configuration and examples for portworx volumes.

- Add PortworxVolume hooks in kubectl, kube-controller-manager and validation.
- Add a README for PortworxVolume usage as PVs, PVCs and StorageClass.
- Add example spec files

Handle code review comments.

- Modified READMEs to incorporate to suggestions.
- Add a test for ReadWriteMany access mode.
- Use util.UnmountPath in TearDown.
- Add ReadOnly flag to PortworxVolumeSource
- Use hostname:port instead of unix sockets
- Delete the mount dir in TearDown.
- Fix link issue in persistentvolumes README
- In unit test check for mountpath after Setup is done.
- Add PVC Claim Name as a Portworx Volume Label

Generated code and documentation.
- Updated swagger spec
- Updated api-reference docs
- Updated generated code under pkg/api/v1

Godeps update for Portworx Volume Driver
- Adds github.com/libopenstorage/openstorage
- Adds go.pedge.io/pb/go/google/protobuf
- Updates Godep Licenses
2017-02-28 23:24:56 +00:00
Jordan Liggitt
6951023759
Only set a groupresource on errors if a resource was specified 2017-02-28 15:46:15 -05:00
deads2k
3d039f60cf allow incluster authentication info lookup 2017-02-28 13:29:59 -05:00
deads2k
1cb582a03a add roles and bindings for bootstrap controllers 2017-02-28 13:14:58 -05:00
Kubernetes Submit Queue
b26fb689f6 Merge pull request #42059 from deads2k/agg-19-integration-test
Automatic merge from submit-queue (batch tested with PRs 35094, 42095, 42059, 42143, 41944)

add aggregation integration test

Wires up an integration test which runs a full kube-apiserver, the wardle server, and the kube-aggregator and creates the APIservice object for the wardle server.  Without services and DNS the aggregator doesn't proxy, but it does ensure we don't have an obvious panic or bring up failure.

@sttts @ncdc
2017-02-28 09:20:16 -08:00
Jordan Liggitt
0cf9b0df56
Fix panic on nil invalid field error 2017-02-28 10:46:17 -05:00
Dr. Stefan Schimanski
fc6d87c0a2 Update client 2017-02-28 15:34:34 +01:00
Dr. Stefan Schimanski
ee8ce696d6 client-gen: create private registry for fake clientset 2017-02-28 15:25:10 +01:00
deads2k
5cfe26dece add aggregation integration test 2017-02-28 08:42:06 -05:00
Kubernetes Submit Queue
4a17b8b100 Merge pull request #42067 from deads2k/agg-21-cleanup-default
Automatic merge from submit-queue

clean up generic apiserver options

Clean up generic apiserver options before we tag any levels.  This makes them more in-line with "normal" api servers running on the platform.

Also remove dead example code.

@sttts
2017-02-28 05:23:34 -08:00
fate-grand-order
8f2891c102 correct misspell "identify" in client_config.go 2017-02-28 18:34:29 +08:00
Eric Chiang
6891505db9 apiserver/pkg/server: include scheme in insecure self client config 2017-02-27 14:02:36 -08:00
Dr. Stefan Schimanski
f11d76ae44 Update client 2017-02-27 22:01:57 +01:00
Dr. Stefan Schimanski
395be3b401 apimachinery: handle duplicated and conflicting type registration 2017-02-27 21:58:21 +01:00
Dr. Stefan Schimanski
6050f59b7b apimachinery: merge Scheme.AddKnownTypes and Scheme.AddKnownTypeWithName 2017-02-27 21:58:21 +01:00
Derek Carr
9211e0380f stop spamming logs on restart of api server 2017-02-27 15:14:09 -05:00
Clayton Coleman
f6300555f4
Don't log context or full request URI due to security concerns
These lines may contain information that cannot be safely logged to
disk. Only deal with known parameters, also bump to V(2) to be
consistent with other logging.
2017-02-27 14:35:16 -05:00
Dr. Stefan Schimanski
1900810f97 Fix bool parse warning in apimachinery 2017-02-27 19:56:39 +01:00
Dr. Stefan Schimanski
3f2056e498 Update client-go 2017-02-27 14:18:04 +01:00
deads2k
acba2cbd6d tweak defaults for recommended apiserver options 2017-02-27 07:47:19 -05:00
Kubernetes Submit Queue
8124705c81 Merge pull request #41987 from sttts/sttts-verify-staging-client-go-unify-with-copy-sh
Automatic merge from submit-queue (batch tested with PRs 42044, 41694, 41927, 42050, 41987)

Simplify and fix hack/{verify,update}-staging-{client-go,godeps}.sh

- merge `hack/{verify,update}-staging-client-go.sh`
- pin godep with shared code
- remove godep-restore completely from the process and replace with a simple check that godeps are restored
- add safety check in `staging/copy.sh` that there is no lingering `k8s.io/apimachinery` in the GOPATH which would lead to inconsistent client-go builds (!)
- check that all these scripts only operate in a clean working dir.
2017-02-26 23:16:56 -08:00
Kubernetes Submit Queue
082cfac707 Merge pull request #35408 from xilabao/add-secret-to-pflag
Automatic merge from submit-queue (batch tested with PRs 35408, 41915, 41992, 41964, 41925)

add secret option to flag

To resolve the issue of security(pr #35030 ),

> @smarterclayton commented 5 days ago
> This is unfortunately not all flags that could be secrets. The best option would be to add support in spf13/pflag to tag a flag as a secret, and then use that bit to determine the list.
> 
> Also, Command() could be used in contexts that need exact parameters (for subshell execution), so we would need to add a new method or extend the signature here to allow exact flags to be retrieved.

we could add a secret option to the flags.
2017-02-26 18:07:53 -08:00
Kubernetes Submit Queue
945b041fab Merge pull request #41165 from nikhiljindal/del202
Automatic merge from submit-queue (batch tested with PRs 41954, 40528, 41875, 41165, 41877)

Updating apiserver to return 202 when resource is being deleted asynchronously via cascading deletion

As per https://github.com/kubernetes/kubernetes/issues/33196#issuecomment-278440622.

cc @kubernetes/sig-api-machinery-pr-reviews @smarterclayton @caesarxuchao @bgrant0607 @kubernetes/api-reviewers 

```release-note
Updating apiserver to return http status code 202 for a delete request when the resource is not immediately deleted because of user requesting cascading deletion using DeleteOptions.OrphanDependents=false.
```
2017-02-26 14:54:54 -08:00
Kubernetes Submit Queue
44dcde0c59 Merge pull request #40522 from wojtek-t/use_new_conversions_in_patch
Automatic merge from submit-queue (batch tested with PRs 41857, 41864, 40522, 41835, 41991)

Use new conversions in patch

Ref #39017
2017-02-26 11:13:55 -08:00
Kubernetes Submit Queue
5c3791b9e0 Merge pull request #41729 from smarterclayton/refactor_printers
Automatic merge from submit-queue (batch tested with PRs 41621, 41946, 41941, 41250, 41729)

Refactor printers and describers into their own package.

This sets the stage for using printer code from the server side (decoupled from kubectl) and loosens the coupling between kubectl and the printers. `pkg/printers` contains interfaces and has an import restriction against pulling in API specific code, while `pkg/printers/internalversion` can be used for internal types.

Add a method on `Factory` for retrieving PrinterForCommand which uses the Scheme and RESTMapper from the Factory, not the hardcoded ones.  This further separates kubectl from the core API scheme and allows better composition.

Change NamePrinter to use RESTMapper (previously it was hardcoding those conversions). This means that we now return plural resource names (`pods/foo`) but is correct once aliases and shortnames start being returned by the mapper.

This is a prerequisite for server side get, but is pure refactor (contains no new features).

@deads2k @liggitt
2017-02-26 06:47:03 -08:00
Kubernetes Submit Queue
cb17b636a8 Merge pull request #42094 from sttts/sttts-sample-apiserver-OWNERS
Automatic merge from submit-queue (batch tested with PRs 42106, 42094, 42069, 42098, 41852)

Add OWNERS for sample-apiserver in staging
2017-02-26 04:33:57 -08:00
Dr. Stefan Schimanski
0b07908358 staging/copy.sh: add safety check for k8s.io/apimachinery/ in GOPATH 2017-02-25 22:39:15 +01:00
Dr. Stefan Schimanski
dd9219f304 update-staging-{client-go,godeps}.sh: no godep-restore, pin godep, check workdir 2017-02-25 22:38:23 +01:00
xilabao
131802a5cd add secret flag to options 2017-02-25 23:40:50 +08:00
xilabao
db65bed243 godep update github.com/spf13/pflag 2017-02-25 23:39:22 +08:00
Kubernetes Submit Queue
1a46a167f3 Merge pull request #41882 from sttts/sttts-loopback-selfsigned-cert
Automatic merge from submit-queue

apiserver: self-signed in-memory cert for loopback

We had complicated logic before to find a matching (SNI- or server-) cert for the loopback device. In the worst case, bootstrapping failed because the provided certs didn't have the binding IP or localhost.

We now pass an artifical `ServerName` "apiserver-loopback-client" with the loopback client and install a self-signed in-memory cert+key into the server for that hostname. The client accepts the corresponding cert.

Fixing https://github.com/kubernetes/kubernetes/issues/41081
2017-02-25 06:23:17 -08:00
Kubernetes Submit Queue
0ace44346c Merge pull request #41590 from deads2k/agg-16-hyperkube
Automatic merge from submit-queue (batch tested with PRs 41854, 41801, 40088, 41590, 41911)

add kube-aggregator to hyperkube

Adds kube-aggregator to hyperkube.

@lavalamp @pwittrock @kubernetes/sig-api-machinery-misc @smarterclayton 

Google publishes a hyperkube image somewhere, right?
2017-02-25 05:02:56 -08:00
Dr. Stefan Schimanski
9f7aa7a760 Add OWNERS for sample-apiserver in staging 2017-02-25 10:25:54 +01:00
linyouchong
506b88e070 update kubeconfig document url in comments 2017-02-24 19:20:32 +08:00
Kubernetes Submit Queue
46dda7e32a Merge pull request #41821 from deads2k/apiserver-15-healthz
Automatic merge from submit-queue

redact detailed errors from healthz and expose in default policy

Makes `/healthz` less sensitive and exposes it by default.

@kubernetes/sig-auth-pr-reviews @kubernetes/sig-api-machinery-misc @liggitt
2017-02-24 00:22:55 -08:00
Morgan Bauer
3e5f904c89
Update godoc to match 2017-02-23 21:49:16 +00:00
Kubernetes Submit Queue
e5c2d716d9 Merge pull request #41887 from liggitt/watch-verb
Automatic merge from submit-queue (batch tested with PRs 39855, 41433, 41567, 41887, 41652)

Use watch param instead of deprecated /watch/ prefix

Reopen of https://github.com/kubernetes/kubernetes/pull/41722 after reverted in https://github.com/kubernetes/kubernetes/pull/41774

Required https://github.com/kubernetes/kubernetes/pull/41797 to merge first

cc @deads2k @wojtek-t
2017-02-23 09:36:35 -08:00
fate-grand-order
122ea25512 fix misspell "underlying" in request.go 2017-02-23 22:09:20 +08:00
Wojciech Tyczynski
8a954a7a5c Fix staging Godeps 2017-02-23 10:08:51 +01:00
Wojciech Tyczynski
e34e1abe33 Use new runtime.Object <-> map[string]interface{} converter 2017-02-23 09:08:35 +01:00
Dr. Stefan Schimanski
726c46e2da apiserver: self-signed in-memory cert for loopback 2017-02-23 08:06:02 +01:00
Kubernetes Submit Queue
3e3133bc59 Merge pull request #41781 from wojtek-t/dont_use_base64_encoding_with-etcd3
Automatic merge from submit-queue (batch tested with PRs 41797, 41793, 41795, 41807, 41781)

Don't use base64 encoding with etcd v3

In https://github.com/kubernetes/kubernetes/pull/36229 we changed the default storage to etcd v3.

This in fact is a fix to that PR.

With etcd v3, the base64-encoding is no longer needed - so we use it only if etcd v2 is explicitly requested as storage format.

@lavalamp
2017-02-22 22:06:37 -08:00
Kubernetes Submit Queue
c6036b6acc Merge pull request #41797 from deads2k/apiserver-14-instrument
Automatic merge from submit-queue (batch tested with PRs 41797, 41793, 41795, 41807, 41781)

tweak a list to a watch verb when requested

Related to https://github.com/kubernetes/kubernetes/pull/41774

@wojtek-t does this do what's needed?
2017-02-22 22:06:30 -08:00
Clayton Coleman
a9c03f292b
UnstructuredList should return 'items' set to the children
The set of items is not mutable (can't add or remove items) but the list
now is. Needs to be improved to make mutability is clear.
2017-02-23 00:28:31 -05:00
Kubernetes Submit Queue
e49f44d89c Merge pull request #41486 from sttts/sttts-clientset-scheme
Automatic merge from submit-queue (batch tested with PRs 41146, 41486, 41482, 41538, 41784)

client-gen: independent scheme for clientsets

This PR adds a clientset internal scheme instead of using `pkg/api.Scheme`. **The clientset API stays the same.**

In detail:

- introduce a scheme for each clientset, i.e. do not use `pkg/api.Scheme+Registry+Codec+ParameterCodecs`.

  This makes it easier to compose client-go's clientset (which is rewritten in `staging/copy.sh` and therefore hardcoded to use `k8s.io/client-go/pkg/api.Scheme+Registry+Codecs+ParameterCodecs`) with third-party clientsets (kube-aggregator, openshift, federation) which are not rewritten using `copy.sh` as all of them are self-contained and therefore relocatable.

  This fixes https://github.com/kubernetes/kubernetes/pull/41403/files#diff-76edfb07dee54ff7ddeda25c33c10d29R81 and prepares client-gen for use in OpenShift.

- register types into the clientset scheme via `AddToScheme` for versioned clientsets. This decouples the client-go clients from announce+registration (internal clients continue using announce+registry and apigroup installers).

  This reduces complexity for client-go, possibly remove the necessity for the announce+register machinery for many use-cases, maybe even to delete it mid-term.
- port federation and testgroup  `install/install.go` to `announced.GroupMetaFactory` in order to have a proper `Install.Install(...)` func for registration.

With the first change it's easy to add the types of one clientset to the scheme of the other using the `clientset/scheme.AddToScheme` method. This allows to use cross-clientset `runtime.RawExtensions`:

```golang
import (
     "k8s.io/client-go/kubernetes"
     clientsetscheme "k8s.io/client-go/kuberentes/scheme"
     aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
)

kclientset, _ := kubernetes.NewForConfig(c)
aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
```
Kubernetes types with a `RawExtension` can en/decode aggregator types after this.

TODO:
- [x] fix fake clientsets
- [x] get the `*Options` types registered correctly for core, compare DO-NOT-MERGE commit.
- [x] get prefered version right in internal client. Do we need all versions registered in the internal client to support negotiation?
- [x] run `staging/copy.sh` and run tests: https://github.com/kubernetes/kubernetes/pull/41744
- ~~[ ] fixup usage through-out the code-base~~
- **Follow-up**: move `import_known_versions.go` files somewhere such that import of the `api.Scheme` package automatically installs the apigroups. It looks like we depended on the import fo the clientset for this purpose.
2017-02-22 21:09:33 -08:00
Kubernetes Submit Queue
7cca0d1867 Merge pull request #41851 from janetkuo/deployment-duplicate-rs
Automatic merge from submit-queue (batch tested with PRs 38957, 41819, 41851, 40667, 41373)

Fix deployment helper - no assumptions on only one new ReplicaSet

#40415

**Release note**:

```release-note
NONE
```

@kubernetes/sig-apps-bugs
2017-02-22 19:59:34 -08:00
Kubernetes Submit Queue
6024f56f80 Merge pull request #38957 from aveshagarwal/master-taints-tolerations-api-fields
Automatic merge from submit-queue (batch tested with PRs 38957, 41819, 41851, 40667, 41373)

Change taints/tolerations to api fields

This PR changes current implementation of taints and tolerations from annotations to API fields. Taint and toleration are now part of `NodeSpec` and `PodSpec`, respectively. The annotation keys: `scheduler.alpha.kubernetes.io/tolerations` and `scheduler.alpha.kubernetes.io/taints`  have been removed.

**Release note**:
Pod tolerations and node taints have moved from annotations to API fields in the PodSpec and NodeSpec, respectively. Pod tolerations and node taints that are defined in the annotations will be ignored. The annotation keys: `scheduler.alpha.kubernetes.io/tolerations` and `scheduler.alpha.kubernetes.io/taints`  have been removed.
2017-02-22 19:59:31 -08:00
Janet Kuo
a8506813dc Generated: update staging GoDeps 2017-02-22 13:29:33 -08:00
Seth Jennings
258f54bdf4 fix staging godeps 2017-02-22 12:15:21 -06:00
Dr. Stefan Schimanski
595f4ed2cb Update generated files 2017-02-22 19:03:25 +01:00
Kubernetes Submit Queue
e43e663a53 Merge pull request #41650 from deads2k/api-02-godep
Automatic merge from submit-queue

add godep manifest files to staging repos

The staging repos should have manifests that match the godeps of kube so we know what they build against.  We don't need the actual vendored code, since a sync script on the other side needs to find the correct level of other staging directories and thus requires its own `godep restore && go get && godep save` cycle.

@sttts ptal
@lavalamp @caesarxuchao client-go needs a lot of unwinding to do something similar, but the idea is that you can run an acyclic path to get this updated by copying the types and dependencies with `go list`, then generate the clients, then generate this manifest.  Then in your sync script you can pull the proper levels and finish the actual vendoring.
2017-02-22 08:56:27 -08:00
Kubernetes Submit Queue
c58266c826 Merge pull request #41532 from ericchiang/kubectl-auth-providers
Automatic merge from submit-queue (batch tested with PRs 41349, 41532, 41256, 41587, 41657)

client-go: don't import client auth provider packages

Both of these auth providers are useful for kubectl but not so much for everyone importing client-go. Let users optionally import them (example [0]) and reduce the overall number of imports that client-go requires.

Quick grep seems to imply it wont import it after.

```
$ grep -r 'client-go/plugin/pkg/client/auth' staging/
staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go:	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go:	_ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
staging/src/k8s.io/client-go/examples/third-party-resources/main.go:	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/clientset.go:	_ "k8s.io/client-go/plugin/pkg/client/auth"
staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/clientset.go:	_ "k8s.io/client-go/plugin/pkg/client/auth"
```

closes https://github.com/kubernetes/client-go/issues/49
updates https://github.com/kubernetes/client-go/issues/79 (removes cloud.google.com/go import)

cc @kubernetes/sig-api-machinery-pr-reviews @kubernetes/sig-auth-pr-reviews 

```release-notes
client-go no longer imports GCP OAuth2 and OpenID Connect packages by default.
```

[0] 8b466d64c5/examples/third-party-resources/main.go (L34-L35)
2017-02-22 08:12:40 -08:00
Avesh Agarwal
9b640838a5 Change taint/toleration annotations to api fields. 2017-02-22 09:27:42 -05:00
Jordan Liggitt
4202489a89
regenerate clients 2017-02-22 08:54:13 -05:00
Jordan Liggitt
7b6ef2cedc
Switch watch prefixes to params 2017-02-22 08:54:08 -05:00
Jordan Liggitt
e6dbe5f57e
Pass typed options to dynamic client 2017-02-22 08:53:57 -05:00
Kubernetes Submit Queue
e1b174842a Merge pull request #41129 from atlassian/cleanup-client-example
Automatic merge from submit-queue (batch tested with PRs 41844, 41803, 39116, 41129, 41240)

Cleanup client example

**What this PR does / why we need it**:
- Package level `config` variable in `third-party-resources/main.go` is not used, it is shadowed by the one defined in `main()`. Should probably be deleted.
- Package level `kubeconfig ` variable in `out-of-cluster/main.go` is global - make it private to `main()`.

**Which issue this PR fixes**
This fixes https://github.com/kubernetes/client-go/issues/59, except the part about global `api.Scheme`, also adds test with interface check. Supersedes https://github.com/kubernetes/client-go/pull/61.

**Special notes for your reviewer**:
This is my first PR to Kubernetes :)
2017-02-22 05:48:43 -08:00
Kubernetes Submit Queue
e8ff10ce29 Merge pull request #39116 from caesarxuchao/fix-event-expansion
Automatic merge from submit-queue (batch tested with PRs 41844, 41803, 39116, 41129, 41240)

core/v1/event_expansion.go use v1.GetReference

Fix https://github.com/kubernetes/client-go/issues/47.
2017-02-22 05:48:40 -08:00
deads2k
4cd0b7cdbe redact detailed errors from healthz and expose in default policy 2017-02-22 07:52:13 -05:00
Cao Shufeng
0ec585c139 Ensure invalid username/password returns 401 error, not 403
If a user attempts to use basic auth, and the username/password combination
is rejected, the authenticator should return an error. This distinguishes
requests that did not provide username/passwrod (and are unauthenticated
without error) from ones that attempted to, and failed.
2017-02-22 04:52:05 -05:00
Wojciech Tyczynski
fc3de292be Merge pull request #41731 from heartlock/patch-2
fix misspell "roughly" in config.go
2017-02-22 08:51:27 +01:00
nikhiljindal
2dc404fcb7 Update REST Handler to return 202 for cascading deletion 2017-02-21 11:00:36 -08:00
nikhiljindal
4ee81eb037 Updating tests for deleted boolean from Delete() 2017-02-21 11:00:36 -08:00
nikhiljindal
1d32897eed Updating the registry to return whether the resource was immediately deleted 2017-02-21 11:00:35 -08:00
Chao Xu
ec00f67ab3 should use v1.GetReference 2017-02-21 10:35:17 -08:00
Eric Chiang
163f37f775 *: update codegen and bazel 2017-02-21 09:26:03 -08:00
Eric Chiang
58dde796ec client-go: don't import client auth provider packages 2017-02-21 09:26:03 -08:00
deads2k
0625db73db update godep.json files 2017-02-21 09:38:55 -05:00
deads2k
a53611ab3e add godep.json to staging repos 2017-02-21 09:38:55 -05:00
deads2k
22e10bbc29 remove cycle that snuck into tests 2017-02-21 08:03:48 -05:00
deads2k
ec91c009e7 tweak a list to a watch verb when requested 2017-02-21 07:48:38 -05:00
Kubernetes Submit Queue
43fec5afb5 Merge pull request #41685 from liggitt/edit-refactor-unknown-field
Automatic merge from submit-queue (batch tested with PRs 41709, 41685, 41754, 41759, 37237)

Tolerate unknown fields in strategic merge patch

When using `apply` or `edit` with an object that has a compiled-in struct, if an unknown server-side field is sent, or is present in a provided file, the strategic merge patch computation fails looking up type info from the go struct

If the field only exists in one side of the patch (is being added or removed), or is identical in both sides of the patch, we should tolerate missing type info, since it doesn't affect the patch.
2017-02-21 04:27:46 -08:00
Kubernetes Submit Queue
d70dc20e62 Merge pull request #39063 from xingzhou/kube-28678
Automatic merge from submit-queue (batch tested with PRs 41706, 39063, 41330, 41739, 41576)

Added bool type support for jsonpath.

Added keywords "true" and "false" for
supporting bool type in jsonpath.

Fixed #28678
2017-02-21 02:24:39 -08:00
Wojciech Tyczynski
ce37b18728 Don't use base64 encoding with etcd v3 2017-02-21 10:31:34 +01:00
StudyNick
dc460c3e15 'workqueue' modify 'work queue' 2017-02-21 16:59:16 +08:00
Wojciech Tyczynski
a21b08d00f Revert "Use watch param instead of deprecated /watch/ prefix" 2017-02-21 08:37:51 +01:00
Jordan Liggitt
06f7e71fd2
Allow strategic patch to deal with unknown fields that don't require merging 2017-02-20 20:40:03 -05:00
Kubernetes Submit Queue
79bef05f2d Merge pull request #36344 from anguslees/gophercloud
Automatic merge from submit-queue (batch tested with PRs 41756, 36344, 34259, 40843, 41526)

Migrate rackspace/gophercloud -> gophercloud/gophercloud

`gophercloud` is the go library we use to interact with openstack.  It has recently been renamed and incorporated a number of breaking code cleanups.  This change migrates the Kubernetes openstack code (openstack provider, keystone auth, cinder volumes) to the new library.

Fixes #30404

```release-note
The openstack cloud provider config no longer supports the deprecated `api-key` option. 
```

Note this PR doesn't change the rackspace provider.  It uses some rackspace-specific APIs and continues to use the older rackspace/gophercloud library.
2017-02-20 13:39:36 -08:00
Kubernetes Submit Queue
894b987a74 Merge pull request #41454 from fate-grand-order/patch-1
Automatic merge from submit-queue

fix misspell "underlying" in cacher.go
2017-02-20 11:22:40 -08:00
Kubernetes Submit Queue
dfacc61c5f Merge pull request #41722 from liggitt/watch-prefix
Automatic merge from submit-queue (batch tested with PRs 41421, 41440, 36765, 41722)

Use watch param instead of deprecated /watch/ prefix

Switches clients to use watch param instead of /watch/ prefix

```release-note
Clients now use the `?watch=true` parameter to make watch API calls, instead of the `/watch/` path prefix
```
2017-02-20 10:37:44 -08:00
Kubernetes Submit Queue
21ee9f208c Merge pull request #41421 from liggitt/patch-proxy
Automatic merge from submit-queue

Support PATCH operation in root proxy

Not sure if we want to continue to expand the root proxy capabilities, but if we do, this fixes #40383
2017-02-20 10:34:39 -08:00
jg Chen
268a1306b4 fix misspell "roughly" in config.go 2017-02-20 12:52:00 +08:00
Jordan Liggitt
029cf08e6f
regenerate clients 2017-02-19 23:51:59 -05:00
Jordan Liggitt
f950171003
Switch watch prefixes to params 2017-02-19 23:51:58 -05:00
Jordan Liggitt
308fdcd13f
Pass typed options to dynamic client 2017-02-19 22:12:55 -05:00
Angus Lees
c077c30004 Migrate rackspace/gophercloud -> gophercloud/gophercloud
This change migrates the 'openstack' provider and 'keystone'
authenticator plugin to the newer gophercloud/gophercloud library.

Note the 'rackspace' provider still uses rackspace/gophercloud.

Fixes #30404
2017-02-20 11:03:05 +11:00
Kubernetes Submit Queue
4a75c1b2aa Merge pull request #41617 from timothysc/affinity_annotations_flaggate
Automatic merge from submit-queue (batch tested with PRs 39373, 41585, 41617, 41707, 39958)

Feature-Gate affinity in annotations 

**What this PR does / why we need it**:
Adds back basic flaggated support for alpha Affinity annotations

**Special notes for your reviewer**:
Reconcile function is placed in the lowest common denominator, which in this case is schedulercache, because you can't place flag-gated functions in apimachinery. 

**Release note**:

```
NONE
```

/cc @davidopp
2017-02-19 13:50:40 -08:00
Kubernetes Submit Queue
eb8e1dd5f1 Merge pull request #41021 from jcbsmpsn/rotate-certificate
Automatic merge from submit-queue (batch tested with PRs 41043, 39058, 41021, 41603, 41414)

Rotate the kubelet certificate when about to expire.

Changes the kubelet so it doesn't use the cert/key files directly for
starting the TLS server. Instead the TLS server reads the cert/key from
the new CertificateManager component, which is responsible for
requesting new certificates from the Certificate Signing Request API on
the API Server.
2017-02-19 00:58:45 -08:00
Kubernetes Submit Queue
4bae7f18a5 Merge pull request #41043 from soltysh/issue20208
Automatic merge from submit-queue (batch tested with PRs 41043, 39058, 41021, 41603, 41414)

Allow setting replace patchStrategy for structs

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

@liggitt and @ymqytw ptal, you were in the original issue
2017-02-19 00:58:37 -08:00
Timothy St. Clair
2bcd63c524 Cleanup work to enable feature gating annotations 2017-02-18 09:25:57 -06:00
Robert Rati
32c4683242 Feature-Gate affinity in annotations 2017-02-18 09:08:38 -06:00
Jacob Simpson
855627e5cb Rotate the kubelet certificate when about to expire.
Changes the kubelet so it doesn't use the cert/key files directly for
starting the TLS server. Instead the TLS server reads the cert/key from
the new CertificateManager component, which is responsible for
requesting new certificates from the Certificate Signing Request API on
the API Server.
2017-02-17 17:42:35 -08:00
Wojciech Tyczynski
924e9a5b3a Unified unstructured converter interface and setup 2017-02-17 21:07:04 +01:00
Wojciech Tyczynski
975db6ff9a Detection of failed unstructured conversions. 2017-02-17 18:58:16 +01:00
Wojciech Tyczynski
edb36d4df7 Minor cleanup in unstructured converter 2017-02-17 18:56:55 +01:00
deads2k
612a8fafb8 add kube-aggregator to hyperkube 2017-02-17 08:13:11 -05:00
Dr. Stefan Schimanski
3a6469c5ac staging/src/*: run gofmt 2017-02-17 08:51:32 +01:00
Kubernetes Submit Queue
dfd4e6ba0b Merge pull request #41431 from jcbsmpsn/split-make-csr
Automatic merge from submit-queue (batch tested with PRs 38101, 41431, 39606, 41569, 41509)

Split MakeCSR for new signature.
2017-02-16 15:49:15 -08:00
Kubernetes Submit Queue
1e5f7c7641 Merge pull request #41514 from deads2k/agg-14-register-in-local
Automatic merge from submit-queue (batch tested with PRs 41505, 41484, 41544, 41514, 41022)

several issues hit while trying to make it easy to register APIs

I was trying to create a script that would register all API versions on a given server and ended up hitting several problems.  These are the fixes.

@sttts I suspect that I won't be able to continue down the host-network approach, since that means I won't be able to use in-cluster DNS without some finagling.  It *could* be set up (and we make it work as a for instance), but the simple enablement approach will be hosted on the infrastructure.  I'll go back to that.
2017-02-16 14:28:21 -08:00
Mikhail Mazurskiy
8af6cea1eb
Test for types 2017-02-17 08:42:46 +11:00
Mikhail Mazurskiy
70eef5b3e1
Remove global variables 2017-02-17 08:40:15 +11:00
Kubernetes Submit Queue
2509ab0c7a Merge pull request #41416 from smarterclayton/error_panic
Automatic merge from submit-queue (batch tested with PRs 41466, 41456, 41550, 41238, 41416)

Don't use json.Marshal when printing error bodies

Internal types panic when json.Marshal is called to prevent accidental
use.

Fixes #40491
2017-02-16 10:14:12 -08:00
deads2k
b53b7f2062 make the on-infrastructure of kube-aggregator case easier 2017-02-16 09:31:20 -05:00
deads2k
23b22d645e stop registering the same group multiple times 2017-02-16 09:28:55 -05:00
deads2k
a8409af5b5 add script to register everything 2017-02-16 09:28:55 -05:00
Dr. Stefan Schimanski
3a963b0da5 pkg/api/testing: add deepcopy smoke test to roundtrip test 2017-02-16 10:19:42 +01:00
Kubernetes Submit Queue
28123f959c Merge pull request #37137 from ingvagabund/stop-controller-when-the-stop-channel-is-closed
Automatic merge from submit-queue

Stop controller when the stop channel is closed (when queue is empty and Pop is hanging)

Fixes: #28158

When a ``Pop`` function is invoked over empty queue, the control loop inside the functions is stacked indefinitely. In order to break the loop, introduce logic that waits for a signal to exit the loop.

Intention of the PR is not to handle situation where manipulation operations are invoked over closed queue. Intention is to break the indefinite loop.
2017-02-15 19:35:48 -08:00
Kubernetes Submit Queue
92360ffc5f Merge pull request #41439 from deads2k/apiserver-12-sample-fuzz
Automatic merge from submit-queue (batch tested with PRs 41104, 41245, 40722, 41439, 41502)

add sample fuzzing tests

Make fuzzing tests as simple as possible from both the API installer and the scheme, so its easy to add for api groups and so that I can build a scheme and then make sure I got it right.

@kubernetes/sig-api-machinery-pr-reviews @sttts @mikedanese
2017-02-15 16:28:11 -08:00
Kubernetes Submit Queue
e73e25422f Merge pull request #40907 from cblecker/clientgo-pem-functions
Automatic merge from submit-queue

Move private key parsing from serviceaccount/jwt.go to client-go/util/cert

**What this PR does / why we need it**:
Unify private key parsing from serviceaccount/jwt.go into the client-go library.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*:
Partial fix to #40807 - only private key functions.

**Special notes for your reviewer**:

**Release note**:

```release-note
Move private key parsing from serviceaccount/jwt.go to client-go/util/cert
```
2017-02-15 14:26:34 -08:00
Clayton Coleman
45ec4e1151
Don't use json.Marshal when printing error bodies
Internal types panic when json.Marshal is called to prevent accidental
use.
2017-02-15 15:44:56 -05:00
Kubernetes Submit Queue
14bdeceeb4 Merge pull request #41474 from wojtek-t/debug_decode_parameters
Automatic merge from submit-queue (batch tested with PRs 41332, 41069, 41470, 41474)

Fix unnecessary conversions in parameter codec.

Fix #41472

@deads2k @smarterclayton @sttts
2017-02-15 10:10:12 -08:00
Kubernetes Submit Queue
a2e4d377ec Merge pull request #41470 from kubernetes/revert-41018-revert-40735-avoid_copy_in_cacher
Automatic merge from submit-queue (batch tested with PRs 41332, 41069, 41470, 41474)

"Avoid unnecessary copies in cacher""

This is resend of #40735 (which I reverted when I suspected it to cause issues). But the issue was a completely different. So it's safe to resubmit.
2017-02-15 10:10:10 -08:00
deads2k
2d5fe9d855 add sample fuzzing tests 2017-02-15 10:34:44 -05:00
Kubernetes Submit Queue
5802799e56 Merge pull request #40928 from deads2k/agg-01-local-up
Automatic merge from submit-queue

make kube-aggregator run as static pod for local-up-cluster

Runs the kube-aggregator as a static pod for local-up-cluster.  Looks like someone broke kubectl negotiation again, so I'll fix that up separately.

@kubernetes/sig-api-machinery-misc 
@lavalamp you're probably looking to run kube-aggregator as a static pod, here's an example.
@jwforres I'll make a secure variant for wiring up to openshift.
2017-02-15 07:25:07 -08:00
deads2k
45d274bb52 allow specification of core kubeconfig in aggregator 2017-02-15 09:00:10 -05:00
deads2k
c2ac9e5ca3 kube-aggregator manifests based on hostpath 2017-02-15 09:00:10 -05:00
Kubernetes Submit Queue
61ec96781b Merge pull request #41313 from sttts/sttts-apiserver-server-storage
Automatic merge from submit-queue (batch tested with PRs 41134, 41410, 40177, 41049, 41313)

apiserver: further cleanup of apiserver storage plumbing

- move kubeapiserver`s `RESTOptionsFactory` back to EtcdOptions by adding a `AddWithStorageFactoryTo`
- factor out storage backend `Config` construction from EtcdOptions
- move all `StorageFactory` related code into server/storage subpackage.

In short: remove my stomach ache about `kubeapiserver.RESTOptionsFactory`.

approved based on #40363
2017-02-15 05:58:32 -08:00
Wojciech Tyczynski
fb78390f83 Fix unnecessary conversions in parameter codec. 2017-02-15 14:03:02 +01:00
Wojciech Tyczynski
eb0420e44c Revert "Revert "Avoid unnecessary copies in cacher"" 2017-02-15 11:50:11 +01:00
Dr. Stefan Schimanski
5e77d01897 k8s.io/apiserver: straighten EtcdOptions, backend Config and kube RESTOptionsFactory 2017-02-15 10:24:59 +01:00
Dr. Stefan Schimanski
27e01b5c46 k8s.io/apiserver: fixup imports and renamed packages 2017-02-15 10:24:58 +01:00
Dr. Stefan Schimanski
bd41389754 k8s.io/apiserver: move server storage code into subpackage 2017-02-15 10:24:58 +01:00
Jordan Liggitt
9f8b803de8
Create bootstrap system:kube-scheduler role 2017-02-15 01:05:42 -05:00
Kubernetes Submit Queue
69649aa1ce Merge pull request #41413 from deads2k/agg-13-move
Automatic merge from submit-queue (batch tested with PRs 41378, 41413, 40743, 41155, 41385)

move kube-aggregator to staging

Straight move of kube-aggregator to staging.  The scripts are the interesting bits.

@sttts @lavalamp
2017-02-14 19:54:11 -08:00
fate-grand-order
e2a6c9f890 fix misspell "underlying" in cacher.go 2017-02-15 10:33:30 +08:00
Kubernetes Submit Queue
3604cdc6a9 Merge pull request #41418 from deads2k/api-02-conversions
Automatic merge from submit-queue (batch tested with PRs 41299, 41325, 41386, 41329, 41418)

move metav1 conversions to metav1

Conversions for `metav1` types belong in metav1 and should be registered when you register the types.

@mikedanese @luxas I think this is what you just hit in your fresh scheme.

@smarterclayton @lavalamp double check the sanity, but I think this does what people expect.
2017-02-14 11:42:40 -08:00
Kubernetes Submit Queue
f26890b801 Merge pull request #41329 from deads2k/cli-02-negotiation
Automatic merge from submit-queue (batch tested with PRs 41299, 41325, 41386, 41329, 41418)

stop senseless negotiation

Most client commands don't respect a negotiated version at all.  If you request a particular version, then of course it should be respected, but if you have none to request, then the current negotiation step doesn't return anything useful so we may as well have nothing so we can at least detect the situation.

@jwforres @kubernetes/sig-cli-pr-reviews 

Added a TODO to make the negotiate function useful.  I think I'm inclined to remove it entirely unless someone can come up with a useful reason to have it.
2017-02-14 11:42:38 -08:00
deads2k
1d40c3ff76 update scripts for new kube-aggregator location 2017-02-14 14:16:59 -05:00
deads2k
f44c288a21 bulk move of kube-aggregator 2017-02-14 14:16:59 -05:00
Jacob Simpson
f4d5af7297 Split MakeCSR for new signature. 2017-02-14 11:14:45 -08:00
Jordan Liggitt
e9a1eb4c24
Support PATCH operation in root proxy 2017-02-14 13:00:16 -05:00
deads2k
db0b0bd0f5 move metav1 conversions to metav1 2017-02-14 11:47:23 -05:00
deads2k
e063ca3e82 stop senseless negotiation 2017-02-14 08:49:14 -05:00
linyouchong
0d0f1bd26c fix spelling error of type store struct, in store.go 2017-02-14 17:42:49 +08:00
deads2k
5ae5829a1d sync client-go with listers and informers 2017-02-13 15:35:58 -05:00
deads2k
8312bc8334 add informers to client-go 2017-02-13 15:35:58 -05:00
Kubernetes Submit Queue
8621bd3e50 Merge pull request #41334 from deads2k/agg-07-snip-cli
Automatic merge from submit-queue

copy pkg/util/logs to apiserver

This is a copy, not a move.  API servers need to be able to init the logs, but so do clients.  It would be weird to have the client-side commands depending on the server side logs utilities.

I updated all the server side references, but left the client-side ones.

@sttts @kubernetes/sig-api-machinery-pr-reviews acceptable?
2017-02-13 12:19:03 -08:00
deads2k
78d8a8efa8 copy pkg/util/logs to apiserver 2017-02-13 12:07:15 -05:00
deads2k
2b6b02c6ba auto-create the loopback token 2017-02-13 11:18:34 -05:00
deads2k
ddd3efb075 sync client-go 2017-02-13 08:45:11 -05:00
Dr. Stefan Schimanski
f25ef92cd0 client-go: make examples and OWNERS authorative 2017-02-13 08:40:58 -05:00
Kubernetes Submit Queue
d46dc10b49 Merge pull request #41279 from apprenda/api-round-trip-docs
Automatic merge from submit-queue

updated docs in roundtrip.go to correct names

**What this PR does / why we need it**: updated docs in roundtrip.go to correct names.

**Release note**:
```release-note
NONE
```
2017-02-12 21:25:42 -08:00
Derek McQuay
ed645d0773
updated docs in roundtrip.go to correct names 2017-02-10 16:52:13 -08:00
Kubernetes Submit Queue
866aa73591 Merge pull request #36101 from jbeda/bootstrap-signer
Automatic merge from submit-queue (batch tested with PRs 38252, 41122, 36101, 41017, 41264)

BootstrapSigner and TokenCleaner controllers

This is part of https://github.com/kubernetes/features/issues/130 and is an implementation of https://github.com/kubernetes/community/pull/189.

Work that needs to be done yet in this PR:
* [ ] ~~e2e tests~~ Will come in new PR.
* [x] flag to disable this by default

```release-note
Native support for token based bootstrap flow.  This includes signing a well known ConfigMap in the `kube-public` namespace and cleaning out expired tokens.
```

@kubernetes/sig-cluster-lifecycle @dgoodwin @roberthbailey @mikedanese
2017-02-10 15:59:40 -08:00
Kubernetes Submit Queue
d7ae4161be Merge pull request #41122 from sttts/sttts-meta-deepcopy
Automatic merge from submit-queue (batch tested with PRs 38252, 41122, 36101, 41017, 41264)

Register deepcopy and defaulter funcs for metav1

Houston, we've had a problem here. ObjectMeta had used the reflection fallback path for deepcopy for probably some time.

Remark: my original plan for https://github.com/kubernetes/kubernetes/pull/36412 was/is to rebase that during the master branch freeze for 1.6 and get it merged just before master opens again. Otherwise, I fear it will be rebase hell. With https://github.com/kubernetes/kubernetes/pull/36412 these kind of errors are not possible anymore.
2017-02-10 15:59:39 -08:00
Kubernetes Submit Queue
c3d6b1ca48 Merge pull request #38252 from linyouchong/linyouchong-20161207
Automatic merge from submit-queue (batch tested with PRs 38252, 41122, 36101, 41017, 41264)

fix bug of runServer function in server.go

What this PR does / why we need it:
use parameter network instead of hardcode 'tcp' / the parameter network here is not equal to 'tcp'

**Special notes for your reviewer**:
NONE

**Release note**:
NONE
2017-02-10 15:59:37 -08:00
Joe Beda
20e1f8ea9b
Creates constants for bootstrap tokens.
Move these form core API to a separate package (pkg/bootstrap/api).

This also creates the constant for the new kube-public namespace.
2017-02-10 12:47:25 -08:00
linyouchong
d74ef65138 fix bug of runServer function in server.go 2017-02-10 23:48:12 +08:00
Kubernetes Submit Queue
e9de1b0221 Merge pull request #40992 from k82cn/rm_empty_line
Automatic merge from submit-queue (batch tested with PRs 41236, 40992)

Removed unnecessarly empty line.
2017-02-10 05:38:42 -08:00
Wojciech Tyczynski
2dd0f10dc4 Better tests for unrecognized types 2017-02-10 10:53:28 +01:00
Wojciech Tyczynski
9fb7f092d6 Simple optimization in structToUnstructured 2017-02-10 10:53:28 +01:00
Wojciech Tyczynski
449aade4ee Implement runtime.Object <-> map[string]interface{} conversion 2017-02-10 10:53:27 +01:00
Kubernetes Submit Queue
64f34eb5fa Merge pull request #41201 from deads2k/api-01-round-trip
Automatic merge from submit-queue (batch tested with PRs 41112, 41201, 41058, 40650, 40926)

make round trip testing generic

RoundTrip testing is something associated with a scheme and everyone who writes an API will want to do it.  In the end, we should wire each API group separately in a test scheme and have them all call this general function.  Once `kubeadm` is out of the main scheme, we'll be able to remove the one really ugly hack.

@luxas @sttts @kubernetes/sig-apimachinery-pr-reviews @smarterclayton
2017-02-10 01:40:42 -08:00
Kubernetes Submit Queue
558c37aee3 Merge pull request #41112 from janetkuo/no-watch-until
Automatic merge from submit-queue (batch tested with PRs 41112, 41201, 41058, 40650, 40926)

e2e test flakes: remove some uses of watch.Until in e2e tests

`watch.Until` is somewhat broken and is causing quite a lot of test flakes. See https://github.com/kubernetes/kubernetes/issues/39879#issuecomment-277966375 and https://github.com/kubernetes/kubernetes/issues/31345 for more context.

@wojtek-t @yujuhong @kargakis
2017-02-10 01:40:41 -08:00
Kubernetes Submit Queue
e538adcd00 Merge pull request #41074 from caesarxuchao/upstream-add-staging-to-gopath
Automatic merge from submit-queue

Add staging/ to gopath in copy.sh

An alternative to https://github.com/kubernetes/kubernetes/pull/40731.

Please check the last 2 commits of this branch out for an example run: https://github.com/caesarxuchao/kubernetes/tree/add-stagingto-gopath. I added package "validationchao" to apimachinery, and let k8s.io/kubernetes/pkg/client/generated_clientset/ depend on it, then I run hack/update-staging-client-go.sh, and it seems to work fine.

@sttts @deads2k @lavalamp
2017-02-09 16:51:15 -08:00
Kubernetes Submit Queue
2e005f5ace Merge pull request #40759 from ncdc/shared-informer-custom-resync-periods
Automatic merge from submit-queue (batch tested with PRs 41121, 40048, 40502, 41136, 40759)

Shared informer custom resync periods

**What this PR does / why we need it**: add the ability for event handlers to specify their own distinct resync periods to a shared informer

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

**Special notes for your reviewer**:

This is part of my series of PRs to convert as much of the code base to using generated shared informers as possible. Assuming this merges, we'll also need #40385, and I'll probably close #40097 and replace it with a series of individual PRs (1 per controller change).

Assuming we get close to agreement on the implementation, I can look at adding more unit tests.

**Release note**:

```release-note
```

@smarterclayton @deads2k @liggitt @sttts @derekwaynecarr @pmorie @lavalamp @wojtek-t @gmarek @timothysc @jayunit100 @kubernetes/sig-api-machinery-pr-reviews @kubernetes/sig-scalability-pr-reviews
2017-02-09 14:27:50 -08:00
Kubernetes Submit Queue
75887829bc Merge pull request #41136 from deads2k/apiserver-10-example
Automatic merge from submit-queue (batch tested with PRs 41121, 40048, 40502, 41136, 40759)

add k8s.io/sample-apiserver to demonstrate how to build an aggregated API server

builds on https://github.com/kubernetes/kubernetes/pull/41093

This creates a sample API server is a separate staging repo to guarantee no cheating with `k8s.io/kubernetes` dependencies.  The sample is run during integration tests (simple tests on it so far) to ensure that it continues to run.

@sttts @kubernetes/sig-api-machinery-misc ptal
@pwittrock @pmorie @kris-nova an aggregated API server example that will stay up to date.
2017-02-09 14:27:48 -08:00
deads2k
0a74353118 make round trip testing generic 2017-02-09 11:42:22 -05:00
Jan Chaloupka
615a5cc708 stop controller when the stop channel is closed and the queue is empty 2017-02-09 15:48:31 +01:00
Dr. Stefan Schimanski
ccb52d415d Register deepcopy and defaulter funcs for metav1 2017-02-09 08:58:28 +01:00
Andy Goldstein
c891998d00 Support per-handler resync periods
Add the ability for each event handler of a shared informer to specify
its own resync period. If not specified, a handler will resync at the
informer's default interval.
2017-02-08 20:38:17 -05:00
Andy Goldstein
0fdb33b25e Add NewTimer mockability to Clock 2017-02-08 20:38:17 -05:00
Maciej Szulik
5902597439 Allow setting replace patchStrategy for structs 2017-02-08 23:17:26 +01:00
Kubernetes Submit Queue
bd17091e16 Merge pull request #40815 from ncdc/delta-fifo-atomic-resync
Automatic merge from submit-queue (batch tested with PRs 40873, 40948, 39580, 41065, 40815)

Make DeltaFIFO Resync atomic

Make DeltaFIFO's Resync operation atomic, so it enqueues the entire
queue before allowing adds/updates/deletes.

I'm hoping to use this to help with custom resync periods for multiple event handlers against a single shared informer (see https://github.com/kubernetes/kubernetes/pull/40759#pullrequestreview-19598213 for the motivation).

@lavalamp @smarterclayton @deads2k @liggitt @sttts @timothysc @wojtek-t @gmarek @kubernetes/sig-api-machinery-pr-reviews @kubernetes/sig-scalability-pr-reviews
2017-02-08 14:14:48 -08:00
Janet Kuo
5a7929dc2d Address comments: watch.Until return private error errWatchClosed on channel closed 2017-02-08 10:42:18 -08:00
deads2k
7cb5463b26 create sample-apiserver repo for people to inspect 2017-02-08 10:35:29 -05:00
deads2k
470cb9d2c9 streamline etcd options for aggregated api server 2017-02-08 09:07:47 -05:00
Chao Xu
0d6bcf860c add staging/ to gopath
remove recursive staging folder
2017-02-08 01:02:22 -08:00
Kubernetes Submit Queue
fa14198bb2 Merge pull request #41083 from deads2k/apiserver-02-audit
Automatic merge from submit-queue (batch tested with PRs 38796, 40823, 40756, 41083, 41105)

Add more options to the RecommendedOptions struct.

Builds on https://github.com/kubernetes/kubernetes/pull/41028

Adds `AuditOptions` to the `RecommendedOptions`

@sttts @kubernetes/sig-api-machinery-pr-reviews
2017-02-08 00:49:49 -08:00
Kubernetes Submit Queue
79e333afe0 Merge pull request #40823 from liggitt/edit-tests
Automatic merge from submit-queue (batch tested with PRs 38796, 40823, 40756, 41083, 41105)

Add unit tests for interactive edit command

Before updating edit to use unstructured objects and use generic JSON patching, we need better test coverage of the existing paths. This adds unit tests for the interactive edit scenarios. 

This PR adds:
* Simple framework for recording tests for interactive edit:
  * record.go is a tiny test server that records editor and API inputs as test expectations, and editor and API outputs as playback stubs
  * record_editor.sh is a shell script that sends the before/after of an interactive `vi` edit to the test server
  * record_testcase.sh (see README) starts up the test server, sets up a kubeconfig to proxy to the test server, sets EDITOR to invoke record_editor.sh, then opens a shell that lets you use `kubectl edit` normally
* Adds test cases for the following scenarios:
  - [x] no-op edit (open and close without making changes)
  - [x] try to edit a missing object
  - [x] edit single item successfully
  - [x] edit list of items successfully
  - [x] edit a single item, submit with an error, re-edit, submit fixed successfully
  - [x] edit list of items, submit some with errors and some good, re-edit errors, submit fixed
  - [x] edit trying to change immutable things like name/version/kind, ensure preconditions prevent submission
  - [x] edit in "create mode" successfully (`kubectl create -f ... --edit`)
  - [x] edit in "create mode" introducing errors (`kubectl create -f ... --edit`)
* Fixes a bug with edit printing errors to stdout (caught when testing stdout/stderr against expected output)

Follow-ups:
- [ ] clean up edit code path
- [ ] switch edit to use unstructured objects
- [ ] make edit fall back to jsonmerge for objects without registered go structs (TPR, unknown versions of pods, etc)
- [ ] add tests:
  - [ ] edit TPR
  - [ ] edit mix of TPR and known objects
  - [ ] edit known object with extra field from server
  - [ ] edit known object with new version from server
2017-02-08 00:49:46 -08:00
Kubernetes Submit Queue
01c45f7de1 Merge pull request #41085 from deads2k/apiserver-07-move-runtime-config
Automatic merge from submit-queue (batch tested with PRs 41061, 40888, 40664, 41020, 41085)

move --runtime-config to kubeapiserver

`--runtime-config` is only useful if you have a lot of API groups in one server.  If you have a single API group in your server (the vast majority of aggregated API servers), then the flag is unneeded and relatively complex.  This moves it to closer to point of use.

@sttts
2017-02-07 23:06:43 -08:00
Kubernetes Submit Queue
bc60def8a8 Merge pull request #40664 from smarterclayton/etcd_data_wrapper
Automatic merge from submit-queue (batch tested with PRs 41061, 40888, 40664, 41020, 41085)

Allow values to be wrapped prior to serialization in etcd

This adds a new value transformer to the etcd2 store that can transform
the value from etcd on read and write. This will allow the store to
implement encryption at rest or otherwise transform the value prior to
persistence.

* [x] etcd3 store
* [x] example of transformation
* [x] partial error handling

This is in support of #12742
2017-02-07 23:06:40 -08:00
Janet Kuo
51c7570ae1 Fix incorrect error message in watch.Until 2017-02-07 16:51:35 -08:00
deads2k
b410b387ee move storage serialization type to etcd options 2017-02-07 13:56:19 -05:00
deads2k
cc75d51897 add feature enablement options to recommendedoptions 2017-02-07 13:56:19 -05:00
deads2k
226af4adc4 move --runtime-config to kubeapiserver 2017-02-07 13:43:13 -05:00
deads2k
51b5d5a51b move auditoptions to separate struct 2017-02-07 13:03:08 -05:00
deads2k
cfbdbb4450 add recommended aggregated api server options 2017-02-07 12:55:39 -05:00
Kubernetes Submit Queue
42973b0523 Merge pull request #40947 from deads2k/apiserver-04-invert
Automatic merge from submit-queue (batch tested with PRs 41023, 41031, 40947)

apiserver command line options lead to config

Logically command line options lead to config, not the other way around.  We're clean enough now we can actually do the inversion.

WIP because I have some test cycles to fix, but this is all the meat.

@kubernetes/sig-api-machinery-misc
2017-02-07 09:04:41 -08:00
Kubernetes Submit Queue
03db7eac03 Merge pull request #41023 from deads2k/apiserver-05-config-move
Automatic merge from submit-queue (batch tested with PRs 41023, 41031, 40947)

move admission read logic to apiserver

Promised followup to https://github.com/kubernetes/kubernetes/pull/40943

@sttts @kubernetes/sig-api-machinery-misc
2017-02-07 09:04:38 -08:00
Kubernetes Submit Queue
3f6dd889f3 Merge pull request #40985 from p0lyn0mial/add_shortnames_to_discovery_api
Automatic merge from submit-queue (batch tested with PRs 40980, 40985)

added short names for resources which are exposed during discovery

**What this PR does / why we need it**:
The changes add short names for resources. The short names will be delivered to kubectl during discovery.
2017-02-07 06:21:10 -08:00
deads2k
250408ee9c apiserver command line options lead to config 2017-02-07 07:57:11 -05:00
deads2k
58992ce8d2 move admission read logic 2017-02-07 07:44:14 -05:00
Wojciech Tyczynski
8985c6ba4f Fix incorrect watch cache sizes 2017-02-07 09:44:31 +01:00
Kubernetes Submit Queue
821e171247 Merge pull request #35950 from nikhiljindal/nsdelreuse
Automatic merge from submit-queue

federation: Refactoring namespaced resources deletion code from kube ns controller and sharing it with fed ns controller

Ref https://github.com/kubernetes/kubernetes/issues/33612

Refactoring code in kube namespace controller to delete all resources in a namespace when the namespace is deleted. Refactored this code into a separate NamespacedResourcesDeleter class and calling it from federation namespace controller.
This is required for enabling cascading deletion of namespaced resources in federation apiserver.
Before this PR, we were directly deleting the namespaced resources and assuming that they go away immediately. With cascading deletion, we will have to wait for the corresponding controllers to first delete the resources from underlying clusters and then delete the resource from federation control plane. NamespacedResourcesDeleter has this waiting logic.

cc @kubernetes/sig-federation-misc @caesarxuchao @derekwaynecarr @mwielgus
2017-02-06 18:10:58 -08:00
p0lyn0mial
b2cce0ac8e added short names for resources which are exposed during discovery 2017-02-06 23:35:07 +01:00
Kubernetes Submit Queue
44a3cd123f Merge pull request #40930 from deads2k/kubectl-01-negotiation
Automatic merge from submit-queue (batch tested with PRs 40930, 40951)

update negotiation to reflect current kubectl state

Very few things actually require negotiation, but the client-cache attempts it all the time.  If you've explicitly requested one, you still fail.  If you haven't requested one and the server doesn't have one, you still get the client behavior.  After this, if you haven't requested one and the client and server don't have one, you simply get an empty you can interpret how you choose.

@lavalamp without this, you're unable to use `kubectl` against arbitrary servers.
2017-02-06 14:27:04 -08:00
Kubernetes Submit Queue
b87adb21b1 Merge pull request #40943 from deads2k/apiserver-01-admission-types
Automatic merge from submit-queue (batch tested with PRs 40943, 40967)

switch admission serialized config to an apiserver type

Switches the kube admission config from componentconfig to the new `apiserver.k8s.io` group so that all API servers can use the shared configuration.  This switch external serialization, but it does not move the code that reads the config.  I'd like to do that as a follow-on.

@kubernetes/sig-api-machinery-misc @kubernetes/api-reviewers @smarterclayton 
@derekwaynecarr ptal
@sttts
2017-02-06 12:22:54 -08:00
nikhiljindal
74676f6995 Updating federation namespace controller to share namespaced resources deletion code with kube namespace controller 2017-02-06 10:50:40 -08:00
deads2k
75841dc4f1 switch admission serialized config to an apiserver type 2017-02-06 11:38:08 -05:00
deads2k
ce86ef5518 add apiserver API group for structured configuration 2017-02-06 11:22:45 -05:00
Wojciech Tyczynski
f616f06764 Revert "Avoid unnecessary copies in cacher" 2017-02-06 16:50:44 +01:00
Kubernetes Submit Queue
6f37347fce Merge pull request #40931 from deads2k/owners-05-liggitt
Automatic merge from submit-queue

add liggitt to apimachinery/apiserver packages

Add @liggitt to apimachinery and apiserver packages.
2017-02-06 06:45:26 -08:00
Clayton Coleman
bc4b50640b
Allow ValueTransformer to indicate resource is stale
Allows a transformer (such as an encrypter) to force an update if a new
key is in use, thus allowing simple writes to the REST layer to
trivially migrate keys.
2017-02-05 22:47:30 -05:00
Clayton Coleman
4313bc6df3
Allow values to be wrapped prior to serialization in etcd3 2017-02-05 22:47:29 -05:00
Clayton Coleman
36df93826a
Allow values to be wrapped prior to serialization in etcd2
This adds a new value transformer to the etcd2 store that can transform
the value from etcd on read and write. This will allow the store to
implement encryption at rest or otherwise transform the value prior to
persistence.
2017-02-05 22:47:29 -05:00
Klaus Ma
cc26fe6ee9 Removed unnecessarly empty line. 2017-02-06 11:10:34 +08:00