Commit Graph

1605 Commits

Author SHA1 Message Date
Mike Danese
3b83eb538c link the server.key to the key not the crt 2017-03-22 10:29:42 -07:00
Piotr Szczesniak
8968ac5c36 Renamed fluentd-ds-ready annotation 2017-03-21 20:48:13 +01:00
Jordan Liggitt
bc539151f3
Keep ResourceQuota admission at the end of the chain 2017-03-21 01:53:11 -04:00
Kubernetes Submit Queue
14888854bc Merge pull request #43184 from mtaufen/fix-cos-name-change-issues
Automatic merge from submit-queue (batch tested with PRs 43254, 43255, 43184, 42509)

Symlink cluster/gce/cos to cluster/gce/gci

Fixes: #43139

As I just unfortunately found out after spending an hour getting to the point where I could test this, upgrade.sh does not support upgrading nodes to local binaries. So someone will have to cut a release to test whether this change actually works.
2017-03-16 19:02:26 -07:00
Kubernetes Submit Queue
a10c8f49ff Merge pull request #42931 from piosz/annotation-fix
Automatic merge from submit-queue

Setup fluentd-ds-ready label in startup script not in kubelet

fix #42840

``` release-note
TBD
```
2017-03-16 16:10:12 -07:00
Kubernetes Submit Queue
b2525d43ed Merge pull request #43164 from cjcullen/abac
Automatic merge from submit-queue

Allow ABAC to be disabled easily on upgrades

**What this PR does / why we need it**:
Adds a local variable to the configure-helper script so that ABAC_AUTHZ_FILE can be set to a nonexistent file in kube-env to disable ABAC on a cluster that previously was using ABAC.

@liggitt @Q-Lee
2017-03-16 12:09:40 -07:00
Kubernetes Submit Queue
6656ffc300 Merge pull request #43165 from Random-Liu/update-npd
Automatic merge from submit-queue

Update npd to the official v0.3.0 release.

Update npd to the official release v0.3.0.

This also fixes a npd bug https://github.com/kubernetes/node-problem-detector/pull/98.

@dchen1107 @kubernetes/node-problem-detector-reviewers
2017-03-16 11:23:43 -07:00
Piotr Szczesniak
9bd05bdee4 Setup fluentd-ds-ready label in startup script not in kubelet 2017-03-16 13:18:31 +01:00
Michael Taufen
bdcfbe84e4 Symlink cluster/gce/cos to cluster/gce/gci
So scripts that use /etc/os-release.ID as a dir name don't get confused.
2017-03-15 15:31:51 -07:00
Random-Liu
c4b3fd4e63 Update npd to the official v0.3.0 release. 2017-03-15 14:26:12 -07:00
Matt Liggett
c79d74f382 Force create symlinks. 2017-03-15 14:03:46 -07:00
CJ Cullen
1534cbf1fa Add abac_authorization_file local var to allow ABAC_AUTHZ_FILE to be set outside the script. 2017-03-15 13:28:18 -07:00
shashidharatd
b09b20b598 Remove FEDERATIONS_DOMAIN_MAP references 2017-03-15 23:06:16 +05:30
Kubernetes Submit Queue
4c5d50e98a Merge pull request #43134 from shyamjvs/fix-configure-script
Automatic merge from submit-queue (batch tested with PRs 40404, 43134, 43117)

Add -p to mkdirs in gci-mounter function of gce configure.sh script

Ref https://github.com/kubernetes/kubernetes/issues/40139#issuecomment-286068409

cc @wojtek-t
2017-03-15 08:27:22 -07:00
Shyam Jeedigunta
63e1c78bc7 Add -p to mkdirs in gci-mounter function of gce configure.sh script 2017-03-15 14:04:06 +01:00
Mike Danese
361c40cc66 add a compatibility shim for certs to support a cluster downgrade 2017-03-14 09:25:50 -07:00
shashidharatd
f2fa2f6dd6 New packages added to hack/.linted_packages 2017-03-11 01:39:56 +05:30
Random-Liu
cf41dcaeec Handle NPD during cluster upgrade. 2017-03-09 13:45:46 -08:00
Mike Danese
19a68ef51c generate kubelet auth cert on upgrades 2017-03-07 18:51:34 -08:00
Kubernetes Submit Queue
9a571d9bde Merge pull request #42450 from Q-Lee/fix-unbound
Automatic merge from submit-queue

Fixing unbound bash variable.

