Commit Graph

3825 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
e63cab78ca Merge pull request #41409 from luxas/kubeadm_bump_dns
Automatic merge from submit-queue (batch tested with PRs 41382, 41407, 41409, 41296, 39636)

Update the DNS spec from upstream

**What this PR does / why we need it**:
Updates kubeadm to use the latest DNS spec.

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

@bowei @MrHohn @thockin  In the future, kubedns changes should be applied to this kubeadm file as well

**Release note**:

```release-note
NONE
```

@pires @errordeveloper @dmmcquay @mikedanese
2017-02-14 13:04:23 -08:00
Andy Goldstein
65fe722643 Switch serviceaccounts controller to generated shared informers 2017-02-14 14:21:14 -05:00
deads2k
f44c288a21 bulk move of kube-aggregator 2017-02-14 14:16:59 -05:00
Derek McQuay
d8653bcfd0 kubeadm: add dmmcquay as a reviewer 2017-02-14 10:16:04 -08:00
Andy Goldstein
d820e3928c Switch resourcequota controller to shared informers 2017-02-14 12:20:27 -05:00
Kubernetes Submit Queue
b816410b1e Merge pull request #41350 from apprenda/kubeadm_util_tests
Automatic merge from submit-queue (batch tested with PRs 41337, 41375, 41363, 41034, 41350)

kubeadm: adding tests for util/tokens.go

**What this PR does / why we need it**: added tests to util pkg and raised coverage from ~48% to ~67%.  Will get better coverage once migration to client-go is complete.  Included a fix for a logic error in tokens.go found through writing tests

Adding unit tests is a WIP from #34136

**Special notes for your reviewer**: /cc @luxas @pires 

**Release note**:
```release-note
NONE
```
2017-02-14 09:11:26 -08:00
Kubernetes Submit Queue
bc29bb02e5 Merge pull request #41403 from deads2k/agg-12-all
Automatic merge from submit-queue

Remove all aggregator dependencies on k8s.io/kubernetes

This removes the last links to k8s.io/kubernetes for the aggregator.

@sttts last commit.
2017-02-14 09:11:21 -08:00
Kubernetes Submit Queue
f85fc7da81 Merge pull request #41363 from jingxu97/Feb/syncVolumePeriod
Automatic merge from submit-queue

Change default attach_detach_controller reconciler sync period to 1 minute

When default reconciler sync period is set to 5 second, we often see
rateLimit issue for a large cluster. This PR is changing the period to 1
minute to mitigate this problem.

Make this period longer means that there might be some period of time
that the cached information in master's attach_detach_controller is out
of date. The node might use this information to mount to the wrong
device. For GCE PD, since device path is uniquely associated with volume
id, so mount operation will just fail because of this outdated
information. For AWS, before kubelet might mount to the wrong volume
because device path could be reused immediately once it is available.
But after PR #38818, device path will only be reused after all device
paths have been explored. That means it is very unlikely that kubelet will
mount to a wrong volume that is using the old device path that had been
assigned to the same node.

**Release note**:

```release-note
We change the default attach_detach_controller sync period to 1 minute to reduce the query frequency through cloud provider to check whether volumes are attached or not. 
```
2017-02-14 09:11:08 -08:00
Lucas Käldström
b32e6040e3 Update the DNS spec from upstream 2017-02-14 16:33:44 +02:00
deads2k
1f6fd8d1f1 remove kubernetes dependencies from kube-aggregator 2017-02-14 09:10:11 -05:00
deads2k
e60b16fea8 remove cmdutil dependency 2017-02-14 09:03:13 -05:00
Kubernetes Submit Queue
739f4ffe0e Merge pull request #41230 from xilabao/fix-token-validation-in-kubeadm
Automatic merge from submit-queue (batch tested with PRs 41342, 41257, 41295, 41367, 41230)

fix token validation in kubeadm

fix https://github.com/kubernetes/kubeadm/issues/157
2017-02-13 23:48:09 -08:00
Kubernetes Submit Queue
416c1a498e Merge pull request #41367 from apprenda/kubeadm_validation_pkg_tests
Automatic merge from submit-queue (batch tested with PRs 41342, 41257, 41295, 41367, 41230)

