Commit Graph

731 Commits

Author SHA1 Message Date
k8s-merge-robot
dee24333ff Merge pull request #25161 from derekwaynecarr/format_quota_error
Automatic merge from submit-queue

Sort resources in quota errors to avoid duplicate events

Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1333122

Errors describing why a request was rejected to quota would get variable responses (cpu=x,memory=y or memory=x,cpu=y) which caused duplicate events for the same root cause.

/cc @ncdc @jwforres
2016-05-10 04:39:11 -07:00
Kevin
b7014561c1 Add admission controller to limit pod anti affinity topologykey to node level 2016-05-09 12:23:41 +00:00
k8s-merge-robot
f40fe7173b Merge pull request #24304 from cjcullen/cacheauth
Automatic merge from submit-queue

Support persisting config from kubecfg AuthProvider plugins

Plumbs through an interface to the plugin that can persist a `map[string]string` config for just that plugin. Also adds `config` to the AuthProvider serialization type, and `Login()` to the AuthProvider plugin interface.
Modified the gcp AuthProvider to cache short-term access tokens in the kubecfg file.

Builds on #23066 
@bobbyrullo @deads2k @jlowdermilk @erictune
2016-05-08 13:27:57 -07:00
k8s-merge-robot
5988080396 Merge pull request #23795 from mqliang/rc-ns-index
Automatic merge from submit-queue

add namespace index for cache

@wojtek-t 

Implement in this approach make the change of lister.go small, but we should replace all `NewInformer()` to `NewIndexInformer()`, even when someone not want to filter by namespace(eg. gc_controller and scheduler). Any suggestion?
2016-05-08 12:09:01 -07:00
CJ Cullen
13a7d92d0f Add a ConfigPersister for AuthProvider plugins in kubectl/clients. 2016-05-07 18:15:18 -07:00
David Oppenheimer
b0bd3ff167 Move inter-pod affinity predicate and priority functions from default to
non-default due to negative performance effects even when not using
the feature.
2016-05-07 16:57:07 -07:00
derekwaynecarr
ca7a8b50e6 Sort resources in quota errors to avoid duplicate events 2016-05-06 17:44:28 -04:00
Wojciech Tyczynski
a51f266ebf Remove nodeName from predicate signature. 2016-05-06 11:23:37 +02:00
mqliang
9011207f18 add namespace index to rc and pod 2016-05-06 17:12:36 +08:00
Kevin
82ba4f077e implement inter pod topological affinity and anti-affinity 2016-05-06 06:46:23 +00:00
Clayton Coleman
e0ebcf4216
Split the storage and negotiation parts of Codecs
The codec factory should support two distinct interfaces - negotiating
for a serializer with a client, vs reading or writing data to a storage
form (etcd, disk, etc). Make the EncodeForVersion and DecodeToVersion
methods only take Encoder and Decoder, and slight refactoring elsewhere.

In the storage factory, use a content type to control what serializer to
pick, and use the universal deserializer. This ensures that storage can
read JSON (which might be from older objects) while only writing
protobuf. Add exceptions for those resources that may not be able to
write to protobuf (specifically third party resources, but potentially
others in the future).
2016-05-05 12:08:23 -04:00
Wojciech Tyczynski
3aadafd411 Use NegotiatedSerializer in client 2016-05-04 10:57:36 +02:00
Clayton Coleman
fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
k8s-merge-robot
2347d0f047 Merge pull request #24601 from deads2k/qualify-admission-attributes
Automatic merge from submit-queue

fully qualify admission resources and kinds

Fully qualifies the `Kind` and `Resource` fields for admission attributes.  The information was getting filtered at the `RESTHandler` before.

@derekwaynecarr
2016-04-28 05:12:28 -07:00
k8s-merge-robot
00308f7a9f Merge pull request #24598 from wojtek-t/improve_scheduler_predicates
Automatic merge from submit-queue

Store node information in NodeInfo

This is significantly improving scheduler throughput.

