Commit Graph

67 Commits

Author SHA1 Message Date
Madhusudan.C.S
fe26381c90 Support for both map-based and set-based selectors in extensions/v1beta1.Scale
Here are a list of changes along with an explanation of how they work:
1. Add a new string field called TargetSelector to the external version of
   extensions Scale type (extensions/v1beta1.Scale). This is a serialized
   version of either the map-based selector (in case of ReplicationControllers)
   or the unversioned.LabelSelector struct (in case of Deployments and
   ReplicaSets).
2. Change the selector field in the internal Scale type (extensions.Scale) to
   unversioned.LabelSelector.
3. Add conversion functions to convert from two external selector fields to a
   single internal selector field. The rules for conversion are as follows:
   i.   If the target resource that this scale targets supports LabelSelector
        (Deployments and ReplicaSets), then serialize the LabelSelector and
        store the string in the TargetSelector field in the external version
        and leave the map-based Selector field as nil.
   ii.  If the target resource only supports a map-based selector
        (ReplicationControllers), then still serialize that selector and
	store the serialized string in the TargetSelector field. Also,
	set the the Selector map field in the external Scale type.
   iii. When converting from external to internal version, parse the
        TargetSelector string into LabelSelector struct if the string isn't
	empty. If it is empty, then check if the Selector map is set and just
	assign that map to the MatchLabels component of the LabelSelector.
   iv.  When converting from internal to external version, serialize the
        LabelSelector and store it in the TargetSelector field. If only
	the MatchLabel component is set, then also copy that value to
	the Selector map field in the external version.
4. HPA now just converts the LabelSelector field to a Selector interface
   type to list the pods.
5. Scale Get and Update etcd methods for Deployments and ReplicaSets now
   return extensions.Scale instead of autoscaling.Scale.
6. Consequently, SubresourceGroupVersion override and is "autoscaling"
   enabled check is now removed from pkg/master/master.go
7. Other small changes to labels package, fuzzer and LabelSelector
   helpers to piece this all together.
8. Add unit tests to HPA targeting Deployments and ReplicaSets.
9. Add an e2e test to HPA targeting ReplicaSets.
2016-03-09 17:54:17 -08:00
k8s-merge-robot
57670edc15 Merge pull request #22345 from fgrzadkowski/hpa_events
Auto commit by PR queue bot
2016-03-04 09:18:21 -08:00
k8s-merge-robot
18d8e7b756 Merge pull request #22052 from mwielgus/hpa-average
Auto commit by PR queue bot
2016-03-04 08:38:38 -08:00
Filip Grzadkowski
69b3c6aa39 Add events to improve understandability of HPA controller decisions.
Fixes #22174
2016-03-03 12:05:51 +01:00
Filip Grzadkowski
b5c9af9762 Use controller framework in HPA controller.
Ref #22174
2016-03-03 11:55:44 +01:00
Marcin Wielgus
24b12b9191 In HPA metric client make average from samples from the last 1 minute 2016-03-02 15:06:27 +01:00
Piotr Szczesniak
205e3e607d Added default cpu target for HPA 2016-03-02 09:38:26 +01:00
Kris
e664ef922f Move restclient to its own package 2016-02-29 12:05:13 -08:00
k8s-merge-robot
ff758bec58 Merge pull request #21750 from piosz/hpa-status-current-utilization
Auto commit by PR queue bot
2016-02-28 00:22:26 -08:00
Chao Xu
cf98bcb48a Merge pull request #21816 from caesarxuchao/fix-21763
Fix the EventSink in HPA controller
2016-02-24 14:09:02 -08:00
Marcin Wielgus
81fcd778e3 Merge pull request #21550 from mwielgus/hpa-pending
Don't include pending pods in metrics calculations
2016-02-24 09:38:36 +01:00
Piotr Szczesniak
4d1367c212 Added more unit test for hpa status 2016-02-24 09:18:39 +01:00
Chao Xu
e20e295cbe fix Event broadcaster for HPA 2016-02-23 16:15:10 -08:00
Piotr Szczesniak
0dfeb81390 HPA update its status even if getting metrics failed 2016-02-23 14:30:03 +01:00
Piotr Szczesniak
762e155f3e Refactoring of pod autoscaler controller 2016-02-23 11:29:40 +01:00
k8s-merge-robot
a6d855bf64 Merge pull request #21149 from mwielgus/hpa-rescale
Auto commit by PR queue bot
2016-02-20 01:51:08 -08:00
Marcin Wielgus
34f7105871 Don't include pending pods in metrics calculations 2016-02-19 17:00:38 +01:00
Marcin Wielgus
1d3891284e Handle scenarios when the replica count is outside of HPA replica range 2016-02-18 13:45:03 +01:00
Chao Xu
ad46715f51 generate fake client for release_1_2 2016-02-17 16:10:02 -08:00
Chao Xu
97aecd002a remove underscore in imported pkg names 2016-02-16 10:54:51 -08:00
Marcin Wielgus
41cf0cd78f Change custom metrics prefix in HPA metrics client 2016-02-15 20:28:37 +01:00
Marcin Wielgus
67e9db4377 Set verbosity for debug logs 2016-02-08 17:07:05 +01:00
Jan Chaloupka
4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
k8s-merge-robot
e76caf43aa Merge pull request #20703 from mwielgus/hpa-cm-validation
Auto commit by PR queue bot
2016-02-06 21:16:51 -08:00
Mike Danese
b1743a6887 this is a manual reversion of #20702
I can't revert with github which says "Sorry, this pull request couldn’t be
reverted automatically. It may have already been reverted, or the content may
have changed since it was merged."