kubeadm: unit tests for apis/kubeadm/validation

**What this PR does / why we need it**: added tests to apis/kubeadm/validation pkg and raised coverage from ~21% to 100%.  

Adding unit tests is a WIP from #34136

**Special notes for your reviewer**: /cc @luxas @pires 

**Release note**:
```release-note
NONE
```
2017-02-13 23:48:07 -08:00
Kubernetes Submit Queue
3ada0514b0 Merge pull request #41295 from andrewrynhard/sa_key
Automatic merge from submit-queue (batch tested with PRs 41342, 41257, 41295, 41367, 41230)

Use a dedicated key for service account token signing

**What this PR does / why we need it**:
See https://github.com/kubernetes/kubeadm/issues/146

**Special notes for your reviewer**:
`pki_helpers.go` had to be refactored a bit to allow one-off cert/key generation.

```
bash-4.2# cat /etc/kubernetes/manifests/kube-apiserver.yaml | grep service-account
    - --service-account-key-file=/etc/kubernetes/pki/sa.key
bash-4.2# cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep service-account
    - --service-account-private-key-file=/etc/kubernetes/pki/sa.key
bash-4.2# ls /etc/kubernetes/pki/
apiserver.crt  apiserver-kubelet-client.crt  ca.crt  sa.key
apiserver.key  apiserver-kubelet-client.key  ca.key  tokens.csv
bash-4.2# kubectl get pods -n kube-system
NAME                                 READY     STATUS    RESTARTS   AGE
dummy-2165365107-nt0xm               1/1       Running   0          11m
kube-apiserver-k8s-master            1/1       Running   0          11m
kube-controller-manager-k8s-master   1/1       Running   0          11m
kube-discovery-2187510969-gp26r      1/1       Running   0          11m
kube-dns-421332118-58tl8             3/3       Running   0          11m
kube-flannel-ds-03cvf                2/2       Running   0          7m
kube-flannel-ds-llxw5                2/2       Running   0          7m
kube-proxy-j8jhz                     1/1       Running   0          11m
kube-proxy-z761d                     1/1       Running   0          8m
kube-scheduler-k8s-master            1/1       Running   0          11m
```

@luxas @liggitt @pires
2017-02-13 23:48:05 -08:00
Kubernetes Submit Queue
d4e2699a48 Merge pull request #41342 from apprenda/kubeadm_token_panic_fix
Automatic merge from submit-queue (batch tested with PRs 41342, 41257)

kubeadm: fix to avoid panic if token not provided

**What this PR does / why we need it**: Prior to this, kubeadm would panic if no token was provided running `kubeadm ex token delete`. This does a check to verify an arg has been passed and prints out a more reasonable message if it is not provided. 


**Special notes for your reviewer**: /cc @luxas @pires 

**Release note**:
```release-note
NONE
```
2017-02-13 23:07:06 -08:00
Derek McQuay
c8b830a848 kubeadm: unit tests for apis/kubeadm/validation
code coverage from ~21% to 100%
2017-02-13 19:54:23 -08:00
Derek McQuay
9758a8f499 kubeadm: added unit tests for discovery pkg
raised test coverage from ~25% to ~71%
2017-02-13 19:53:24 -08:00
Kubernetes Submit Queue
fa5a2fe269 Merge pull request #41340 from deads2k/client-02-add-informers
Automatic merge from submit-queue (batch tested with PRs 41115, 41212, 41346, 41340, 41172)

Add informers to client-go

Adds informers and listers to client-go so that you can build a controller on it. 

@sttts @caesarxuchao @kubernetes/sig-api-machinery-misc
2017-02-13 17:03:51 -08:00
Kubernetes Submit Queue
456b9dc5cc Merge pull request #41346 from ncdc/shared-informers-08-route
Automatic merge from submit-queue (batch tested with PRs 41115, 41212, 41346, 41340, 41172)

Switch route controller to shared informers

