Commit Graph

34496 Commits (83fa5dff5dafe71c89e39c42e63f9c09620f7ea7)

Author SHA1 Message Date
Kubernetes Submit Queue 83fa5dff5d Merge pull request #31508 from wojtek-t/grab_etcd_logs_from_kubemark
Automatic merge from submit-queue

Grab etcd logs from kubemark & retry etcd starts to avoid image pull errors

Ref #31105

@gmarek
2016-08-26 04:00:46 -07:00
Kubernetes Submit Queue 76a458ccb8 Merge pull request #31507 from mwielgus/ca-0.3.0-b4
Automatic merge from submit-queue

Bump cluster autoscaler to 0.3.0-beta4
2016-08-26 04:00:41 -07:00
Kubernetes Submit Queue 591ac0d97b Merge pull request #31506 from piosz/rescheduler-version
Automatic merge from submit-queue

Bumped Rescheduler version
2016-08-26 04:00:36 -07:00
Kubernetes Submit Queue f0bc7d489c Merge pull request #31406 from foxish/petset-hotloop
Automatic merge from submit-queue

Petset hotlooping issue.

Part of the fix for #27634
It completely fixes it when we also get https://github.com/kubernetes/kubernetes/pull/31396 merged.
2016-08-26 04:00:32 -07:00
Kubernetes Submit Queue 0d6d0603e5 Merge pull request #31443 from caesarxuchao/enalbe-gc-in-tests
Automatic merge from submit-queue

Enable gc by default in more tests

I think this should only affect the 100-node test.

cc @lavalamp
2016-08-26 03:19:44 -07:00
Kubernetes Submit Queue dd42d95bab Merge pull request #31000 from mksalawa/fix_pods_from_all_namespaces
Automatic merge from submit-queue

Fix getting pods from all namespaces

**What this PR does / why we need it**:
Use Heapster handler for pods from all namespaces (added in the new version).

Depends on #30993
2016-08-26 03:19:39 -07:00
Wojciech Tyczynski 752f414905 Store logs from etcd in kubemark 2016-08-26 11:46:02 +02:00
Wojciech Tyczynski 52498e6050 Retry etcd starting in kubemark 2016-08-26 11:46:02 +02:00
Kubernetes Submit Queue c2440221c4 Merge pull request #31500 from wojtek-t/tweak_resource_limits
Automatic merge from submit-queue

Tweak resource constraints in scalability tests [flaky tests fix]

Ref #31105
2016-08-26 02:34:49 -07:00
Kubernetes Submit Queue 88f6a67c7c Merge pull request #31217 from mfanjie/fix-service-controller-defect
Automatic merge from submit-queue

persist services need to be retried in service controller cache.

fix issue reported by @anguslees
more detail on #25189
2016-08-26 02:34:44 -07:00
Marcin Wielgus 9812884264 Bump cluster autoscaler to 0.3.0-beta4 2016-08-26 11:24:24 +02:00
Kubernetes Submit Queue ecf24101d3 Merge pull request #31485 from m1093782566/m109-proxy-fix-naming
Automatic merge from submit-queue

[kube-proxy] Fix naming errors and sentence breaking in pkg/proxy/healthcheck

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

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

addresses #31484 

@girishkalele
2016-08-26 01:53:24 -07:00
Kubernetes Submit Queue 9deb18b989 Merge pull request #31378 from yifan-gu/rkt_fetch_no_store
Automatic merge from submit-queue

rkt: Force `rkt fetch` to fetch from remote to conform the image pull policy.

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

Use `--no-store` option for `rkt fetch` to force it to fetch from remote.
However, `--no-store` will fetch the remote image regardless of whether the content of the image has changed or not. 
This causes performance downgrade when the image tag is ':latest' and the image pull policy is 'always'. 
The issue is tracked in https://github.com/coreos/rkt/issues/2937.
2016-08-26 01:53:20 -07:00
Kubernetes Submit Queue a9754114a5 Merge pull request #31172 from bprashanth/nginxe2e
Automatic merge from submit-queue

Nginx ingress e2es