Reverts commit: 0c191e787b
2016-02-05 16:34:02 -08:00
Chao Xu
184440f8ef rename release_1_2 to internalclientset 2016-02-05 14:02:28 -08:00
gmarek
0c191e787b Split controller flags between controllers 2016-02-05 12:17:51 +01:00
Marcin Wielgus
9a74a60413 Validation of HPA custom metrics annotation 2016-02-05 11:31:51 +01:00
Chao Xu
1b047f8e67 rename legacy to core 2016-02-04 14:26:56 -08:00
Chao Xu
f9f5736b01 grep sed 2016-02-03 13:06:07 -08:00
k8s-merge-robot
843c11e06a Merge pull request #20452 from caesarxuchao/replace-client-kubelet
Auto commit by PR queue bot
2016-02-02 23:46:58 -08:00
Chao Xu
fe7887f1ec replace the client with clientset in controllers 2016-02-02 20:28:45 -08:00
Marcin Wielgus
05565ff7e5 CustomMetrics in HPA controller 2016-02-01 13:45:45 +01:00
Marcin Wielgus
a3972947cc CustomMetrics in HPA MetricsClient 2016-01-29 18:20:57 +01:00
Marcin Wielgus
b49cba7182 Update Heapster API in Godeps 2016-01-28 11:55:22 +01:00
nikhiljindal
2ad642d370 Merge registered and latest and move to apimachinery 2016-01-21 14:42:21 -08:00
Solly Ross
15fc230a59 Make HPA Controller use Namespacers
The HPA controller had previously used a single Client
object to act as three different Namespacers.  To improve
ease of extensibility and to make it clearer what the HPA
controller actually needs to use from the client, it should
use separate Namespacers for each of its needs (Scales, HPAs,
and Events).
2015-12-14 11:41:00 -05:00
Wojciech Tyczynski
960808bf08 Switch to versioned ListOptions in client. 2015-12-14 14:26:09 +01:00
Wojciech Tyczynski
342eee680c Revert "[hpa] Parameterize tolerance, downscale, and upscale into HPAController, and add corresponding unit test for backsolved tolerance." 2015-12-13 09:54:43 +01:00
Jay Vyas
5161d169ba Parameterization for downscale, upscale, and tolerance with backsolving
unit test for visible testing of tolerance algorithm expectations. Logs for dScale, uScale, tol creation.
2015-12-10 10:59:21 -05:00
Wojciech Tyczynski
6dcb689d4e Simplify List() signature in clients. 2015-12-03 09:54:07 +01:00
Marek Grabowski
f633aa67b1 Merge pull request #18065 from jszczepkowski/hpa-fix
Fixed forbidden window enforcement in horizontal pod autoscaler.
2015-12-03 08:36:10 +01:00
Jerzy Szczepkowski
8cdda36b1e Fixed forbidden window enforcement in horizontal pod autoscaler.
Fixed forbidden window enforcement in horizontal pod autoscaler: time of the oldest report instead of now is taken into account. Fixes #17992.
2015-12-03 08:29:24 +01:00
Wojciech Tyczynski
8343c8ce6c Pass ListOptions to List() methods. 2015-12-01 15:00:36 +01:00
Avesh Agarwal
3d5207fd73 This commit adds type information to events.
This addresses issue #15624.
2015-11-24 09:59:54 -05:00
Jordan Liggitt
165d7d5030 Enable specifying scheme/port for metrics client 2015-11-16 13:18:40 -05:00
deads2k
fd1c8e096a eliminate cross-namespace HPA escalation attack 2015-11-03 08:05:26 -05:00
Solly Ross
f262560cac Customize HPA Heapster service namespace/name
This commit makes the HPA metrics client configurable in where
it looks for heapster instead of hard coding it to
"kube-system/heapster".  The values of "kube-system/heapster"
are still recorded as constants in the metrics client package
for use as default values.
2015-11-02 11:14:08 -05:00
Jerzy Szczepkowski
de25a3bc08 Fixed resetting last scale time in HPA status.
Fixed resetting last scale time in HPA status. Fixes #16275.
2015-10-26 16:36:05 +01:00
Jerzy Szczepkowski
df732f061a HorizontalPodAutoscaler API: removal of ResourceConsumption target, introduction of CPU request utilization & other cleanups. 2015-10-16 07:15:50 +02:00