Initially part of #40097 

@smarterclayton @gmarek @wojtek-t @timothysc @kubernetes/sig-scalability-pr-reviews @sttts @deads2k @liggitt
2017-02-13 17:03:49 -08:00
Jing Xu
7604163560 Change default reconciler sync period to 1 minute
When default reconciler sync period is set to 5 second, we often see
rateLimit issue for a large cluster. This PR is change the period to 1
minute to mitigate this problem.

Make this period longer means that there might be some period of time
that the cached information in master's attach_detach_controller is out
of date. The node might use this information to mount to the wrong
device. For GCE PD, since device path is uniquely associated with volume
id, so mount operation will just fail because of this outdated
information. For AWS, before kubelet might mount to the wrong volume
because device path could be reused immediately once it is available.
But after PR #38818, device path will only be reused after all device
paths have been explored. That means it is very unlikely that kubelet will
mount to a wrong volume that is using the old device path that had been
assigned to the same node.
2017-02-13 14:01:52 -08:00
Derek McQuay
ff5801ad0c kubeadm: fix to avoid panic if token not provided
Prior to this, kubeadm would panic if no token was provided. This does a
check and prints out a more reasonable message.
2017-02-13 13:06:18 -08:00
deads2k
f2b27c4074 depend on client-go listwatcher 2017-02-13 15:36:18 -05:00
Andy Goldstein
effde6b8dd Switch route controller to shared informers 2017-02-13 15:21:33 -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
Derek McQuay
f079399a18 kubeadm: adding tests for util/tokens.go
Included a fix for a logic error in tokens.go found through writing
tests
2017-02-13 11:17:11 -08:00
Derek McQuay
288ef87c81 kubeadm: test-cmd: token{delete} 2017-02-13 10:12:06 -08:00
deads2k
78d8a8efa8 copy pkg/util/logs to apiserver 2017-02-13 12:07:15 -05:00
Andrew Rynhard
3ea7b29e8e Use a dedicated key for service account token signing 2017-02-13 08:39:46 -08:00
deads2k
2b6b02c6ba auto-create the loopback token 2017-02-13 11:18:34 -05:00
deads2k
fd34b11e13 react to informer updates 2017-02-13 09:18:32 -05:00
deads2k
a86fabb9d2 regenerate informers 2017-02-13 07:59:34 -05:00
deads2k
c5359fd059 split generated informers by internal and external 2017-02-13 07:55:15 -05:00
xilabao
0e77e2b800 fix token validation in kubeadm 2017-02-13 16:36:20 +08:00
Kubernetes Submit Queue
198fcf60ca Merge pull request #41268 from pipejakob/public-signer
Automatic merge from submit-queue (batch tested with PRs 41137, 41268)

Allow the CertificateController to use any Signer implementation.

**What this PR does / why we need it**:
This will allow developers to create `CertificateController`s with arbitrary `Signer`s, instead of forcing the use of `CFSSLSigner`. It matches the behavior of allowing an arbitrary `AutoApprover` to be passed in the constructor.

**Release note**:

```release-note
NONE
```

CC @mikedanese
2017-02-10 18:05:35 -08:00
Derek McQuay
6afd74e907 kubeadm: test-cmd: join{config, discovery} 2017-02-10 17:05:47 -08:00
Kubernetes Submit Queue
3f2a25e38a Merge pull request #41260 from apprenda/kubeadm-153-yaml
Automatic merge from submit-queue (batch tested with PRs 41259, 41260)

kubeadm: changed manifest files to yaml

**What this PR does / why we need it**: Static Pods are currently stored as .json files in /etc/kubernetes/manifests. This PR instead writes them as YAML, as requested by the SIG.

**Which issue this PR fixes**: fixes #https://github.com/kubernetes/kubeadm/issues/153

**Special notes for your reviewer**: /cc @luxas 