Runs the basic ingress conformance suite: https://github.com/kubernetes/kubernetes/blob/master/test/e2e/ingress_utils.go#L85
2016-08-26 01:53:14 -07:00
Piotr Szczesniak 0a3372272a Bumped Rescheduler version 2016-08-26 10:22:48 +02:00
Wojciech Tyczynski c106646d32 Tweak resource constraints in scalability tests 2016-08-26 10:19:45 +02:00
Kubernetes Submit Queue f73c684404 Merge pull request #31383 from janetkuo/run-attach-err
Automatic merge from submit-queue

Print to stderr when attach failed

@kubernetes/kubectl
2016-08-26 00:40:15 -07:00
Kubernetes Submit Queue d5033c27e4 Merge pull request #31392 from MrHohn/push-kube-dns
Automatic merge from submit-queue

Build and push kube-dns for 1.4 release.

Fix #31355.

Following docker images had been uploaded:
gcr.io/google_containers/kubedns-amd64:1.7
gcr.io/google_containers/kubedns-arm:1.7
gcr.io/google_containers/kubedns-arm64:1.7

Build for ppc64le is disabled by default, and it failed to be built using:
`KUBE_BUILD_PPC64LE=y make release`

I'm still working on making the ppc64le build. Updates will be added following this thread.

@girishkalele @thockin
2016-08-26 00:40:10 -07:00
Kubernetes Submit Queue df99dfd04d Merge pull request #31358 from screeley44/k8-get-pv
Automatic merge from submit-queue

Add ReclaimPolicy to the resource printer for 'get pv'

Propose we add the RECLAIMPOLICY (persistentVolumeReclaimPolicy) from resource_printer.go to show the policy when a user does a ```kubectl get pv```

```
[root@k8dev nfs]# kubectl get pv
NAME      CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS      CLAIM     REASON    AGE
pv-nfs    1Gi        RWO           Retain          Available                       1m
pv-nfs2   1Gi        RWO           Delete          Available                       4s

```
2016-08-25 23:56:20 -07:00
Kubernetes Submit Queue 8705a41c56 Merge pull request #30253 from AdoHe/fix_nodeport
Automatic merge from submit-queue

Allow services which use same port, different protocol to use the same nodePort for both

fix #20092

@thockin @smarterclayton ptal.
2016-08-25 23:16:03 -07:00
Kubernetes Submit Queue 0b523f7482 Merge pull request #31225 from pigmej/typos_englishify_pkg_apis
Automatic merge from submit-queue

Fix various typos in pkg/apis

Just fixed some typos + "englishify" some stuff in pkg/apis
2016-08-25 22:31:15 -07:00
Kubernetes Submit Queue 1184800cbb Merge pull request #30730 from janetkuo/prevent-overlapping-deployment
Automatic merge from submit-queue

Handle overlapping deployments gracefully

Fixes #30028
2016-08-25 21:50:56 -07:00
Kubernetes Submit Queue feb4d2004a Merge pull request #31064 from soundcloud/grobie/filter-internal-labels
Automatic merge from submit-queue

Filter internal Kubernetes labels from Prometheus metrics

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

Kubernetes uses Docker labels as storage for some internal labels. The
majority of these labels are not meaningful metric labels and a few of
them are even harmful as they're not static and cause wrong aggregation
results.

This change provides a custom labels func to only attach meaningful
labels to cAdvisor exported metrics.

**Which issue this PR fixes**

google/cadvisor#1312

**Special notes for your reviewer**:

Depends on google/cadvisor#1429. Once that is merged, I'll update the vendor update commit.

**Release note**:

```release-note
Remove environment variables and internal Kubernetes Docker labels from cAdvisor Prometheus metric labels.

Old behavior:

- environment variables explicitly whitelisted via --docker-env-metadata-whitelist were exported as `container_env_*=*`. Default is zero so by default non were exported
- all docker labels were exported as `container_label_*=*`

New behavior:

- Only `container_name`, `pod_name`, `namespace`, `id`, `image`, and `name` labels are exposed
- no environment variables will be exposed ever via /metrics, even if whitelisted
```

---

