Commit Graph

47768 Commits

Author SHA1 Message Date
Justin Santa Barbara
a88a0abbdb Fix typo in name of ss controller
Typo, but I presume also we're intending to allow control of individual
controllers, so the name does matter.
2017-05-09 11:31:06 -04:00
Kubernetes Submit Queue
49626c975b Merge pull request #44798 from zetaab/master
Automatic merge from submit-queue

Statefulsets for cinder: allow multi-AZ deployments, spread pods across zones

**What this PR does / why we need it**: Currently if we do not specify availability zone in cinder storageclass, the cinder is provisioned to zone called nova. However, like mentioned in issue, we have situation that we want spread statefulset across 3 different zones. Currently this is not possible with statefulsets and cinder storageclass. In this new solution, if we leave it empty the algorithm will choose the zone for the cinder drive similar style like in aws and gce storageclass solutions. 

**Which issue this PR fixes** fixes #44735

**Special notes for your reviewer**:

example:

```
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: all
provisioner: kubernetes.io/cinder
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  name: galera
  labels:
    app: mysql
spec:
  ports:
  - port: 3306
    name: mysql
  clusterIP: None
  selector:
    app: mysql
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: mysql
spec:
  serviceName: "galera"
  replicas: 3
  template:
    metadata:
      labels:
        app: mysql
      annotations:
        pod.alpha.kubernetes.io/initialized: "true"
    spec:
      containers:
      - name: mysql
        image: adfinissygroup/k8s-mariadb-galera-centos:v002
        imagePullPolicy: Always
        ports:
        - containerPort: 3306
          name: mysql
        - containerPort: 4444
          name: sst
        - containerPort: 4567
          name: replication
        - containerPort: 4568
          name: ist
        volumeMounts:
        - name: storage
          mountPath: /data
        readinessProbe:
          exec:
            command:
            - /usr/share/container-scripts/mysql/readiness-probe.sh
          initialDelaySeconds: 15
          timeoutSeconds: 5
        env:
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
  volumeClaimTemplates:
  - metadata:
      name: storage
      annotations:
        volume.beta.kubernetes.io/storage-class: all
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 12Gi
```

If this example is deployed it will automatically create one replica per AZ. This helps us a lot making HA databases.

Current storageclass for cinder is not perfect in case of statefulsets. Lets assume that cinder storageclass is defined to be in zone called nova, but because labels are not added to pv - pods can be started in any zone. The problem is that at least in our openstack it is not possible to use cinder drive located in zone x from zone y. However, should we have possibility to choose between cross-zone cinder mounts or not? Imo it is not good way of doing things that they mount volume from another zone where the pod is located(means more network traffic between zones)? What you think? Current new solution does not allow that anymore (should we have possibility to allow it? it means removing the labels from pv).

There might be some things that needs to be fixed still in this release and I need help for that. Some parts of the code is not perfect.

Issues what i am thinking about (I need some help for these):
1) Can everybody see in openstack what AZ their servers are? Can there be like access policy that do not show that? If AZ is not found from server specs, I have no idea how the code behaves. 
2) In GetAllZones() function, is it really needed to make new serviceclient using openstack.NewComputeV2 or could I somehow use existing one
3) This fetches all servers from some openstack tenant(project). However, in some cases kubernetes is maybe deployed only to specific zone. If kube servers are located for instance in zone 1, and then there are another servers in same tenant in zone 2. There might be usecase that cinder drive is provisioned to zone-2 but it cannot start pod, because kubernetes does not have any nodes in zone-2. Could we have better way to fetch kubernetes nodes zones? Currently that information is not added to kubernetes node labels automatically in openstack (which should I think). I have added those labels manually to nodes. If that zone information is not added to nodes, the new solution does not start stateful pods at all, because it cannot target pods.


cc @rootfs @anguslees @jsafrane 

```release-note
Default behaviour in cinder storageclass is changed. If availability is not specified, the zone is chosen by algorithm. It makes possible to spread stateful pods across many zones.
```
2017-05-09 08:10:44 -07:00
Kubernetes Submit Queue
49e5435529 Merge pull request #45403 from sttts/sttts-tri-state-watch-capacity
Automatic merge from submit-queue