**What this PR does / why we need it**: this fixes a bug introduced in 1.6 for ABAC.

**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**: without this, we hit an unbound variable and fail to bring up the kube-apiserver with ABAC enabled.

**Release note**:

```release-note
```
2017-03-06 04:18:10 -08:00
Kubernetes Submit Queue
097755fbd9 Merge pull request #41666 from mikedanese/cvm-master
Automatic merge from submit-queue (batch tested with PRs 41306, 42187, 41666, 42275, 42266)

remove support for debian masters in GCE

Asked about this on the mailing list and no one objects.

@zmerlynn @roberthbailey 

```release-note
Remove support for debian masters in GCE kube-up.
```
2017-03-03 10:54:42 -08:00
Quintin Lee
4628abfd9c Fixing unbound bash variable. 2017-03-02 15:42:56 -08:00
Kubernetes Submit Queue
1864e0516d Merge pull request #42192 from mikedanese/mds-block
Automatic merge from submit-queue (batch tested with PRs 41980, 42192, 42223, 41822, 42048)

add kube-env variable to block traffic to metadataserver

@Q-Lee @thockin
2017-03-02 00:59:16 -08:00
Kubernetes Submit Queue
e22eca743f Merge pull request #42197 from jcbsmpsn/legacy-abac-16
Automatic merge from submit-queue (batch tested with PRs 41931, 39821, 41841, 42197, 42195)

Adding legacy ABAC for 1.6