Given that we have full control over the exported label set, I shortened the pod_name, pod_namespace and container_name label names. Below an example of the change (reformatted for readability).

```
# BEFORE
container_cpu_cfs_periods_total{
  container_label_io_kubernetes_container_hash="5af8c3b4",
  container_label_io_kubernetes_container_name="sync",
  container_label_io_kubernetes_container_restartCount="1",
  container_label_io_kubernetes_container_terminationMessagePath="/dev/termination-log",
  container_label_io_kubernetes_pod_name="popularsearches-web-3165456836-2bfey",
  container_label_io_kubernetes_pod_namespace="popularsearches",
  container_label_io_kubernetes_pod_terminationGracePeriod="30",
  container_label_io_kubernetes_pod_uid="6a291e48-47c4-11e6-84a4-c81f66bdf8bd",
  id="/docker/68e1f15353921f4d6d4d998fa7293306c4ac828d04d1284e410ddaa75cf8cf25",
  image="redacted.com/popularsearches:42-16-ba6bd88",
  name="k8s_sync.5af8c3b4_popularsearches-web-3165456836-2bfey_popularsearches_6a291e48-47c4-11e6-84a4-c81f66bdf8bd_c02d3775"
} 72819

# AFTER
container_cpu_cfs_periods_total{
  container_name="sync",
  pod_name="popularsearches-web-3165456836-2bfey",
  namespace="popularsearches",
  id="/docker/68e1f15353921f4d6d4d998fa7293306c4ac828d04d1284e410ddaa75cf8cf25",
  image="redacted.com/popularsearches:42-16-ba6bd88",
  name="k8s_sync.5af8c3b4_popularsearches-web-3165456836-2bfey_popularsearches_6a291e48-47c4-11e6-84a4-c81f66bdf8bd_c02d3775"
} 72819
```

Feedback requested on:
* Label names. Other suggestions? Should we keep these very long ones?
* Do we need to export io.kubernetes.pod.uid? It makes working with the metrics a bit more complicated and the pod name is already unique at any time (but not over time). The UID is aslo part of `name`.

As discussed with @timstclair, this should be added to v1.4 as the current labels are harmful.

PTAL @jimmidyson @fabxc @vishh
2016-08-25 21:11:10 -07:00
m1093782566 e16e5c4fec fix naming error and sentence breaking in pkg/proxy/healthcheck
Change-Id: Iee36ff4e497052f473f95f8f0a92421d85e3c416
2016-08-26 10:39:56 +08:00
Kubernetes Submit Queue d3ecad111e Merge pull request #28717 from freehan/ebtable
Automatic merge from submit-queue

Filter duplicate network packets in promiscuous bridge mode (with ebtables)

also fixes: #30783
2016-08-25 19:12:09 -07:00
Kubernetes Submit Queue 3af6ad1c33 Merge pull request #31478 from david-mcmahon/fix-cache-gen
Automatic merge from submit-queue

Fix the creation of the jobResultsCache.json file.

Let's try this again.
ref https://github.com/kubernetes/release/pull/60
2016-08-25 18:33:52 -07:00
Kubernetes Submit Queue c70583ac10 Merge pull request #30902 from krousey/version_metric
Automatic merge from submit-queue

Split the version metric out to its own package

This PR breaks a client dependency on prometheus. Combined with #30638, the client will no longer depend on these packages.
2016-08-25 18:33:48 -07:00
David McMahon 55bfc885db Fix the creation of the jobResultsCache.json file. 2016-08-25 17:27:05 -07:00
Kubernetes Submit Queue a3ccdfaa19 Merge pull request #31466 from caesarxuchao/minor-doc
Automatic merge from submit-queue

minor client-go doc change

I'll test is after https://github.com/kubernetes/k8s.io/pull/8 is merged.
2016-08-25 17:23:06 -07:00
Kubernetes Submit Queue 36a6aee27f Merge pull request #30931 from Clarifai/ext-svc-ref-dns
Automatic merge from submit-queue

Add ExternalName kube-dns e2e test

ExternalName allows kubedns to return CNAME records for external
services. No proxying is involved.

