Commit Graph

17769 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
59bd66ce3e Merge pull request #39152 from liggitt/json-tags
Automatic merge from submit-queue (batch tested with PRs 39152, 39142, 39055)

Add test for json tags on internal and external types

Follow up from https://github.com/kubernetes/kubernetes/pull/38406

- adds static analysis tests preventing internal types from adding new json or protobuf tags
- adds static analysis tests requiring json tags on external types (and enforcing lower-case first letter)
- fixes issues found by the tests
2016-12-27 17:10:11 -08:00
Kubernetes Submit Queue
745928aa43 Merge pull request #39213 from k82cn/k8s_33936_master
Automatic merge from submit-queue (batch tested with PRs 38909, 39213)

Add TLS conf for Go1.7

fixes #33936 / #38596  in master
2016-12-27 16:14:12 -08:00
Jing Xu
3fbf68ef68 Add path exist check in getPodVolumePathListFromDisk
Add the path exist check in the function. If the path does not exist,
return empty list and nil error.
2016-12-27 13:32:13 -08:00
Kubernetes Submit Queue
9ce8f10a4d Merge pull request #39172 from foxish/fix-help
Automatic merge from submit-queue

Add PDB to kubectl get --help.

**What this PR does / why we need it**: Adds PDB to kubectl get --help

**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/39100

**Release note**:

```release-note
NONE
```

/cc @saad-ali @mwielgus
2016-12-27 13:19:36 -08:00
Kubernetes Submit Queue
b6d7fa7d5f Merge pull request #39021 from wojtek-t/retry_conn_reset_by_peer
Automatic merge from submit-queue

Automatically retry "connection reset by peer" errors

Ref #38776
2016-12-27 13:19:27 -08:00
Wojciech Tyczynski
9a4828821d Retry connection reset by peer 2016-12-27 10:01:42 +01:00
Tim Hockin
64f5b050a1 Fix race in service nodeport allocator repair loop 2016-12-26 21:59:28 -08:00
Tim Hockin
103b7c01c1 Add a ForEach() to port allocator 2016-12-26 21:59:28 -08:00
Tim Hockin
0777ecd030 Fix race in service IP allocation repair loop 2016-12-26 21:59:27 -08:00
Tim Hockin
2b5a10f8ff Add a ForEach() to IP allocator 2016-12-26 21:59:27 -08:00
Tim Hockin
f75bed8682 Add a ForEach() to bitmap allocator 2016-12-26 21:59:27 -08:00
Harry Zhang
5a7661b483 Raise markVolMountedErr instead of mount err 2016-12-26 07:52:51 +00:00
Kubernetes Submit Queue
1ee7163308 Merge pull request #36802 from brendandburns/i18n
Automatic merge from submit-queue

Begin paths for internationalization in kubectl

This is just the first step, purposely simple so we can get the interface correct.

@kubernetes/sig-cli @deads2k
2016-12-24 13:09:12 -08:00
Klaus Ma
3bfe14b316 Add TLS conf for Go1.7 2016-12-24 15:36:45 +08:00
Brendan Burns
277306449b Add initial translation support. 2016-12-23 20:45:52 -08:00
Kubernetes Submit Queue
24b3f6c494 Merge pull request #39181 from lukaszo/defaulting
Automatic merge from submit-queue (batch tested with PRs 38460, 39181)

Increase number of iterations in TestDefaulting
2016-12-23 10:51:28 -08:00
Kubernetes Submit Queue
1d7538f87e Merge pull request #38460 from xilabao/remove-duplicate-wrapUpdatedObjectInfo
Automatic merge from submit-queue

remove wrapUpdatedObjectInfo from rbac storage

update by TODO
2016-12-23 10:18:12 -08:00
Kubernetes Submit Queue
b3fb6cb5fb Merge pull request #35191 from SamiHiltunen/commas-in-secrets
Automatic merge from submit-queue

kubectl: commas in --from-literal on secret creation

Closes #35185

``` release-note
Fixes an issue where commas were not accepted in --from-literal flags when creating secrets. Passing multiple values separated by a comma in a single --from-literal flag is no longer supported. Please use multiple --from-literal flags to provide multiple values.
```
2016-12-23 08:04:50 -08:00
Kubernetes Submit Queue
1c2a23e48c Merge pull request #39014 from resouer/fix-nil-glusterfs
Automatic merge from submit-queue (batch tested with PRs 39029, 39014)