This is a fork of a previous [pull request](https://github.com/kubernetes/kubernetes/pull/42014) to include feedback as the original author is unavailable.

Adds a mechanism to optionally enable legacy abac for 1.6 to provide a migration path for existing users.
2017-03-01 20:08:05 -08: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
Kubernetes Submit Queue
bce0718c2d Merge pull request #42181 from vishh/cluster-owners
Automatic merge from submit-queue

Adding vishh to cluster/gce owners
2017-03-01 14:19:16 -08:00
Jess Frazelle
fe84363ce2
Add settings API and admission controller
export functions from pkg/api/validation

add settings API

add settings to pkg/registry

add settings api to pkg/master/master.go

add admission control plugin for pod preset

add new admission control plugin to kube-apiserver

add settings to import_known_versions.go

add settings to codegen

add validation tests

add settings to client generation

add protobufs generation for settings api

update linted packages

add settings to testapi

add settings install to clientset

add start of e2e

add pod preset plugin to config-test.sh

Signed-off-by: Jess Frazelle <acidburn@google.com>
2017-03-01 13:04:28 -08:00
Kubernetes Submit Queue
35c2e70dd1 Merge pull request #42200 from mikedanese/fix-upgrade
Automatic merge from submit-queue

fix upgrades
2017-02-28 18:33:04 -08:00
Mike Danese
90b26465d7 fix upgrades 2017-02-28 14:52:37 -08:00
Mike Danese
33ea2d11fc remove trusty GCE kube-up.sh 2017-02-28 10:08:17 -08:00
Mike Danese
cb9bdb8813 remove support for debian masters in GCE 2017-02-28 09:54:07 -08:00
Kubernetes Submit Queue
81d01a84e0 Merge pull request #41944 from jingxu97/Feb/mounter
Automatic merge from submit-queue (batch tested with PRs 35094, 42095, 42059, 42143, 41944)

Use chroot for containerized mounts

This PR is to modify the containerized mounter script to use chroot
instead of rkt fly. This will avoid the problem of possible large number
of mounts caused by rkt containers if they are not cleaned up.
2017-02-28 09:20:21 -08:00
Kubernetes Submit Queue
dac0296f0b Merge pull request #42093 from liggitt/avoid-fake-node-names
Automatic merge from submit-queue (batch tested with PRs 40746, 41699, 42108, 42174, 42093)

Avoid fake node names in user info

Node usernames should follow the format `system:node:<node-name>`,
but if we don't know the node name, it's worse to put a fake one in.

In the future, we plan to have a dedicated node authorizer, which would
start rejecting requests from a user with a bogus node name like this.

The right approach is to either mint correct credentials per node, or use node bootstrapping so it requests a correct client certificate itself.
2017-02-28 07:51:33 -08:00
Kubernetes Submit Queue
5981ce304a Merge pull request #41937 from cheftako/changePassword
Automatic merge from submit-queue (batch tested with PRs 41937, 41151, 42092, 40269, 42135)

GCE will properly regenerate basic_auth.csv on kube-apiserver start.

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

If basic_auth.csv does not exist we will generate it as normal.
If basic_auth.csv exists we will remove the old admin password before adding the "new" one. (Turns in to a no-op if the password exists).
This did not work properly before because we were replacing by key, where the key was the password. New password would not match and so not replace the old password.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-02-28 01:24:03 -08:00
Mike Danese
34e02c9989 add kube-env variable to block traffic to metadataserver 2017-02-27 16:54:44 -08:00
Quintin Lee
3adac0dace Adding legacy ABAC for 1.6 2017-02-27 14:38:54 -08:00
Vishnu kannan
cdb557ecd8 adding vishh to gce cluster owners
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2017-02-27 10:58:43 -08:00
Kubernetes Submit Queue
b18bad156d Merge pull request #40634 from Crassirostris/use-docker-log-rotation
Automatic merge from submit-queue

Use docker log rotation mechanism instead of logrotate

This is a solution for https://github.com/kubernetes/kubernetes/issues/38495.

Instead of rotating logs using logrotate tool, which is configured quite rigidly, this PR makes docker responsible for the rotation and makes it possible to configure docker logging parameters. It solves the following problems:

* Logging agent will stop loosing lines upon rotation
* Container's logs size will be more strictly constrained. Instead of checking the size hourly, size will be checked upon write, preventing https://github.com/kubernetes/kubernetes/issues/27754

It's still far from ideal, for example setting logging options per pod, as suggested in https://github.com/kubernetes/kubernetes/issues/15478 would be much more flexible, but latter approach requires deep changes, including changes in API, which may be in vain because of CRI and long-term vision for logging.

Changes include:

* Change in salt. It's possible to configure docker log parameters, using variables in pillar. They're exported from env variables on `gce`, but for different cloud provider they have to be exported first.
* Change in `configure-helper.sh` scripts for those os on `gce` that don't use salt + default values exposed via env variables

This change may be problematic for kubelet logs functionality with CRI enabled, that will be tackled in the follow-up PR, if confirmed.

CC @piosz @Random-Liu @yujuhong @dashpole @dchen1107 @vishh @kubernetes/sig-node-pr-reviews

```release-note
On GCI by default logrotate is disabled for application containers in favor of rotation mechanism provided by docker logging driver.
```
2017-02-26 20:39:34 -08:00
Kubernetes Submit Queue
77ba346f55 Merge pull request #41815 from kevin-wangzefeng/enable-defaulttolerationseconds-admission-controller
Automatic merge from submit-queue (batch tested with PRs 40932, 41896, 41815, 41309, 41628)

enable DefaultTolerationSeconds admission controller by default

**What this PR does / why we need it**:
Continuation of PR #41414, enable DefaultTolerationSeconds admission controller by default.


**Which issue this PR fixes**: 
fixes: #41860
related Issue: #1574, #25320
related PRs: #34825, #41133, #41414 

**Special notes for your reviewer**:

**Release note**:

```release-note
enable DefaultTolerationSeconds admission controller by default
```
2017-02-26 08:09:58 -08:00
Walter Fender
d7f43a6bca GCE will properly regenerate basic_auth.csv on kube-apiserver start.
If the file does not exist we will generate it as normal.
If the file exists we will remove the old admin password before adding
the "new" one. (Turns in to a no-op if the password exists).
This did not work properly before because we were replacing by key,
where the key was the password. New password would not match and so
not replace the old password.
Added a METADATA_CLOBBERS_CONFIG flag
METADATA_CLOBBERS_CONFIG controls if we consider the values on disk or in
metadata to be the canonical source of truth. Currently defaulting to
false for GCE and forcing to true for GKE.
Added handling for older forms of the basic_auth.csv file.
Fixed comment to reflect new METADATA_CLOBBERS_CONFIG var.
2017-02-25 11:31:59 -08:00
Jordan Liggitt
34ac0dc302
Avoid fake node names in user info 2017-02-25 02:09:55 -05:00
Jing Xu
ac22416835 Use chroot for containerized mounts
This PR is to modify the containerized mounter script to use chroot
instead of rkt fly. This will avoid the problem of possible large number
of mounts caused by rkt containers if they are not cleaned up.
2017-02-24 13:46:26 -08:00
Kubernetes Submit Queue
e70d23db2a Merge pull request #41667 from mikedanese/certs
Automatic merge from submit-queue (batch tested with PRs 41667, 41820, 40910, 41645, 41361)

refactor certs in GCE to break up usages

TODO: debian
2017-02-23 20:57:27 -08:00
Mike Danese
192392bddd refactor certs in GCE 2017-02-23 10:12:31 -08:00
Wojciech Tyczynski
b70e392161 Update clusters to use 3.0.17 etcd 2017-02-23 10:08:50 +01:00
Kubernetes Submit Queue
59f4c5911a Merge pull request #41819 from dchen1107/master
Automatic merge from submit-queue (batch tested with PRs 38957, 41819, 41851, 40667, 41373)

Bump GCI to gci-stable-56-9000-84-2

Changelogs since gci-beta-56-9000-80-0:

- Fixed google-accounts-daemon breaks on GCI when network is unavailable.
- Fixed iptables-restore performance regression.

cc/ @adityakali @Random-Liu @fabioy
2017-02-22 19:59:33 -08:00
Jeff Grafton
eeec939361 Don't fail if the grep fails to match any resources 2017-02-22 14:55:57 -08:00
Dawn Chen
3d510461a3 Bump GCI to gci-stable-56-9000-84-2 2017-02-21 10:03:14 -08:00
Kevin
cd427fa4be enable DefaultTolerationSeconds admission controller by default 2017-02-22 00:45:56 +08:00
Kubernetes Submit Queue
409d7d0a91 Merge pull request #41326 from ncdc/ci-cache-mutation
Automatic merge from submit-queue (batch tested with PRs 41364, 40317, 41326, 41783, 41782)

Add ability to enable cache mutation detector in GCE

Add the ability to enable the cache mutation detector in GCE. The current default behavior (disabled) is retained.

When paired with https://github.com/kubernetes/test-infra/pull/1901, we'll be able to detect shared informer cache mutations in gce e2e PR jobs.
2017-02-21 07:45:42 -08:00
Kubernetes Submit Queue
ff12e5688c Merge pull request #40206 from Random-Liu/add-standalone-npd
Automatic merge from submit-queue

Add standalone npd on GCI.

This PR added standalone NPD in GCE GCI cluster. I already verified the PR, and it should work.

/cc @dchen1107 @fabioy @andyxning @kubernetes/sig-node-misc
2017-02-18 02:00:20 -08:00
Kubernetes Submit Queue
4b3a097ecd Merge pull request #41525 from yujuhong/fix_output
Automatic merge from submit-queue

Fix the output of health-mointor.sh

The script show prints the errors/response of the health check, but not
show the progress of `curl`.
2017-02-17 16:57:29 -08:00
Random-Liu
d40c0a7099 Add standalone npd on GCI. 2017-02-17 16:18:08 -08:00
Andy Goldstein
688c19ec71 Allow cache mutation detector enablement by PRs
Allow cache mutation detector enablement by PRs in an attempt to find
mutations before they're merged in to the code base. It's just for the
apiserver and controller-manager for now. If/when the other components
start using a SharedInformerFactory, we should set them up just like
this as well.
2017-02-17 10:03:13 -05:00
Wojciech Tyczynski
3695e85b34 Expose storage media type as env variable 2017-02-17 14:16:55 +01:00
Yu-Ju Hong
d3e24e1085 Fix the output of health-mointor.sh
The script show prints the errors/response of the health check, but not
show the progress of `curl`.
2017-02-15 18:08:27 -08:00
Kubernetes Submit Queue
1fc1e5efb5 Merge pull request #41395 from gmarek/owners
Automatic merge from submit-queue

Add gmarek and jszczepkowski to cluster/gce owners

cc @mikedanese @zmerlynn @roberthbailey
2017-02-15 12:45:39 -08:00
Kubernetes Submit Queue
33aedca59d Merge pull request #41332 from jszczepkowski/etcd-cluster-state-16
Automatic merge from submit-queue

Added configurable etcd initial-cluster-state to kube-up script.

Added configurable etcd initial-cluster-state to kube-up script. This
allows creation of multi-master cluster from scratch. This is a
cherry-pick of #41320 from 1.5 branch.

```release-note
Added configurable etcd initial-cluster-state to kube-up script.
```
2017-02-15 10:04:31 -08:00
Mik Vyatskov
cabb9890ac Use docker log rotation mechanism instead of logrotate 2017-02-15 16:22:29 +01:00
Kubernetes Submit Queue
80be6a259f Merge pull request #41430 from mikedanese/preserve-key
Automatic merge from submit-queue (batch tested with PRs 41360, 41423, 41430, 40647, 41352)

preserve kube-master-cert metadata over upgrades
2017-02-15 05:06:10 -08:00
Kubernetes Submit Queue
0e86d98f99 Merge pull request #41449 from zmerlynn/container-vm-v20170214
Automatic merge from submit-queue (batch tested with PRs 41196, 41252, 41300, 39179, 41449)

Bump GCE ContainerVM to container-vm-v20170214

`container-vm-v20170214` is a re-build of the `docker-runc` in `container-vm-v20170201`, and should clear the GCE slow tests.

c.f. #40828

```release-note
Bump GCE ContainerVM to container-vm-v20170214 to address CVE-2016-9962.
```
2017-02-15 04:14:17 -08:00
Kubernetes Submit Queue
4c02f29196 Merge pull request #41211 from enisoc/configure-audit-log
Automatic merge from submit-queue (batch tested with PRs 40297, 41285, 41211, 41243, 39735)

cluster/gce: Add env var to enable apiserver basic audit log.

For now, this is focused on a fixed set of flags that makes the audit
log show up under /var/log/kube-apiserver-audit.log and behave similarly
to /var/log/kube-apiserver.log. Allowing other customization would
require significantly more complex changes.

Audit log rotation is handled the same as for `kube-apiserver.log`.

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

Add a knob to enable [basic audit logging](https://kubernetes.io/docs/admin/audit/) in GCE.

**Which issue this PR fixes**:

**Special notes for your reviewer**:

We would like to cherrypick/port this to release-1.5 also.

**Release note**:
```release-note
The kube-apiserver [basic audit log](https://kubernetes.io/docs/admin/audit/) can be enabled in GCE by exporting the environment variable `ENABLE_APISERVER_BASIC_AUDIT=true` before running `cluster/kube-up.sh`. This will log to `/var/log/kube-apiserver-audit.log` and use the same `logrotate` settings as `/var/log/kube-apiserver.log`.
```
2017-02-15 03:25:12 -08:00
Jordan Liggitt
cc11d7367a
Switch kube-scheduler to secure API access 2017-02-15 01:05:42 -05:00
Zach Loafman
b7229ed565 Bump GCE ContainerVM to container-vm-v20170214
container-vm-v20170214 is a re-build of the docker-runc in
container-vm-v20170201, and should clear the GCE slow tests.

c.f. #40828
2017-02-14 16:36:02 -08:00
Anthony Yeh
7500746e7f cluster/gce: Add env var to enable apiserver basic audit log.
For now, this is focused on a fixed set of flags that makes the audit
log show up under /var/log/kube-apiserver-audit.log and behave similarly
to /var/log/kube-apiserver.log. Allowing other customization would
require significantly more complex changes.

Audit log rotation is handled externally by the wildcard /var/log/*.log
already configured in configure-helper.sh.
2017-02-14 15:18:10 -08:00
Mike Danese
e17e4e110e preserve kube-master-cert metadata over upgrades 2017-02-14 11:02:11 -08:00
gmarek
e6e1d3066e Add gmarek and jszczepkowski to cluster/gce owners 2017-02-14 17:53:39 +01:00
Jerzy Szczepkowski
80e57b7016 Added configurable etcd initial-cluster-state to kube-up script.
Added configurable etcd initial-cluster-state to kube-up script. This
allows creation of multi-master cluster from scratch. This is a
cherry-pick of #41320 from 1.5 branch.
2017-02-13 16:10:47 +01:00
Mike Danese
c8ce55fef4 Revert "Merge pull request #41132 from kubernetes/revert-40893-kubelet-auth"
This reverts commit fd56078298, reversing
changes made to d953402cdf.
2017-02-09 15:55:12 -08:00
Kubernetes Submit Queue
b7772e4f89 Merge pull request #40048 from mtaufen/remove-deprecated-flags
Automatic merge from submit-queue (batch tested with PRs 41121, 40048, 40502, 41136, 40759)

Remove deprecated kubelet flags that look safe to remove

Removes:
```
--config
--auth-path
--resource-container
--system-container
```
which have all been marked deprecated since at least 1.4 and look safe to remove.

```release-note
The deprecated flags --config, --auth-path, --resource-container, and --system-container were removed.
```
2017-02-09 14:27:45 -08:00
Wojciech Tyczynski
3828188049 Set quota bytes by default 2017-02-08 10:40:24 +01:00
Wojciech Tyczynski
63531e56c5 Default TARGET_STORAGE to etcd3 in etcd manifest 2017-02-08 10:40:24 +01:00
Michael Taufen
982df56c52 Replace uses of --config with --pod-manifest-path 2017-02-07 14:32:37 -08:00
Kubernetes Submit Queue
5d0377d2e2 Merge pull request #41027 from dchen1107/master
Automatic merge from submit-queue (batch tested with PRs 40971, 41027, 40709, 40903, 39369)

Bump GCI to gci-beta-56-9000-80-0

cc/ @Random-Liu @adityakali 

Changelogs since gci-dev-56-8977-0-0 (currently used in Kubernetes):
 - "net.ipv4.conf.eth0.forwarding" and "net.ipv4.ip_forward" may get reset to 0
 - Track CVE-2016-9962 in Docker in GCI
 - Linux kernel CVE-2016-7097
 - Linux kernel CVE-2015-8964
 - Linux kernel CVE-2016-6828
 - Linux kernel CVE-2016-7917
 - Linux kernel CVE-2016-7042
 - Linux kernel CVE-2016-9793
 - Linux kernel CVE-2016-7039 and CVE-2016-8666
 - Linux kernel CVE-2016-8655
 - Toolbox: allow docker image to be loaded from local tarball
 - Update compute-image-package in GCI 
 - Change the product name on /etc/os-release (to COS)
 - Remove 'dogfood' from HWID_OVERRIDE in /etc/lsb-release
 - Include Google NVME extensions to optimize LocalSSD performance.
 - /proc/<pid>/io missing on GCI (enables process stats accounting)
 - Enable BLK_DEV_THROTTLING

cc/ @roberthbailey @fabioy for GKE cluster update
2017-02-06 20:57:14 -08:00
Dawn Chen
e710891dbb Bump GCI to gci-beta-56-9000-80-0 2017-02-03 18:00:16 -08:00
Vishnu Kannan
c967ab7b99 Avoid evicting critical pods in Kubelet if a special feature gate is enabled
Signed-off-by: Vishnu Kannan <vishnuk@google.com>
2017-02-02 11:32:20 -08:00
Zach Loafman
49062897d2 Bump GCE to container-vm-v20170201
Addresses CVE-2016-9962
2017-02-01 15:45:40 -08:00
Kubernetes Submit Queue
b1279a31b9 Merge pull request #40172 from liggitt/abac-upgrade
Automatic merge from submit-queue (batch tested with PRs 38739, 40480, 40495, 40172, 40393)

Use existing ABAC policy file when upgrading GCE cluster

When upgrading, continue loading an existing ABAC policy file so that existing system components continue working as-is

```
When upgrading an existing 1.5 GCE cluster using `cluster/gce/upgrade.sh`, an existing ABAC policy file located at /etc/srv/kubernetes/abac-authz-policy.jsonl (the default location in 1.5) will enable the ABAC authorizer in addition to the RBAC authorizer. To switch an upgraded 1.5 cluster completely to RBAC, ensure the control plane components and your superuser have been granted sufficient RBAC permissions, move the legacy ABAC policy file to a backup location, and restart the apiserver.
```
2017-01-25 21:20:32 -08:00
Kubernetes Submit Queue
7fbb458f6d Merge pull request #40213 from jszczepkowski/ha-e2e-tests
Automatic merge from submit-queue (batch tested with PRs 39260, 40216, 40213, 40325, 40333)

Fixed propagation of kube master certs during master replication.

Fixed propagation of kube-master-certs during master replication.
2017-01-24 16:26:02 -08:00
Kubernetes Submit Queue
054c84e22f Merge pull request #40299 from lucab/to-k8s/rkt-1.23.0
Automatic merge from submit-queue (batch tested with PRs 40299, 40311)

cluster: update default rkt version to 1.23.0

This updates cluster configurations to current stable rkt version.
2017-01-24 08:59:57 -08:00
Antoine Pelisse
62af7dd33d OWNERS: Update latest OWNERS files
These files have been created lately, so we don't have much information
about them anyway, so let's just:
- Remove assignees and make them approvers
- Copy approves as reviewers
2017-01-23 10:05:48 -08:00
Luca Bruno
b4bc44b9ff
cluster: update default rkt version to 1.23.0 2017-01-23 15:22:33 +00:00
Mike Danese
513994a9f8 pass CA key to signer in GCE 2017-01-20 11:10:19 -08:00
Jerzy Szczepkowski
d1a73fa5cd Fixed propagation of kube master certs during master replication.
Fixed propagation of kube master certs during master replication.
2017-01-20 13:24:09 +01:00
Jordan Liggitt
e6a63c8f40
Use existing ABAC policy file when upgrading GCE cluster 2017-01-19 16:46:08 -05:00
Ryan Hallisey
dbb92f9836 Use ensure-temp-dir in the common.sh script
Instead of having an ensure-temp-dir function in multiple
places, add it to the common.sh script which is sourced by
all the providers.
2017-01-19 09:30:50 -05:00
Maisem Ali
52b6c9bb41 Adding cos as an alias for gci. 2017-01-18 15:14:25 -08:00
Kubernetes Submit Queue
b29d9cdbcf Merge pull request #39898 from ixdy/bazel-release-tars
Automatic merge from submit-queue

Build release tars using bazel

**What this PR does / why we need it**: builds equivalents of the various kubernetes release tarballs, solely using bazel.

For example, you can now do
```console
$ make bazel-release
$ hack/e2e.go -v -up -test -down
```

**Special notes for your reviewer**: this is currently dependent on 3b29803eb5, which I have yet to turn into a pull request, since I'm still trying to figure out if this is the best approach.

Basically, the issue comes up with the way we generate the various server docker image tarfiles and load them on nodes:
* we `md5sum` the binary being encapsulated (e.g. kube-proxy) and save that to `$binary.docker_tag` in the server tarball
* we then build the docker image and tag using that md5sum (e.g. `gcr.io/google_containers/kube-proxy:$MD5SUM`)
* we `docker save` this image, which embeds the full tag in the `$binary.tar` file.
* on cluster startup, we `docker load` these tarballs, which are loaded with the tag that we'd created at build time. the nodes then use the `$binary.docker_tag` file to find the right image.

With the current bazel `docker_build` rule, the tag isn't saved in the docker image tar, so the node is unable to find the image after `docker load`ing it.

My changes to the rule save the tag in the docker image tar, though I don't know if there are subtle issues with it. (Maybe we want to only tag when `--stamp` is given?)

Also, the docker images produced by bazel have the timestamp set to the unix epoch, which is not great for debugging. Might be another thing to change with a `--stamp`.

Long story short, we probably need to follow up with bazel folks on the best way to solve this problem.

**Release note**:

```release-note
NONE
```
2017-01-18 14:24:48 -08:00
Kubernetes Submit Queue
76d023ca90 Merge pull request #40094 from zmerlynn/cvm-v20170117
Automatic merge from submit-queue (batch tested with PRs 36467, 36528, 39568, 40094, 39042)

Bump GCE to container-vm-v20170117

Base image update only, no kubelet or Docker updates.

```release-note
Update GCE ContainerVM deployment to container-vm-v20170117 to pick up CVE fixes in base image.
```
2017-01-18 13:37:12 -08:00
Zach Loafman
a0b8fd618f Bump GCE to container-vm-v20170117
Base image update only, no kubelet or Docker updates.
2017-01-18 10:50:17 -08:00
Kubernetes Submit Queue
6dfe5c49f6 Merge pull request #38865 from vwfs/ext4_no_lazy_init
Automatic merge from submit-queue

Enable lazy initialization of ext3/ext4 filesystems

**What this PR does / why we need it**: It enables lazy inode table and journal initialization in ext3 and ext4.

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

**Release note**:
```release-note
Enable lazy inode table and journal initialization for ext3 and ext4
```

**Special notes for your reviewer**:
This PR removes the extended options to mkfs.ext3/mkfs.ext4, so that the defaults (enabled) for lazy initialization are used.

These extended options come from a script that was historically located at */usr/share/google/safe_format_and_mount* and later ported to GO so this dependency to the script could be removed. After some search, I found the original script here: https://github.com/GoogleCloudPlatform/compute-image-packages/blob/legacy/google-startup-scripts/usr/share/google/safe_format_and_mount

Checking the history of this script, I found the commit [Disable lazy init of inode table and journal.](4d7346f7f5). This one introduces the extended flags with this description:
```
Now that discard with guaranteed zeroing is supported by PD,
initializing them is really fast and prevents perf from being affected
when the filesystem is first mounted.
```

The problem is, that this is not true for all cloud providers and all disk types, e.g. Azure and AWS. I only tested with magnetic disks on Azure and AWS, so maybe it's different for SSDs on these cloud providers. The result is that this performance optimization dramatically increases the time needed to format a disk in such cases.

When mkfs.ext4 is told to not lazily initialize the inode tables and the check for guaranteed zeroing on discard fails, it falls back to a very naive implementation that simply loops and writes zeroed buffers to the disk. Performance on this highly depends on free memory and also uses up all this free memory for write caching, reducing performance of everything else in the system. 

As of https://github.com/kubernetes/kubernetes/issues/30752, there is also something inside kubelet that somehow degrades performance of all this. It's however not exactly known what it is but I'd assume it has something to do with cgroups throttling IO or memory. 

I checked the kernel code for lazy inode table initialization. The nice thing is, that the kernel also does the guaranteed zeroing on discard check. If it is guaranteed, the kernel uses discard for the lazy initialization, which should finish in a just few seconds. If it is not guaranteed, it falls back to using *bio*s, which does not require the use of the write cache. The result is, that free memory is not required and not touched, thus performance is maxed and the system does not suffer.

As the original reason for disabling lazy init was a performance optimization and the kernel already does this optimization by default (and in a much better way), I'd suggest to completely remove these flags and rely on the kernel to do it in the best way.
2017-01-18 09:09:52 -08:00
Jeff Grafton
bc4b6ac397 Build release tarballs in bazel and add make bazel-release rule 2017-01-13 16:17:44 -08:00
Jordan Liggitt
d94bb26776
Conditionally write token file entries 2017-01-13 17:59:46 -05:00
Kubernetes Submit Queue
d50c027d0c Merge pull request #39537 from liggitt/legacy-policy
Automatic merge from submit-queue (batch tested with PRs 39803, 39698, 39537, 39478)

include bootstrap admin in super-user group, ensure tokens file is correct on upgrades

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

Possible issues with cluster bring-up scripts:

- [x] known_tokens.csv and basic_auth.csv is not rewritten if the file already exists
  * new users (like the controller manager) are not available on upgrade
  * changed users (like the kubelet username change) are not reflected
  * group additions (like the addition of admin to the superuser group) don't take effect on upgrade
  * this PR updates the token and basicauth files line-by-line to preserve user additions, but also ensure new data is persisted
- [x] existing 1.5 clusters may depend on more permissive ABAC permissions (or customized ABAC policies). This PR adds an option to enable existing ABAC policy files for clusters that are upgrading

Follow-ups:
- [ ] both scripts are loading e2e role-bindings, which only be loaded in e2e tests, not in normal kube-up scenarios
- [ ] when upgrading, set the option to use existing ABAC policy files
- [ ] update bootstrap superuser client certs to add superuser group? ("We also have a certificate that "used to be" a super-user. On GCE, it has CN "kubecfg", on GKE it's "client"")
- [ ] define (but do not load by default) a relaxed set of RBAC roles/rolebindings matching legacy ABAC, and document how to load that for new clusters that do not want to isolate user permissions
2017-01-12 15:06:31 -08:00
Jordan Liggitt
968b0b30cf
Update token users if needed 2017-01-11 17:21:12 -05:00
Jordan Liggitt
21b422fccc
Allow enabling ABAC authz 2017-01-11 17:20:51 -05:00
Jordan Liggitt
1fe517e96a
Include admin in super-user group 2017-01-11 17:20:42 -05:00
Euan Kemp
eeef293ee2 container-linux: restart rkt-api on failure
This works around a flake I saw which had the same root cause as
https://github.com/coreos/rkt/issues/3513.

This will potentially help reduce the impact of such future problems as
well.
2017-01-11 00:25:14 -08:00
Kubernetes Submit Queue
ebc8e40694 Merge pull request #39691 from yujuhong/bump_timeout
Automatic merge from submit-queue (batch tested with PRs 39694, 39383, 39651, 39691, 39497)

Bump container-linux and gci timeout for docker health check

The command `docker ps` can take longer time to respond under heavy load or
when encountering some known issues. In these cases, the containers are running
fine, so aggressive health check could cause serious disruption. Bump the
timeout to 60s to be consistent with the debian-based containerVM.

This addresses #38588
2017-01-10 21:25:16 -08:00
Kubernetes Submit Queue
addc6cae4a Merge pull request #38212 from mikedanese/kubeletauth
Automatic merge from submit-queue (batch tested with PRs 38212, 38792, 39641, 36390, 39005)

Generate a kubelet CA and kube-apiserver cert-pair for kubelet auth.

cc @cjcullen
2017-01-10 19:48:09 -08:00