On 1000-node cluster:
- empty cluster: ~70pods/s
- full cluster: ~45pods/s
Drop in throughput is mostly related to priority functions, which I will be looking into next (I already have some PR #24095, but we need for more things before).

This is roughly ~40% increase.
However, we still need better understanding of predicate function, because in my opinion it should be even faster as it is now. I'm going to look into it next week.

@gmarek @hongchaodeng @xiang90
2016-04-28 02:17:59 -07:00
k8s-merge-robot
d0b887e4e0 Merge pull request #24595 from zhouhaibing089/httpserverclose
Automatic merge from submit-queue

Uncomment the code that caused by #19254

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

@lavalamp
2016-04-28 01:41:16 -07:00
k8s-merge-robot
c7d1637a0b Merge pull request #24525 from wojtek-t/scheduler_traces
Automatic merge from submit-queue

Add traces to scheduler

This will simplify performance debugging of scheduler.

@davidopp @hongchaodeng @xiang90
2016-04-27 07:16:07 -07:00
deads2k
0061479890 fully qualify admission resources and kinds 2016-04-26 07:55:33 -04:00
zhouhaibing089
bf1a3f99c0 Uncomment the code that cause by #19254 2016-04-25 23:21:31 +08:00
deads2k
d3c6363093 use single writer to improve quota performance 2016-04-25 10:42:26 -04:00
Wojciech Tyczynski
1835c8528d Store node information in NodeInfo 2016-04-25 10:08:05 +02:00
k8s-merge-robot
c5df0bf23e Merge pull request #24502 from cjcullen/subresource
Automatic merge from submit-queue

Add Subresource & Name to webhook authorizer.

Pass through the Subresource and Name fields from the `authorization.Attributes` to the `SubjectAccessReviewSpec.ResourceAttributes`.
2016-04-24 01:14:43 -07:00
k8s-merge-robot
733832c15a Merge pull request #24377 from hongchaodeng/sched
Automatic merge from submit-queue

schedulercache: remove bind() from AssumePod

Due to #24197, we make bind() asynchronous and don't need it anymore.
Submit this PR to clean it up.
2016-04-23 02:19:48 -07:00
gmarek
e0712f7e57 Fix MaxPods feature in scheduler 2016-04-22 22:49:50 +02:00
k8s-merge-robot
f4beccf000 Merge pull request #23066 from cjcullen/clientplugin
Automatic merge from submit-queue

Client auth provider plugin framework

Allows client plugins to modify the underlying transport to, for example, add custom authorization headers.
2016-04-21 17:30:28 -07:00
k8s-merge-robot
34fc7f0401 Merge pull request #24461 from wojtek-t/enable_components_to_use_protobufs
Automatic merge from submit-queue

Allow components to use protobufs while talking to apiserver.
2016-04-21 12:46:17 -07:00
Wojciech Tyczynski
d6896fa45a Allow setting content-type in binaries 2016-04-21 14:12:13 +02:00
Chao Xu
8537095415 use fully qualified resource in fake clients actions 2016-04-20 19:44:40 -07:00
Wojciech Tyczynski
80901a5542 Add traces to scheduler 2016-04-20 15:19:19 +02:00
Wojciech Tyczynski
a4b3f47347 Add RC and container pors to scheduler benchmark 2016-04-20 15:10:57 +02:00
CJ Cullen
e53aa93836 Add Subresource & Name to webhook authorizer. 2016-04-19 21:43:40 -07:00
HaiyangDING
a5efb009c5 change predicate error format. 2016-04-17 08:48:03 +08:00
k8s-merge-robot
7664509c73 Merge pull request #24248 from wojtek-t/parallel_predicates
Automatic merge from submit-queue

Parallelize computing predicates in scheduler

@davidopp
2016-04-16 09:51:45 -07:00
Hongchao Deng
1eb331e009 schedulercache: remove bind() from AssumePod 2016-04-16 20:30:28 +08:00
CJ Cullen
03f9b5adc0 Add client auth plugin framework for kubectl with GCP auth plugin. 2016-04-14 17:49:16 -07:00
Wojciech Tyczynski
5a73a9d235 Parallelize computing predicates 2016-04-14 16:32:52 +02:00
Wojciech Tyczynski
545bf184ef Simplify FailedPredicateMap 2016-04-14 10:58:35 +02:00
Wojciech Tyczynski
254b05761f Asynchronous bindings 2016-04-14 09:52:25 +02:00
goltermann
a3104ba96c Final vet fixes; enabling vet checks in verify scripts. 2016-04-13 13:51:51 -07:00
k8s-merge-robot
8eb19c7889 Merge pull request #22154 from sdminonne/service_nodeports_quotas
Automatic merge from submit-queue

Adding nodeports services to quota

To fix #21677
@derekwaynecarr
2016-04-13 05:50:27 -07:00
k8s-merge-robot
e93c0d727f Merge pull request #20204 from HaiyangDING/predlib
Automatic merge from submit-queue

Move predicates into library

This PR tries to implement #12744 

Any suggestions/ideas are welcome. @davidopp 

current state: integration test fails if including podCount check in Kubelet.
    
DONE:
    1. refactor all predicates: predicates return fitOrNot(bool) and error(Error) in which the latter is of type PredicateFailureError or InsufficientResourceError
    2. GeneralPredicates() is a predicate function, which includes serveral other predicate functions (PodFitsResource, PodFitsHost, PodFitsHostPort). It is registered as one of the predicates in DefaultAlgorithmProvider, and is also called in canAdmitPod() in Kubelet and should be called by other components (like rescheduler, etc if necessary. See discussion in issue #12744
TODO:
    1. determine which predicates should be included in GeneralPredicates()
    2. separate GeneralPredicates() into: a.) GeneralPredicatesEvictPod() and b.) GeneralPredicatesNotEvictPod()
    3. DaemonSet should use GeneralPredicates()