[Glusterfs Vol Plugin]: Check kube client is invalid and return error

Fixes: #38939

In volume plugins, we need to create a kube client to make api call. And this kube client can be nil when, for example, wrong api-server configuration, but kubelet should not crash in this case.

I have also checked other plugins and found only glusterfs need this fix.
2016-12-23 06:39:29 -08:00
Kubernetes Submit Queue
48793a48d4 Merge pull request #34273 from wlan0/master
Automatic merge from submit-queue (batch tested with PRs 39093, 34273)

start breaking up controller manager into two pieces

This PR addresses: https://github.com/kubernetes/features/issues/88

This commit starts breaking the controller manager into two pieces, namely,
1. cloudprovider dependent piece
2. coudprovider agnostic piece

the controller manager has the following control loops -
- nodeController
- volumeController
- routeController
- serviceController
- replicationController
- endpointController
- resourceQuotaController
- namespaceController
- deploymentController 
  etc..

among the above controller loops,
- nodeController
- volumeController
- routeController
- serviceController

are cloud provider dependent. As kubernetes has evolved tremendously, it has become difficult
for different cloudproviders (currently 8), to make changes and iterate quickly. Moreover, the
cloudproviders are constrained by the kubernetes build/release lifecycle. This commit is the first
step in moving towards a kubernetes code base where cloud providers specific code will move out of
the core repository, and will be maintained by the cloud providers themselves.

I have added a new cloud provider called "external", which signals the controller-manager that
cloud provider specific loops are being run by another controller. I have added these changes in such
a way that the existing cloud providers are not affected. This change is completely backwards compatible, and does not require any changes to the way kubernetes is run today.

Finally, along with the controller-manager, the kubelet also has cloud-provider specific code, and that will be addressed in a different commit/issue.

@alena1108 @ibuildthecloud @thockin @dchen1107 

**Special notes for your reviewer**:

@thockin - Im making this **WIP** PR to ensure that I don't stray too far from everyone's view of how we should make this change. As you can see, only one controller, namely `nodecontroller` can be disabled with the `--cloudprovider=external` flag at the moment. I'm working on cleaning up the `rancher-controller-manger` that I wrote to test this.

Secondly, I'd like to use this PR to address cloudprovider specific code in kubelet and api-server.

**Kubelet**
Kubelet uses provider specific code for node registration and for checking node-status. I thought of two ways to divide the kubelet: 
- We could start a cloud provider specific kubelet on each host as a part of kubernetes, and this cloud-specific-kubelet does node registration and node-status checks. 
- Create a kubelet plugin for each provider, which will be started by kubelet as a long running service. This plugin can be packaged as a binary.

I'm leaning towards the first option. That way, kubelet does not have to manage another process, and we can offload the process management of the cloud-provider-specific-kubelet to something like systemd. 

@dchen1107 @thockin what do you think?

**Kube-apiserver**

Kube-apiserver uses provider specific code for distributing ssh keys to all the nodes of a cluster. Do you have any suggestions about how to address this? 

**Release note**:

``` release-note
```
2016-12-23 01:25:28 -08:00
Kubernetes Submit Queue
58d319e589 Merge pull request #39093 from dgoodwin/token-default
Automatic merge from submit-queue

kubeadm: Default to using token discovery.

Recent changes to support multiple methods for discovery meant that
"kubeadm init" no longer was sufficient and users would need to add
"--discovery token://" to achieve the same results.

Instead lets assume discovery if the user does not specify anything else
to maintain parity and the brevity of our original instructions.


**Release note**:

```release-note
NONE
```

CC @mikedanese @luxas
2016-12-23 01:20:00 -08:00
Kubernetes Submit Queue
5f0ece92de Merge pull request #39008 from brendandburns/unicode
Automatic merge from submit-queue

Support loading UTF16 files if a byte-order-mark is present