**Release note**:
```release-note
NONE
```
2017-02-10 16:53:40 -08:00
Derek McQuay
295e59b26b kubeadm: test-cmd: init{config, version, api-port} 2017-02-10 16:11:01 -08:00
Kubernetes Submit Queue
a6952bc9e5 Merge pull request #41264 from andrewrynhard/fix_cluster_cidr
Automatic merge from submit-queue (batch tested with PRs 38252, 41122, 36101, 41017, 41264)

Fix cluster-cidr flag

**What this PR does / why we need it**:
Fixes the kube-proxy daemonset config when using the `pod-network-cidr flag`. The return value of `getClusterCIDR` should be prefixed with a `-`.

**Special notes for your reviewer**:
None

@luxas
2017-02-10 15:59:44 -08:00
Kubernetes Submit Queue
32dd68ad2a Merge pull request #41017 from luxas/symlink_hyperkube
Automatic merge from submit-queue (batch tested with PRs 38252, 41122, 36101, 41017, 41264)

Add alternative names for the server binaries to hyperkube

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

Right now one can't swap a server image to the hyperkube image without touching the `command` field in the yaml spec, and that's daunting and leading to extra and unnecessary logic for example in kubeadm.

This makes the hyperkube image directly swappable, so now `/usr/local/bin/kube-*` is a portable first argument (or simply `kube-*` if there's a shell).

**Special notes for your reviewer**:

**Release note**:

```release-note
Align the hyperkube image to support running binaries at /usr/local/bin/ like the other server images
```
@jessfraz @thockin @ixdy
2017-02-10 15:59:43 -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
Jacob Beacham
7682aa53b1 Allow the CertificateController to use any Signer implementation.
This will allow developers to create CertificateControllers with
arbitrary Signers, instead of forcing the use of CFSSLSigner.
2017-02-10 14:26:45 -08:00
Derek McQuay
7c4d1375ad kubeadm: changed manifest files to yaml 2017-02-10 14:00:15 -08:00
Andrew Rynhard
052ceee47e Fix cluster-cidr flag 2017-02-10 13:52:25 -08:00
Kubernetes Submit Queue
40f147fe95 Merge pull request #41220 from errordeveloper/fix-hostname-preflight-check
Automatic merge from submit-queue (batch tested with PRs 41223, 40892, 41220, 41207, 41242)

kubeadm: preflight should only warn about unresolvable hostnames

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

This is quite often the case on AWS, and we really don't care if
the hostname is resolvable or not. It's not an easy requirement
to ask user to fix, and there is no functional penalty at the
Kubernetes level, also it's possible that users fixes their host
resolution eventually, we don't have to make them do so.

**Special notes for your reviewer**: @dmmcquay @luxas PTAL 👍 

**Release note**:

```release-note
NONE
```
2017-02-10 13:35:44 -08:00
Joe Beda
415e20877e Wire in bootstrap and token controllers.
This adds these to the list of controllers the Controller Manager can start.  But as these are alpha, they are also currently disabled by default.
2017-02-10 12:49:23 -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
Andy Goldstein
d11aa98c29 Switch hpa controller to shared informer 2017-02-10 09:53:41 -05:00
Andy Goldstein
74186d3e06 Switch disruption controller to shared informers 2017-02-10 09:27:54 -05:00
Kubernetes Submit Queue
f4baa5860f Merge pull request #41114 from ncdc/shared-informers-04-endpoints
Automatic merge from submit-queue (batch tested with PRs 39418, 41175, 40355, 41114, 32325)

Switch endpoints controller to shared informers

cc @bprashanth @thockin @deads2k @sttts @liggitt @smarterclayton  @kubernetes/sig-scalability-pr-reviews
2017-02-10 04:50:48 -08:00
Kubernetes Submit Queue
a7a74b56da Merge pull request #40355 from gmarek/nc-taint-handling
Automatic merge from submit-queue (batch tested with PRs 39418, 41175, 40355, 41114, 32325)

TaintController

```release-note
This PR adds a manager to NodeController that is responsible for removing Pods from Nodes tainted with NoExecute Taints. This feature is beta (as the rest of taints) and enabled by default. It's gated by controller-manager enable-taint-manager flag.
```
2017-02-10 04:50:42 -08:00