Built on top of and includes #30599 

See original issue at
https://github.com/kubernetes/kubernetes/issues/13748

Feature tracking at
https://github.com/kubernetes/features/issues/33

The e2e test is at least as comprehensive as the one for headless services (namely, only to some degree)

```release-note
Add ExternalName services as CNAME references to external ones
```
2016-08-25 17:23:01 -07:00
Kubernetes Submit Queue 610a978e48 Merge pull request #31363 from rmmh/5day-update
Automatic merge from submit-queue

Get 5 days of test history when updating test owners.
2016-08-25 16:44:15 -07:00
Kubernetes Submit Queue 40efde7e0a Merge pull request #31390 from hongchaodeng/fix
Automatic merge from submit-queue

return destroy func to clean up internal resources of storage

What?
Provide a destroy func to clean up internal resources of storage.
It changes **unit tests** to clean up resources. (Maybe fix integration test in another PR.)

Why?
Although apiserver is designed to be long running, there are some cases that it's not.
See https://github.com/kubernetes/kubernetes/issues/31262#issuecomment-242208771
We need to gracefully shutdown and clean up resources.
2016-08-25 16:44:10 -07:00
AdoHe 10440ed47d fix same node port different protocols conflict issue 2016-08-26 07:36:45 +08:00
Chao Xu 0c88db3fa5 minor client-go doc change 2016-08-25 16:26:54 -07:00
Kubernetes Submit Queue a953eb42b1 Merge pull request #30551 from david-mcmahon/job-cache
Automatic merge from submit-queue

Construct a valid json file for the job cache.
2016-08-25 15:55:19 -07:00
Kubernetes Submit Queue f090fd158a Merge pull request #31367 from Amey-D/gci-kubelet
Automatic merge from submit-queue

gci: decouple from the built-in kubelet version

Prior to this change, configure.sh would:
(1) compare versions of built-in kubelet and downloaded kubelet, and
(2) bind-mount downloaded kubelet at /usr/bin/kubelet in case of
version mismatch
    
With this change, configure.sh:
(1) compares the two versions only on test clusters, and
(2) uses the actual file paths to start kubelet w/o any bind-mounting
    
To allow (2), this change also provides its own version of kubelet
systemd service file.
    
Effectively with this change we will always use the downloaded kubelet
binary along with its own systemd service file on non-test clusters.  The
main advantage is this change does not rely on the kubelet being built in to
the OS image.

@dchen1107 @wonderfly  can you please review

cc/ @kubernetes/goog-image FYI
2016-08-25 15:55:14 -07:00
Yifan Gu de402ac2c5 rkt: Force `rkt fetch` to fetch from remote to conform the fetch policy. 2016-08-25 14:44:44 -07:00
Kubernetes Submit Queue 75fba4c953 Merge pull request #31445 from pmorie/goroutinemap-godoc
Automatic merge from submit-queue

Improve godoc for goroutinemap

Improves the godoc of goroutinemap; found while preparing to use this type in another PR.

@saad-ali
2016-08-25 14:07:08 -07:00
Kubernetes Submit Queue a143cdd072 Merge pull request #31409 from Random-Liu/fix-verify-golint-sort-hint
Automatic merge from submit-queue

Fix sort hint in `hack/verify-golint.sh`

The `verify-golint.sh` sorts all items with `LANG=C sort`, but it only hints developers to use `sort`, which causes a little trouble for me.

/cc @jfrazelle  @sttts
2016-08-25 14:07:01 -07:00
Kubernetes Submit Queue 863dd10ae4 Merge pull request #30540 from Random-Liu/refactor-node-e2e-framework
Automatic merge from submit-queue

Node Conformance Test: Refactor node e2e framework

For #30122, #30174.
Based on #30348.

**Please only review the last 3 commits.**

This PR is part of our roadmap to package node conformance test.
The 1st commit is from #30348, it removed unnecessary dependencies in the node e2e test framework, because we've statically linked these dependencies.

The PR refactored the node e2e framework. Moving different utilities into different packages under `pkg/`.