apiserver: injectable default watch cache size

This makes it possible to override the default watch capacity in the REST options getter. Before this PR the default is written into the storage struct explicitly, and if it is the default, the REST options getter didn't know. With this the PR the default is applied late and can be injected from the outside.
2017-05-09 07:27:35 -07:00
Kubernetes Submit Queue
110f410e55 Merge pull request #45463 from nilebox/nilebox-tpr-watcher-example
Automatic merge from submit-queue (batch tested with PRs 45481, 45463)

ThirdPartyResource example: added watcher example, code cleanup

**NOTE**: This is a cleaned and updated version of PR https://github.com/kubernetes/kubernetes/pull/43027

**What this PR does / why we need it**:
An example of using go-client for watching on ThirdPartyResource events (create/update/delete).
2017-05-09 06:52:34 -07:00
Kubernetes Submit Queue
02d75cb453 Merge pull request #45481 from CaoShuFeng/xtables/lock
Automatic merge from submit-queue

Remove leaked tmp file in unit tests

Some unit tests leave a temp file in work space:
pkg/util/iptables/xtables.lock
This patch remove that file
@dcbw 
**Release note**:

```NONE
```
2017-05-09 06:40:31 -07:00
Nail Islamov
a6c97715ed ThirdPartyResource client-go example: added TPR controller example, code cleanup and integration test 2017-05-09 21:31:39 +10:00
Kubernetes Submit Queue
d602ea69dc Merge pull request #45295 from rootfs/vol-owner
Automatic merge from submit-queue

add rootfs gnufied and childsb to volume approver

**What this PR does / why we need it**:
add me and @gnufied @childsb to volume approver 
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-05-09 04:13:00 -07:00
Kubernetes Submit Queue
20fa30e4b5 Merge pull request #45330 from NickrenREN/openstack-backoff
Automatic merge from submit-queue (batch tested with PRs 45018, 45330)

Add exponential backoff to openstack loadbalancer functions

Using  exponential backoff to lower openstack load and reduce API call throttling


**Release note**:

```release-note
NONE
```
2017-05-08 23:00:38 -07:00
Kubernetes Submit Queue
f036725a0e Merge pull request #45018 from ravisantoshgudimetla/cleanup_qos#39148
Automatic merge from submit-queue (batch tested with PRs 45018, 45330)

Clean up for qos.go

**What this PR does / why we need it**:
Seems we are not using any of those functions. 

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



**Release note**:

```release-note
A small clean up to remove unnecessary functions.
```
2017-05-08 23:00:36 -07:00
Kubernetes Submit Queue
bb26376d51 Merge pull request #45203 from dims/suffix-cluster-local-for-service-host
Automatic merge from submit-queue (batch tested with PRs 45200, 45203)

Add .svc.cluster.local for service host

**What this PR does / why we need it**:
Running into DNS resolve problems, testing to see if this works better

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-05-08 17:43:42 -07:00
Kubernetes Submit Queue
f263fbe5e1 Merge pull request #45200 from jcbsmpsn/init-certificate-manager-no-certs
Automatic merge from submit-queue (batch tested with PRs 45200, 45203)

Allow certificate manager to be initialized with no certs.

Adds support to the certificate manager so it can be initialized with no
certs and only a connection to the certificate request signing API. This
specifically covers the scenario for the kubelet server certificate,
where there is a request signing client but on first boot there is no
bootstrapping or local certs.
2017-05-08 17:43:40 -07:00
Kubernetes Submit Queue
ceff8d8d4d Merge pull request #45320 from pwittrock/junit
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

Print a newline after ginkgo tests so the test infra doesn't think th…

Fixes #45279

Print a newline after ginkgo tests so the test infra doesn't think that they fail

```release-note
NONE
```
2017-05-08 16:34:48 -07:00
Kubernetes Submit Queue
a9ec6cbcb8 Merge pull request #45441 from cjwagner/test-owners-no-default
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

Removed 'default' row from test_owners.csv and Updated update_owners.py

**What this PR does / why we need it**:
Removes the 'default' row from test_owners.csv and the validation/update logic associated with it in update_owners.py.  
The 'default' row is being removed because it results in too many issues being assigned to the default test owners when issues are automatically generated.