2016-04-12 07:44:45 -07:00
Salvatore Dario Minonne
15b7577454 Adding nodeports services to quota 2016-04-12 11:09:16 +02:00
k8s-merge-robot
bf0e6e0047 Merge pull request #23261 from hongchaodeng/sched
Automatic merge from submit-queue

kube-scheduler: cleanup duplicate GetAlgorithmProvider()

See [here](ae88f08af0/plugin/pkg/scheduler/factory/factory.go (L177-L180)).
The check is duplicate since CreateFromProvider will also do it.
2016-04-11 10:01:16 -07:00
HaiyangDING
41ed85479a move predicates into library (address #12744)
DONE:
1. refactor all predicates: predicates return fitOrNot(bool) and error(Error) in which the latter is of type
	PredicateFailureError or InsufficientResourceError. (For violation of either MaxEBSVolumeCount or
        MaxGCEPDVolumeCount, returns one same error type as ErrMaxVolumeCountExceeded)
2. GeneralPredicates() is a predicate function, which includes serveral other predicate functions (PodFitsResource,
        PodFitsHost, PodFitsHostPort). It is registered as one of the predicates in DefaultAlgorithmProvider, and
        is also called in canAdmitPod() in Kubelet and should be called by other components (like rescheduler, etc)
        if necessary. See discussion in issue #12744
3. remove podNumber check from GeneralPredicates
4. HostName is now verified in Kubelet's canAdminPod(). add TestHostNameConflicts in kubelet_test.go
5. add getNodeAnyWay() method in Kubelet to get node information in standaloneMode

TODO:
1. determine which predicates should be included in GeneralPredicates()
2. separate GeneralPredicates() into:
	a. GeneralPredicatesEvictPod() and
	b. GeneralPredicatesNotEvictPod()
3. DaemonSet should use GeneralPredicates()
2016-04-11 00:57:03 +08:00
Jeff Lowdermilk
524bfde377 Merge pull request #23883 from liggitt/attis
Externalize immortal namespaces
2016-04-08 20:56:04 -07:00
Jeff Lowdermilk
2fb745f01d Merge pull request #23661 from spxtr/oidc
Remove retries from most oidc tests.
2016-04-08 14:33:34 -07:00
Joe Finney
ae79677fd0
Remove global var for OIDC retry/backoff, and remove retries from unit tests. 2016-04-07 14:18:29 -07:00
Jordan Liggitt
bef1d6e82e Externalize immortal namespaces 2016-04-05 16:28:00 -04:00
Wojciech Tyczynski
2699be2e7e Switch api.ObjetaMetaFor to meta.Accessor 2016-03-31 17:52:31 +02:00
k8s-merge-robot
1ad3049ed6 Merge pull request #23288 from smarterclayton/refactor_codec
Auto commit by PR queue bot
2016-03-26 10:47:58 -07:00