We need to do this because:
1) Files like e2e_remote.go and e2e_build.go should only be used by runner, but they were compiled into the test suite because they were placed in the same package. The worst thing is that it will introduce some never used flags in the test suite binary.
2) Make the directory structure more clear. Only test should be placed in `test/e2e_node`, other utilities should be placed in different packages in `pkg/`.

@dchen1107 @vishh 
/cc @kubernetes/sig-node @kubernetes/sig-testing
2016-08-25 14:06:56 -07:00
Kubernetes Submit Queue df54a28361 Merge pull request #29216 from mtaufen/kconf-refactor
Automatic merge from submit-queue

Refactor to simplify the hard-traveled path of the KubeletConfiguration object

### There are two main goals of this PR:
- Make `NewMainKubelet` take `KubeletConfiguration` and `KubeletDeps` as its only arguments.
- Finally eliminate the legacy `KubeletConfig` type.

### Why am I doing this?
Long story short, I started adding an endpoint to the Kubelet to display the *current* config that the Kubelet was running with, and I realized a few things:
- There were so many transformations to the configuration, in so many different places, before it was used that I wasn't confident the values initially passed in on the `KubeletConfiguration` would be the correct values to report by the time someone used the endpoint to check on them.
- Trying to reconstruct a `KubeletConfiguration` object from a mix of the `Kubelet` object and the legacy `KubeletConfig` object would just add to the mess (not to mention maintenance burden), and it would be much easier if we passed the `KubeletConfiguration` all the way down to where we construct the `Kubelet` object, and then just store a reference to the `KubeletConfiguration` object on the `Kubelet` for later retrieval. 
- My hope is that by eliminating unnecessary internal transformations to the config information, and by consolidating the remaining ones in a single place (`NewMainKubelet`), we can have a much clearer understanding of what happens to the config before it makes it to the `Kubelet` object, and also a better ability to report up-to-date information on the status of the Kubelet. 

So I started cleaning things up :-). 

### Discussion points

It was relatively simple to get `NewMainKubelet` to just take the legacy `KubeletConfig` as its only argument, because most of its arguments were just passing through `KubeletConfig` fields or passing information that was generated solely from `KubeletConfig` fields.

Completely eliminating the legacy `KubeletConfig` type has been more difficult, because the fields of the `KubeletConfiguration` do not have a one-to-one relationship with the fields of the `KubeletConfig`. While I was able to eliminate many of the `KubeletConfig` fields, I'm starting to get into the nontrivial stuff and I'd like to get a discussion started on what should happen with the remaining fields (pending cherry-picking notwithstanding). 

On my `kconf-refactor` branch, the legacy `KubeletConfig` object is down to the following 27 fields (from the initial 93). I'd really appreciate any guidance people have on what should happen with these fields.
```
type KubeletConfig struct {
	Auth                    server.AuthInterface
	AutoDetectCloudProvider bool
	Builder                 KubeletBuilder
	CAdvisorInterface       cadvisor.Interface
	Cloud                   cloudprovider.Interface
	ContainerManager        cm.ContainerManager
	DockerClient            dockertools.DockerInterface
	EventClient             *clientset.Clientset
	Hostname                string
	HostNetworkSources      []string
	HostPIDSources          []string
	HostIPCSources          []string
	KubeClient              *clientset.Clientset
	Mounter                 mount.Interface
	NetworkPlugins          []network.NetworkPlugin
	NodeName                string
	OOMAdjuster             *oom.OOMAdjuster
	OSInterface             kubecontainer.OSInterface
	PodConfig               *config.PodConfig
	Recorder                record.EventRecorder
	Reservation             kubetypes.Reservation
	TLSOptions              *server.TLSOptions
	Writer                  kubeio.Writer
	VolumePlugins           []volume.VolumePlugin
	EvictionConfig          eviction.Config
	ContainerRuntimeOptions []kubecontainer.Option
	Options                 []Option
}
```