**Release note**:

```release-note
NONE
```
/assign
2017-05-08 16:34:46 -07:00
Kubernetes Submit Queue
60e02711d4 Merge pull request #44126 from xiangpengzhao/fix-const
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

Use existing global var criSupportedLogDrivers

**What this PR does / why we need it**:
Use existing global var `criSupportedLogDrivers` defined in docker_service.go. If CRI supports other log drivers in the future, we will only need to modify that global var.

cc @Random-Liu
2017-05-08 16:34:44 -07:00
Kubernetes Submit Queue
a062782524 Merge pull request #44258 from wlan0/master
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

cloud initialize node in external cloud controller

@thockin This PR adds support in the `cloud-controller-manager` to initialize nodes (instead of kubelet, which did it previously)

This also adds support in the kubelet to skip node cloud initialization when `--cloud-provider=external`

Specifically,

Kubelet

1. The kubelet has a new flag called `--provider-id` which uniquely identifies a node in an external DB
2. The kubelet sets a node taint - called "ExternalCloudProvider=true:NoSchedule" if cloudprovider == "external"

Cloud-Controller-Manager

1. The cloud-controller-manager listens on "AddNode" events, and then processes nodes that starts with that above taint. It performs the cloud node initialization steps that were previously being done by the kubelet.
2. On addition of node, it figures out the zone, region, instance-type, removes the above taint and updates the node.
3. Then periodically queries the cloudprovider for node addresses (which was previously done by the kubelet) and updates the node if there are new addresses

```release-note
NONE  
```
2017-05-08 16:34:43 -07:00
Kubernetes Submit Queue
cfe6769f4e Merge pull request #45508 from sjenning/fix-plugin-loader
Automatic merge from submit-queue (batch tested with PRs 45508, 44258, 44126, 45441, 45320)

check for walkErr before fileInfo deref

Fixes #45507

@derekwaynecarr @fabianofranz
2017-05-08 16:34:41 -07:00
Kubernetes Submit Queue
6316ecefaa Merge pull request #45501 from timothysc/componentconfig_to_configmap
Automatic merge from submit-queue (batch tested with PRs 41903, 45311, 45474, 45472, 45501)

Adds a helper to convert componentconfig into a configmap

**What this PR does / why we need it**:
Adds a utility function that will be used by self-hosted components such as `kubeadm` but is also a step towards https://github.com/kubernetes/kubernetes/issues/44857 

**Special notes for your reviewer**:

**Release note**:

```
NONE
```

/cc @kubernetes/sig-cluster-lifecycle-pr-reviews  @bsalamat
2017-05-08 15:46:42 -07:00
Kubernetes Submit Queue
d13c42d339 Merge pull request #45472 from k82cn/rm_unused_func
Automatic merge from submit-queue (batch tested with PRs 41903, 45311, 45474, 45472, 45501)

Removed old scheduler constructor.

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

**Release note**:

```release-note-none
```
2017-05-08 15:46:41 -07:00
Kubernetes Submit Queue
d092fc546b Merge pull request #45474 from xiangpengzhao/fix-port-none
Automatic merge from submit-queue (batch tested with PRs 41903, 45311, 45474, 45472, 45501)

Display <none> when port is empty.

**What this PR does / why we need it**:
If container ports are not specified, `kubectl describe` displays `<none>` instead of empty.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-05-08 15:46:39 -07:00
Kubernetes Submit Queue
52903829b1 Merge pull request #45311 from vmware/fix_fetch_VM_UUID
Automatic merge from submit-queue (batch tested with PRs 41903, 45311, 45474, 45472, 45501)

Fetch VM UUID from - /sys/class/dmi/id/product_serial

**What this PR does / why we need it**:
Current code fetch VM uuid using uuid reported at `'/sys/devices/virtual/dmi/id/product_uuid'.` This doesn't work with all the distros like Ubuntu 16.04 and Fedora. 

updating code to fetch VM uuid from `/sys/class/dmi/id/product_serial`



**Which issue this PR fixes**
fixes #

**Special notes for your reviewer**:
Verified UUID  is matching with VM UUID on ubuntu 16.04, Cent OS 7.3 , and Photon OS

