Commit Graph

31897 Commits (5c0f0daae03855049665580d9985b991edde7e11)

Author SHA1 Message Date
Filip Grzadkowski 5c0f0daae0 Add and delete load balancer in front of apiserver. 2016-07-19 16:44:21 +02:00
k8s-merge-robot 89be039352 Merge pull request #28836 from wojtek-t/optimize_priorities_3
Automatic merge from submit-queue

Few more optimizations for scheduler

Ref #28590

@davidopp
2016-07-13 03:38:36 -07:00
k8s-merge-robot 6035d88881 Merge pull request #27277 from wojtek-t/cacher_index
Automatic merge from submit-queue

Implement first version of indexing in cacher

This PR adds a first version of indexing in cacher.

It has a really significant impact on performance - __in empty 2000-node cluster, apiserver cpu usage drops by ~75%.__

Not for 1.3, but we need this soon after 1.3 is done.

@lavalamp @mqliang @davidopp @gmarek @kubernetes/sig-scalability
2016-07-13 02:45:23 -07:00
Wojciech Tyczynski ea1d797f98 Avoid computing ports multiple times 2016-07-13 11:02:26 +02:00
Wojciech Tyczynski ae6b66207a Optimize selector spreading 2016-07-13 11:02:26 +02:00
Wojciech Tyczynski b9d13c5dbd Avoid computing pod resources multiple times 2016-07-13 11:01:53 +02:00
Wojciech Tyczynski 1d9bc58328 Extend Filter interface with Trigger() and use it for pods and nodes 2016-07-13 08:45:18 +02:00
Wojciech Tyczynski 7f7ef0879f Change filter to interface in storage.Interface 2016-07-13 08:44:22 +02:00
k8s-merge-robot eecbfb1a28 Merge pull request #25978 from thockin/dont-checkin-generated-code
Automatic merge from submit-queue

Don't check in generated code, part 1

This PR is a first step towards not commiting generated files, which make up a huge portion of "needs rebase" errors.  It only handles deep-copy generation and conversion generation.  More will come later, if the model passes muster.

This is a mega-PR.  Sorry.  It was necessary to do 2 generators to convince myself it worked, and the evolution of the techniques warranted multiple commits.  I have tried to keep the commits self-contained and reviewable.  

A quick summary of the major points in the series:

- Start by making everything call `make` rather than the various hack/* scripts.  The hack scripts still exist, but give a warning to use make instead, and then they do what they did before, so it should be compatible.

- Move deepcopy generation into the Makefile, so it is done automatically

- Move conversion generation into the Makefile, so it is done automatically

- Optimize makefile for faster rebuilds

- Make CI pass


Net result: if you run "make", it will rebuild any deepcopy or conversion files it needs.  It takes a few seconds to figure out there's nothing to do, but it should be a net savings.  There is more to do, and we can follow this up with other generators being converted, some of which are MUCH slower than these 2.


@wojtek-t @lavalamp @smarterclayton @bgrant0607 @mikedanese @madhusudancs
2016-07-12 23:29:46 -07:00
k8s-merge-robot ec47f5c926 Merge pull request #28874 from kevin-wangzefeng/fix-interpod-antiaffinity
Automatic merge from submit-queue

check PodAntiAffinity even when pod has no AntiAffinity constraints

Hard inter-pod anti-affinity is designed to be symmetric, in other word, the algorithm should check if AntiAffinity constraints from both the pod to be scheduled and pods already running are satisfied during scheduling.

Current implementation skipped the checking when pod has no AntiAffinity constraints, ignored the anti-affinity constraints of existing pods , which is not correct. This PR is to fix it.
2016-07-12 22:33:57 -07:00
Tim Hockin fef16dd541 Make update-generated-runtime work 2016-07-12 21:52:54 -07:00
Tim Hockin 0fc46afda6 Move make logic for generated files into a helper
This makes it a little easier to look at the main Makefile without getting
overwhelmed by code-generation stuff.
2016-07-12 21:52:54 -07:00
Tim Hockin 6ee6cc843a Add rules for all cmd/* subdirs
This is sort of gravy.  There's no good way to do this for arbitrary
directories because of the way Make works (we'd have to declare them all
PHONY).

If people hate using make directly we could wrap it in another level of
indirection, but I didn't yet.  E.g.

  build/make-all.sh -> make -> make-rules/all.sh -> go install

This would insulate people from 'make' atthe cost of custom build tools.  I
prefer being able to say 'make' and having it just work.
2016-07-12 21:52:54 -07:00
Tim Hockin f0ef726813 Make debugging Makefile a bit easier 2016-07-12 21:52:54 -07:00
Tim Hockin 6e516e1c8a make Jenkins pass 2016-07-12 21:52:54 -07:00
Tim Hockin 23bbf477f8 Document test procedures for Makefile 2016-07-12 21:52:54 -07:00
Tim Hockin 08546e5016 Run code-gen in a batch
This makes code generation MUCH MUCH faster.
2016-07-12 21:52:54 -07:00
Tim Hockin 9dd337d119 s/deep_copy/deepcopy/
Just a naming nit that was too hard to fixup-and-rebase.
2016-07-12 21:52:54 -07:00
Tim Hockin 1bd3918c15 Overhaul deps on generator tools
This forces a regeneration if the generation tools are rebuilt.

Also clean up Makefile a bit.
2016-07-12 21:52:54 -07:00
Tim Hockin a9f3ccdaa4 Fix Makefile deps to rebuild less often
This should only rebuild when ACTUALLY needed.
2016-07-12 21:52:54 -07:00
Tim Hockin 9613e15801 Make releases work 2016-07-12 21:52:54 -07:00
Tim Hockin 7e5b59b08c Include almost the whole tree in the build img 2016-07-12 21:52:54 -07:00
Tim Hockin 2a7b2fd37e Tighten up Makefile
Default SHELL and some other variables for max correctness.
2016-07-12 21:52:54 -07:00
Tim Hockin 9eb42ff108 Don't check in generated conversion code
Conversion is now generated by Makefile, on demand, rather than all at once.
Manually verified no net change in generated code.
2016-07-12 21:52:54 -07:00
Tim Hockin db42d52be4 Add a clean_generated make rule
Easier to clean up the mess when needed.
2016-07-12 21:52:54 -07:00
Tim Hockin 58441e8775 Don't check in generated deep-copy code
This mostly takes the previously checked in files and removes them, and moves
the generation to be on-demand instead of manual.  Manually verified no change
in generated output.
2016-07-12 21:52:54 -07:00
Tim Hockin 881e21c2d5 Link _output/bin/ to real binaries for this arch
This makes followup commits easier wrt finding binaries during build.
2016-07-12 21:52:00 -07:00
Tim Hockin faeef5c4ae Use make as the main build tool
This allows us to start building real dependencies into Makefile.

Leave old hack/* scripts in place but advise to use 'make'.  There are a few
rules that call things like 'go run' or 'build/*' that I left as-is for now.
2016-07-12 21:52:00 -07:00
k8s-merge-robot 708e753c72 Merge pull request #28679 from sttts/sttts-deepcopy-pointer-in
Automatic merge from submit-queue

Deepcopy: avoid struct copies and reflection Call

- make signature of generated deepcopy methods symmetric with `in *type, out *type`, avoiding copies of big structs on the stack
- switch to `in interface{}, out interface{}` which allows us to call them with without `reflect.Call`

The first change reduces runtime of BenchmarkPodCopy-4 from `> 3500ns` to around `2300ns`.

The second change reduces runtime to around `1900ns`.
2016-07-12 21:45:43 -07:00
k8s-merge-robot 47d06dd9c2 Merge pull request #28606 from dims/fix-issues-19636
Automatic merge from submit-queue

Fix kubectl run to print object on dry run

Originally Authored By tnachen in PR:
https://github.com/kubernetes/kubernetes/pull/25842

Fixes #19636
2016-07-12 21:05:58 -07:00
kevin-wangzefeng ff6280fa5b update inter-pod affinity predicates, check PodAntiAffinity even when pod has no AntiAffinity constraints 2016-07-13 03:55:01 +00:00
k8s-merge-robot 23f0edb8b0 Merge pull request #27713 from kargakis/wait-for-synced-rs-in-recreate
Automatic merge from submit-queue

controller: wait for synced old replica sets on Recreate

Partially fixes https://github.com/kubernetes/kubernetes/issues/27362

Any other work on it should be handled in the replica set level (and/or kubelet if it's required)

@kubernetes/deployment PTAL
2016-07-12 20:30:12 -07:00
k8s-merge-robot 92630e1a5d Merge pull request #28677 from asalkeld/devel-e2e-doc
Automatic merge from submit-queue

Fix some errors in the e2e doc and make it more consistent


- "--tests" is not a valid argument
- use --ginko-skip to exclude (not focus)
- add "--check_node_count=false" to test against local cluster
- always use "--" for long args (there was a mix of "-" and "--" and it was a bit confusing)
2016-07-12 19:50:28 -07:00
k8s-merge-robot aa9452d6cc Merge pull request #28645 from timstclair/dev
Automatic merge from submit-queue

Add development doc with go tips & tools

Encourage knowledge sharing among Kubernetes developers!
2016-07-12 19:06:18 -07:00
k8s-merge-robot 0cd93cfc53 Merge pull request #28708 from euank/node-e2e-image-conf
Automatic merge from submit-queue

node_e2e: configure gce images via config file

This file provides the abiliy to specify image project on a per-image
basis and is more extensible for future changes.

For backwards compatibility and local development convenience, the
existing flags are kept and should work.

The eventual goal is to be able to source some images, such as the CoreOS one (and possibly containervm one) from their upstream projects and do all new configuration changes via a cloud-init key added to the image config.

This PR is a first step there. A following PR will add a config key of `cloud-init` or `user-data` and migrate the CoreOS e2e to use that.

This motivation is driven by the fact that currently the changes needed for the CoreOS image can all be done quickly in cloud-init and this will make it much easier to update the image and ensure that changes are applied consistently.

/cc @timstclair @vishh @yifan-gu @pwittrock
2016-07-12 19:06:14 -07:00
k8s-merge-robot 0efd03810c Merge pull request #28801 from janetkuo/kubectl-run-silent
Automatic merge from submit-queue

Add --quiet to hide the 'waiting for pods to be running' message in kubectl run

Ref #28695  

@kubernetes/kubectl 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-07-12 16:37:22 -07:00
k8s-merge-robot f2303edc36 Merge pull request #28751 from Random-Liu/use-patch-to-set-node-condition
Automatic merge from submit-queue

Change route controller to use patch to set node condition.

Change the route controller to use `PatchStatus` function in `NodeExpansion` to update node condition.
@caesarxuchao 

/cc @wojtek-t 


[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-07-12 16:03:35 -07:00
k8s-merge-robot 5590553811 Merge pull request #28304 from ericchiang/fix-rbac-non-resource-url-rule-evaluation
Automatic merge from submit-queue

rbac authorizer: cleanups to rule evaluation for non-resource URLs

An few oversights in the RBAC authorizer. Fixes #28291 and permits non-resource URLs to use stars in the path. E.g. ("/apis/*").

cc @liggitt @kubernetes/sig-auth
2016-07-12 15:30:50 -07:00
k8s-merge-robot 2114b3bcac Merge pull request #28858 from mikedanese/stage-push
Automatic merge from submit-queue

fix image staging to non gcr.io repos
2016-07-12 14:51:35 -07:00
k8s-merge-robot b6ffcf7875 Merge pull request #28213 from Random-Liu/docker-validation-node-e2e
Automatic merge from submit-queue

Node E2E: Prep for continuous Docker validation node e2e test

Based on https://github.com/kubernetes/kubernetes/pull/28516, for https://github.com/kubernetes/kubernetes/issues/25215.

https://github.com/kubernetes/kubernetes/pull/26813 added support to run e2e test on gci preview image and newest docker version.
This PR added the same support to node e2e test.

The main dependencies of node e2e test are `docker`, `kubelet`, `etcd` and `apiserver`.
Currently, node e2e test builds `kubelet` and `apiserver` locally, and copies them into `/tmp` directory in VM instance. GCI also has built-in `docker`. So the only dependency missing is `etcd`.

This PR injected a simple cloud-init script when creating instance to install `etcd` during node startup.

@andyzheng0831 for the cloud init script.
@wonderfly for the gci instance setup.
@pwittrock for the node e2e test change.

/cc @dchen1107 

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-07-12 14:51:29 -07:00
k8s-merge-robot c9e9f4d934 Merge pull request #28726 from madhusudancs/known-versions-1-4
Automatic merge from submit-queue

Add known versions to release 1.4 clientset.

These imports install the API groups and register them with the API machinery. The release_1_4 clientset cannot be used without these imports. 

Follow up for PR #26588

@kubernetes/sig-api-machinery


[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-07-12 14:17:46 -07:00
Mike Danese c5b5e1f28e fix image staging to non gcr.io repos 2016-07-12 13:46:00 -07:00
k8s-merge-robot b543e61215 Merge pull request #26554 from kargakis/fix-expose-container-port
Automatic merge from submit-queue

kubectl: make --container-port actually work for expose

Even if it was recently deprecated, it should work as expected.

@kubernetes/kubectl
2016-07-12 13:12:53 -07:00
k8s-merge-robot d90cc907c4 Merge pull request #27438 from gmarek/controllerDeletion
Automatic merge from submit-queue

Controllers doesn't take any actions when being deleted.

I started doing it for other controllers but it's not always clear to me how it should work. I'll be adding other ones as separate commits to this PR.

cc @caesarxuchao @lavalamp
2016-07-12 12:37:09 -07:00
Janet Kuo 268b93ea75 Add --quiet to hide the 'waiting for pods to be running' message in kubectl run 2016-07-12 11:56:58 -07:00
Dr. Stefan Schimanski 629b25daf9 Run hack/update-all.sh 2016-07-12 20:36:48 +02:00
Dr. Stefan Schimanski d46cbfd3e0 Turn pkg/api/pod_example.json into go struct to avoid noise in pprof 2016-07-12 20:36:48 +02:00
Madhusudan.C.S eedc9d13d2 Add known versions to release 1.4 clientset. 2016-07-12 10:44:24 -07:00
Random-Liu 59ea5c088b Change route controller to use patch to set node condition. 2016-07-12 10:30:33 -07:00
Eric Chiang addc4b166c rbac authorizer: support non-resource urls with stars ("/apis/*") 2016-07-12 10:01:53 -07:00