Add support in kubectl for loading UTF16 encoded files if they have a correct BOM (Byte-Order-Mark https://en.wikipedia.org/wiki/Byte_order_mark) at the beginning
of the file. Falls back on UTF8 encoding, if no understandable BOM is present.

Fixes part of https://github.com/kubernetes/kubernetes/issues/39007

@fabianofranz @deads2k @kubernetes/sig-cli-misc
2016-12-22 22:11:13 -08:00
Kubernetes Submit Queue
c200f27245 Merge pull request #38090 from xingzhou/kube-37654
Automatic merge from submit-queue (batch tested with PRs 38920, 38090)

Improve error message for name/label validation.

Instead of just providing regex in name/label validation error output, we need to add the naming rules of the name/label, which is more end-user readable.

Fixed #37654
2016-12-22 22:00:30 -08:00
Kubernetes Submit Queue
ff8e8c6778 Merge pull request #38920 from k82cn/k8s_37979
Automatic merge from submit-queue

Add event when failed to open local port.

fixes #37979 .
2016-12-22 21:32:27 -08:00
Kubernetes Submit Queue
f1aa025837 Merge pull request #38655 from abrarshivani/fsGroupforvSphere
Automatic merge from submit-queue (batch tested with PRs 39059, 39175, 35676, 38655)

Fix fsGroup to vSphere

**What this PR does / why we need it**:
Fixes #34039 by adding support for fsGroup to vSphere Volume. 

**Special notes for your reviewer**:
Tested with example from http://stackoverflow.com/questions/35213589/docker-container-with-non-root-user-deployed-in-google-container-engine-can-not
Before this fix got error ```Permission Denied```.

**Release note**:

`NONE`

cc @pdhamdhere @kerneltime @BaluDontu
2016-12-22 18:50:34 -08:00
Kubernetes Submit Queue
af54124f23 Merge pull request #35676 from krmayankk/contr-ref
Automatic merge from submit-queue (batch tested with PRs 39059, 39175, 35676, 38655)

ReplicaSet has onwer ref of the Deployment that created it

**What this PR does / why we need it**:
This enabled garbage collection for ReplicaSets and ensures they are owned by their respective Deployment objects.

fixes https://github.com/kubernetes/kubernetes/issues/33845

This is an initial PR to get feedback. Will update this quickly with unit tests if this seems like in the right direction
2016-12-22 18:50:32 -08:00
Kubernetes Submit Queue
d04fd1bd6c Merge pull request #39059 from bprashanth/static_evict
Automatic merge from submit-queue

Don't evict static pods

A follow up to https://github.com/kubernetes/kubernetes/pull/38914, the desired behavior is to:    

1. deprioritize critical pods
2. never evict static pods

I don't think 1 needs a cherrypick if 2 goes in. 

partial fix for #https://github.com/kubernetes/kubernetes/issues/38322
2016-12-22 18:21:42 -08:00
Łukasz Oleś
84d0a5d1d9 Increase number of iterations in TestDefaulting
Fixes #39180
2016-12-23 03:04:32 +01:00
Kubernetes Submit Queue
ae4db79d1c Merge pull request #39118 from bowei/cleanup-dns
Automatic merge from submit-queue (batch tested with PRs 39006, 39078, 37188, 39118)

Cleanup dns

* Remove hostname endpoints annotation (was beta feature)
* Remove references to non-client-go API
* Replaces references to internal kubernetes API with client-go.
2016-12-22 17:47:31 -08:00
Kubernetes Submit Queue
0a750599fd Merge pull request #37188 from NickrenREN/context_test
Automatic merge from submit-queue (batch tested with PRs 39006, 39078, 37188, 39118)

add test functions in context_test.go
2016-12-22 17:47:30 -08:00
Kubernetes Submit Queue
7f60e1dc04 Merge pull request #39078 from wojtek-t/fix_missing_watch_events
Automatic merge from submit-queue (batch tested with PRs 39006, 39078, 37188, 39118)

Fix bug of missing random watch events in the event stream

Fix #39072
2016-12-22 17:47:28 -08:00
Kubernetes Submit Queue
dba16d052c Merge pull request #39006 from fabianofranz/issues_38834
Automatic merge from submit-queue

In-cluster configs must take flag overrides into account

**What this PR does / why we need it**: Some flags must override in-cluster configs if provided to `kubectl` inside a cluster.

**Which issue this PR fixes**: Fixes https://github.com/kubernetes/kubernetes/issues/38834

**Release note**:
```release-note
Fixed a bug where the --server, --token, and --certificate-authority flags were not overriding the related in-cluster configs when provided in a `kubectl` call inside a cluster.
```
2016-12-22 17:42:27 -08:00
Mayank Kumar
777977612b ReplicaSet has owner ref of the Deployment that created it 2016-12-22 16:45:50 -08:00
bprashanth
1743c6b6ab Don't evict static pods 2016-12-22 16:22:14 -08:00
Anirudh
7f0bcb3688 Add PDB to kubectl get --help. 2016-12-22 14:47:11 -08:00
wlan0
75da310757 sanitize names and add more comments, and other essential boilerplate changes 2016-12-22 14:37:15 -08:00
wlan0
1e48fd18cb add cloud-controller-manager as the first step in breaking controller-manager 2016-12-22 14:37:15 -08:00
wlan0
731616e0b2 start breaking up controller manager into two pieces
Addresses: kubernetes/features#88

This commit starts breaking the controller manager into two pieces, namely,

1. cloudprovider dependent piece
2. coudprovider agnostic piece

the controller manager has the following control loops -

   - nodeController
   - volumeController
   - routeController
   - serviceController
   - replicationController
   - endpointController
   - resourcequotacontroller
   - namespacecontroller
   - deploymentController etc..

among the above controller loops,

   - nodeController
   - volumeController
   - routeController
   - serviceController

are cloud provider dependent. As kubernetes has evolved tremendously, it has become difficult
for different cloudproviders (currently 8), to make changes and iterate quickly. Moreover, the
cloudproviders are constrained by the kubernetes build/release lifecycle. This commit is the first
step in moving towards a kubernetes code base where cloud providers specific code will move out of
the core repository, and will be maintained by the cloud providers themselves.

Finally, along with the controller-manager, the kubelet also has cloud-provider specific code, and that will
be addressed in a different commit/issue.
2016-12-22 14:37:14 -08:00
Klaus Ma
b0dfa4ad47 Add event when failed to open local port. 2016-12-23 04:51:12 +08:00
Bowei Du
820062897e Remove references to non-client-go API
Replaces references to internal kubernetes API with client-go.
2016-12-22 11:06:23 -08:00
Wojciech Tyczynski
d31ff83fdc Fix bug of delivering random parts of events 2016-12-22 20:03:38 +01:00
Devan Goodwin
bf69fb1747 kubeadm: Default to using token discovery.
Recent changes to support multiple methods for discovery meant that
"kubeadm init" no longer was sufficient and users would need to add
"--discovery token://" to achieve the same results.

Instead lets assume discovery if the user does not specify anything else
to maintain parity and the brevity of our original instructions.
2016-12-22 12:54:34 -04:00
Fabiano Franz
bdea92bccd In-cluster configs must take flag overrides into account 2016-12-22 14:22:01 -02:00
Kubernetes Submit Queue
fc41bc6ec6 Merge pull request #39091 from deads2k/api-54-move-authn
Automatic merge from submit-queue

remove unneeded authenticator dependencies from genericapiserver

Refactors the authenticator options to remove unneeded dependencies.

@sttts
2016-12-22 06:48:24 -08:00
Jordan Liggitt
0a80b412ef Fix json tags 2016-12-22 09:32:58 -05:00
Jordan Liggitt
0e028b3964 Add test for json tags in internal/external types 2016-12-22 09:32:57 -05:00
Kubernetes Submit Queue
38882c3727 Merge pull request #37537 from xilabao/extend-err-info-when-authorize-failed
Automatic merge from submit-queue

extend err info when authorize failed

if rolebinding related to a non-existent role,  kubectl get po will return a error.

old result:
```shell
$ kubectl --token=/test get po
Error from server (InternalError): an error on the server ("Internal Server Error: \"/api/v1/namespaces/default/pods\"") has prevented the request from succeeding (get pods)
```
new result (output the reason):
```shell
$ kubectl --token=hi/test get po
Error from server (Forbidden): User "hi" cannot list pods in the namespace "default".: "role.rbac.authorization.k8s.io \"admin-resource-role\" not found" (get pods)
```

test.yaml
```
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name:  admin-resource-binding
  namespace: default
subjects:
  - kind: Group
    name: test
roleRef:
  kind: Role
  name: admin-resource-role
```
2016-12-22 06:10:37 -08:00
deads2k
ab1b77673f decouple genericapiserver from non-generic authenticator 2016-12-22 07:48:08 -05:00
deads2k
a3564c0aa8 start kubeapiserver package for sharing between kubeapiserver and federation 2016-12-22 07:43:42 -05:00
Kubernetes Submit Queue
ab91500f15 Merge pull request #39068 from NickrenREN/imageManager-start
Automatic merge from submit-queue (batch tested with PRs 39076, 39068)

fix image manager Start() function return
2016-12-22 00:27:30 -08:00