@BaluDontu @tusharnt

**Release note**:

```release-note
NONE
```
2017-05-08 15:46:37 -07:00
Kubernetes Submit Queue
e6e382563b Merge pull request #41903 from justinsb/clearer_test_logging
Automatic merge from submit-queue

Clearer logging from e2e DialFromNode

I was a little confused by the messages previously.

```release-note
NONE
```
2017-05-08 15:42:53 -07:00
Kubernetes Submit Queue
c4eeb238ce Merge pull request #45493 from shyamjvs/yolo
Automatic merge from submit-queue (batch tested with PRs 44727, 45409, 44968, 45122, 45493)

Fix gcloud retries cmd to rightly capture return code

Fixes https://github.com/kubernetes/kubernetes/issues/45489
Seems like the issue was in doing this:
```
local var=$(cmd)
local ret_code=$?  #This actually captures return code of "local" above and not "cmd"
```

cc @wojtek-t @gmarek
2017-05-08 14:54:42 -07:00
Kubernetes Submit Queue
a3cf8b95da Merge pull request #45122 from ravisantoshgudimetla/priority_overflow#24720
Automatic merge from submit-queue (batch tested with PRs 44727, 45409, 44968, 45122, 45493)

Total priority overflow check

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

**Special notes for your reviewer**:
@adohe. I have borrowed some parts of your code in the closed PR and created this one.

**Release note**:

```release-note
This fixes the overflow for priorityconfig-  valid range {1, 9223372036854775806}.
```
2017-05-08 14:54:40 -07:00
Kubernetes Submit Queue
332b095ca9 Merge pull request #44968 from MrHohn/kube-proxy-healthcheck
Automatic merge from submit-queue (batch tested with PRs 44727, 45409, 44968, 45122, 45493)

Separate healthz server from metrics server in kube-proxy

From #14661, proposal is on kubernetes/community#552.

Couple bullet points as in commit:
- /healthz will be served on 0.0.0.0:10256 by default.
- /metrics and /proxyMode will be served on port 10249 as before.
- Healthz handler will verify timestamp in iptables mode.

/assign @nicksardo @bowei @thockin 

**Release note**:

```release-note
NONE
```
2017-05-08 14:54:38 -07:00
Kubernetes Submit Queue
95d8fbb599 Merge pull request #45409 from humblec/glusterfs-code-cleanup
Automatic merge from submit-queue (batch tested with PRs 44727, 45409, 44968, 45122, 45493)

More go friendly variable names.

clusterId -> clusterID
volumeId  -> volumeID

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2017-05-08 14:54:37 -07:00
Kubernetes Submit Queue
f4fc4be805 Merge pull request #44727 from x1957/master
Automatic merge from submit-queue

adds log when gpuManager.start() failed

If gpuManager.start() returns error, there is no log.

We confused with scheduler do not schedule any pod(with gpu) to one node.
kubectl describe node xxx shows there is no gpu on that node, because the gpu driver do not work on that node, gpuManager.start() failed, but we can not see anything in log.
2017-05-08 14:27:48 -07:00
Kubernetes Submit Queue
448f850159 Merge pull request #45505 from deads2k/controller-04-expose
Automatic merge from submit-queue

expose controller initializers

Expose the initializers and resource availability for consistent composition and named controller exposure by downstream consumers.
2017-05-08 13:25:31 -07:00
Kubernetes Submit Queue
e2924880df Merge pull request #41799 from johscheuer/fix-quobyte-example
Automatic merge from submit-queue

Remove unnecessary constants and add type to secret

**What this PR does / why we need it**:
Adds the type field to the secret for the `persistent-volume-provisioning` example of Quobyte. Also remove unnecessary constants in Quobyte Code base.