The patterns I've seen so far with respect to eliminating `KubeletConfig` fields may be of some help:
- Some fields could just be eliminated, because they were either the same on `KubeletConfiguration` or just a typecast away from being the same. 
- Some fields from `KubeletConfiguration` just ended up in substructures of `KubeletConfig`; it was easy to just remove those substructure fields from `KubeletConfig` and construct them using local vars in `NewMainKubelet` instead. 
- Some fields, e.g. `Runonce`, were able to move into the `KubeletConfiguration`.


**P.S.** Part of the way I'm making the transition is by adding an extra `KubeletConfiguration` argument to functions that originally took a `KubeletConfig`, and field-by-field, switching those functions over to using information from the `KubeletConfiguration`. Once the `KubeletConfig` is gone, I'll remove the `KubeletConfig` argument, and the transition will be complete.

**Final note:**
Please try to keep in mind that this is not a general Kubelet cleanup effort, it is just me cleaning things up that are directly in the path of what I'm trying to do. Let's keep this focused on cleanup related to the path that config takes on it's way to the Kubelet.


**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```
Removed Flags
- Removes the --auth-path flag. This has been deprecated in favor of --kubeconfig for two releases.
```
2016-08-25 13:17:22 -07:00
David McMahon 8f0109ea21 Update CHANGELOG.md for v1.4.0-alpha.3. 2016-08-25 12:35:03 -07:00
Kubernetes Submit Queue 20e078fdb7 Merge pull request #31426 from mwielgus/ns-e2e-fix3
Automatic merge from submit-queue

Use deleteTimestamp in federated ns e2e tests

Fixes: #31317
2016-08-25 11:56:35 -07:00
Kubernetes Submit Queue a4665cff64 Merge pull request #31354 from janetkuo/sj-replace-e2e
Automatic merge from submit-queue

Update sj on UpdateStatus return value

Fixes #30542, #30549

cc @erictune
2016-08-25 11:56:31 -07:00
Paul Morie 1294267450 Improve godoc for goroutinemap 2016-08-25 14:25:05 -04:00
Kubernetes Submit Queue d836b248b2 Merge pull request #30738 from caesarxuchao/copy-keep-vendor
Automatic merge from submit-queue

Keep vendor/ and Godep/ when creating the staging client, add a readme

In copy.sh, instead of removing the vendor/, moving it to _vendor. vendor/ is needed when we publish the staging client to its own repository.
2016-08-25 11:17:44 -07:00
Kubernetes Submit Queue c63cd8fc20 Merge pull request #31396 from foxish/integer-overflow
Automatic merge from submit-queue

Fixed integer overflow bug in rate limiter.

```release-note
Fix overflow issue in controller-manager rate limiter
```

This PR fixes a bug in the delayed work-queue used by some controllers.
The integer overflow bug would previously cause hotlooping behavior after a few failures 
as `time.Duration(..)` on values larger than MaxInt64 behaves unpredictably, and 
after a certain value returns 0 always.

cc @bprashanth @pwittrock
2016-08-25 11:17:38 -07:00
Michael Taufen 7ae1458ab0 Remove the deprecated AuthPath from KubeletServer
It has been deprecated for two releases (1.2 and 1.3).
2016-08-25 10:57:31 -07:00
Michael Taufen 0afaeab9b1 Only try to connect to docker if we're actually using the docker runtime 2016-08-25 10:57:31 -07:00
Michael Taufen f277205f4f Kubelet Refactoring
This refactor removes the legacy KubeletConfig object and adds a new
KubeletDeps object, which contains injected runtime objects and
separates them from static config. It also reduces NewMainKubelet to two
arguments: a KubeletConfiguration and a KubeletDeps.

Some mesos and kubemark code was affected by this change, and has been
modified accordingly.

And a few final notes:

KubeletDeps:
KubeletDeps will be a temporary bin for things we might consider
"injected dependencies", until we have a better dependency injection
story for the Kubelet. We will have to discuss this eventually.

RunOnce:
We will likely not pull new KubeletConfiguration from the API server
when in runonce mode, so it doesn't make sense to make this something
that can be configured centrally. We will leave it as a flag-only option
for now. Additionally, it is increasingly looking like nobody actually uses the
Kubelet's runonce mode anymore, so it may be a candidate for deprecation
and removal.
2016-08-25 10:57:31 -07:00