FYI
@rootfs @saad-ali @quolix
2017-05-08 13:25:22 -07:00
Timothy St. Clair
3ea4de60d9 Add a utility to convert componentconfig into a configmap 2017-05-08 15:18:27 -05:00
Shyam Jeedigunta
2e800eef20 Fix add-metadata command for kubemark master 2017-05-08 20:44:20 +02:00
Seth Jennings
77ac3290d6 check for walkErr before fileInfo deref 2017-05-08 13:39:01 -05:00
deads2k
b7161a02b2 expose controller initializers 2017-05-08 14:34:18 -04:00
Shyam Jeedigunta
efc84378b8 Fix gcloud retries cmd to rightly capture return code 2017-05-08 19:34:26 +02:00
Klaus Ma
63d194b626 Removed old scheduler constructor. 2017-05-08 11:09:25 -04:00
Kubernetes Submit Queue
843c40e32e Merge pull request #45370 from deads2k/server-23-handlers
Automatic merge from submit-queue

refactor names for the apiserver handling chain

The names and structure around the handling chain got a bit confused.  This simplifies it back out into a single struct with three parts: overall handler, gorestful handler, pathrecording mux and makes the delegate wiring simpler
2017-05-08 07:06:27 -07:00
Kubernetes Submit Queue
6dab46e3fb Merge pull request #45235 from deads2k/auth-03-remove-header
Automatic merge from submit-queue

remove bearer token from headers after we consume it

Updates the bearer token authenticator to remove the bearer token from the request headers after it is consumed.  Nothing else in the stack should try to use it and we don't want to accidentally leak it somewhere.

@liggitt @kubernetes/sig-auth-pr-reviews
2017-05-08 06:21:54 -07:00
Kubernetes Submit Queue
08a030f464 Merge pull request #45088 from xilabao/add-validate-in-create-rolebinding
Automatic merge from submit-queue

add validate in create rolebinding
2017-05-08 06:21:49 -07:00
Kubernetes Submit Queue
446d8959a8 Merge pull request #45483 from mwielgus/ca0.5.4
Automatic merge from submit-queue

Bump cluster autoscaler to 0.5.4

Fixes scale down issues with pods ignoring SIGTERM.
2017-05-08 06:21:45 -07:00
Kubernetes Submit Queue
69f2665c80 Merge pull request #45445 from xiangpengzhao/cleanup-petset
Automatic merge from submit-queue

Clean up petset

**What this PR does / why we need it**:
Rename legacy petset to statefulset.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-05-08 06:21:35 -07:00
Kubernetes Submit Queue
a04608d50d Merge pull request #45485 from mwielgus/owners-saltbase
Automatic merge from submit-queue

Make Cluster Autoscaler maintainers the owner of cluster/saltbase/clusterautoscaler

CA folks are frequently increasing the version of CA. It will make their life easier if they can do without nagging K8S uber-owners.

cc: @MaciekPytel @wojtek-t @fgrzadkowski
2017-05-08 05:30:06 -07:00
deads2k
4389f71576 refactor names for the apiserver handling chain 2017-05-08 07:55:31 -04:00
Marcin Wielgus
c5522b8f09 Make Cluster Autoscaler maintainers the owner of cluster/saltbase/clusterautoscaler 2017-05-08 13:40:06 +02:00
Marcin Wielgus
a4a44a5c44 Bump cluster autoscaler to 0.5.4 2017-05-08 13:27:28 +02:00
Cao Shufeng
a393e95018 Remove leaked tmp file in unit tests 2017-05-08 18:07:02 +08:00
Kubernetes Submit Queue
3a81a86034 Merge pull request #45087 from sttts/sttts-sni-key-cert
Automatic merge from submit-queue

apiserver: fix --tls-sni-cert-key doc string

Fixes #43961.
2017-05-08 02:37:27 -07:00
Dr. Stefan Schimanski
b799e62e1a apiserver: tri-state watch cache capacity: off, default, value 2017-05-08 11:29:01 +02:00
xiangpengzhao
3e389566bf
Display <none> when port is empty. 2017-05-08 16:08:49 +08:00
xilabao
0c0a32d870 add validate in create rolebinding 2017-05-08 15:52:44 +08:00
Kubernetes Submit Queue
1780a527f6 Merge pull request #45462 from zhangxiaoyu-zidif/update-federation-link
Automatic merge from submit-queue

federation:update outdated link

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

federation:update outdated link

**Release note**:

```release-note
NONE
```
2017-05-07 19:01:51 -07:00
zhangxiaoyu-zidif
a76c4cee7e federation:update outdated link 2017-05-08 09:07:40 +08:00