Commit Graph

241 Commits

Author SHA1 Message Date
Michail Kargakis
0a843a50ba controller: don't retry deployments with overlapping selectors
Returning an error will cause the deployment to be requeued. We should
just emit an event for deployments with overlapping selectors and silently
drop then out of the queue. This should be transitioned to a Condition
once we have them.
2016-09-26 17:59:51 +02:00
Mike Danese
a765d59932 move informer and controller to pkg/client/cache
Signed-off-by: Mike Danese <mikedanese@google.com>
2016-09-15 12:50:08 -07:00
lojies
9498b227a1 change infof to Errorf in some codes 2016-09-12 15:55:42 +08:00
deads2k
4317173d3f add names for workqueues to gather controller latency/depth metrics 2016-08-30 09:51:50 -04:00
Kubernetes Submit Queue
68f54756c2 Merge pull request #31449 from janetkuo/return-deployment-rollback
Automatic merge from submit-queue

Use updated deployment after rollback

@kubernetes/deployment 

**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`. 
-->
```release-note
NONE
```
2016-08-26 06:49:06 -07:00
Janet Kuo
6e86a20304 Use updated deployment after rollback 2016-08-25 13:08:52 -07:00
Janet Kuo
90557ec56c Handle overlapping deployments gracefully
1. When overlapping deployments are discovered, annotate them
2. Expose those overlapping annotations as warnings in kubectl describe
3. Only respect the earliest updated one (skip syncing all other overlapping deployments)
4. Use indexer instead of store for deployment lister
2016-08-23 14:33:30 -07:00
Wojciech Tyczynski
acfd8c787f Avoid computing super-expensive DeepEqual on every pod update 2016-08-11 08:35:36 +02:00
Michal Rostecki
59ca5986dd Print/log pointers of structs with %#v instead of %+v
There are many places in k8s where %+v is used to format a pointer
to struct, which isn't working as expected.

Fixes #26591
2016-08-01 22:27:56 +02:00
Michail Kargakis
62afa3de71 controller: update all rs annotations on a scaled rollout
When a new rollout with a different size than the previous size of the
deployment is initiated then only the new replica set will notice the
new size. Old replica sets are not updated by the rollout path.
2016-07-20 22:40:43 +02:00
gmarek
7815a3e7bc DeploymentController doesn't take any actions when being deleted 2016-07-12 09:43:08 +02:00
Michail Kargakis
1fb8dd838b controller: various fixes for the deployment controller
Changes:
* moved waiting for synced caches before starting any work
* refactored worker() to really quit on quit
* changed queue to a ratelimiting queue and added retries on errors
* deep-copy deployments before mutating - we still need to deep-copy
replica sets and pods
2016-07-08 17:30:40 +02:00
Michail Kargakis
332d151d61 Break deployment controller into separate self-contained files
* rolling.go (has all the logic for rolling deployments)
* recreate.go (has all the logic for recreate deployments)
* sync.go (has all the logic for getting and scaling replica sets)
* rollback.go (has all the logic for rolling back a deployment)
* util.go (contains all the utilities used throughout the controller)

Leave back at deployment_controller.go all the necessary bits for
creating, setting up, and running the controller loop.

Also add package documentation.
2016-07-02 09:53:52 +02:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
k8s-merge-robot
fc1937f68f Merge pull request #20273 from kargakis/allow-scaling-paused-deployments
Automatic merge from submit-queue

Proportionally scale paused and rolling deployments

Enable paused and rolling deployments to be proportionally scaled.
Also have cleanup policy work for paused deployments.

Fixes #20853
Fixes #20966
Fixes #20754

@bgrant0607 @janetkuo @ironcladlou @nikhiljindal

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/20273)
<!-- Reviewable:end -->
2016-06-24 19:41:51 -07:00
Janet Kuo
726ba45b59 Deployment controller's cleanupUnhealthyReplicas should respect minReadySeconds 2016-06-20 15:03:57 -07:00
Michail Kargakis
f3d2e3ff22 controller: proportionally scale paused and rolling deployments
Enable paused and rolling deployments to be proportionally scaled.
Also have cleanup policy work for paused deployments.
2016-06-20 12:13:35 +02:00
Janet Kuo
764df2e096 Listing pods only once when getting pods for RS in deployment 2016-06-10 09:55:28 -07:00
Janet Kuo
36f704c975 List RSes only once when getting old+new RSes in deployment controller 2016-06-02 11:24:43 -07:00
Janet Kuo
310a7d2eb5 Adding logs in deployment for debugging 2016-05-31 15:59:46 -07:00
jianhuiz
441e206671 move server client shared annotations to new api/annotations package 2016-05-09 11:10:44 -07:00
mqliang
9011207f18 add namespace index to rc and pod 2016-05-06 17:12:36 +08:00
Clayton Coleman
fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
gmarek
3171aac57c Generated clients can return their RESTClients, RESTClient can return its RateLimiter 2016-04-27 22:15:10 +02:00
Chao Xu
49559a3332 Generate the typed clients under the clientset folder 2016-03-31 15:28:45 -07:00
k8s-merge-robot
e35efb5765 Merge pull request #23467 from mikedanese/dont-sync-deployment
Auto commit by PR queue bot
2016-03-29 06:42:20 -07:00
Mike Danese
c4305762b2 don't sync deployment when pod selector is empty 2016-03-28 10:12:41 -07:00
goltermann
32d569d6c7 Fixing all the "composite literal uses unkeyed fields" Vet errors. 2016-03-25 15:25:09 -07:00
Janet Kuo
482efba8de Copy annotations back from RS to Deployment on rollback 2016-03-21 10:21:48 -07:00
Janet Kuo
26bcdb1bd6 Separate GetOldRS and GetNewRS in deployment controller (get and mutate) and deployment util (get only) 2016-03-15 10:23:20 -07:00
Janet Kuo
4a181dacec Fix the possible negative scale down value; add logs when scaling down 2016-03-10 16:01:18 -08:00
Madhusudan.C.S
db48dcf583 ReplicaSetSpec.Template shouldn't be a pointer.
PodTemplateSpec should be consistent for all the types in extensions/v1beta1.

See PR #19510.
2016-03-09 21:24:16 -08:00
Michail Kargakis
1388919976 controller: resolve unavailable in conjuction with surge for deployments
Due to rounding down for maxUnavailable, we may end up with deployments
that have zero surge and unavailable pods something that 1) is not allowed
as per validation, 2) blocks deployments. If we end up in such a situation
set maxUnavailable to 1 on the theory that surge might not work due to
quota.
2016-03-07 13:03:41 +01:00
k8s-merge-robot
8ab8231c20 Merge pull request #22577 from jpiccari/master
Auto commit by PR queue bot
2016-03-06 00:18:53 -08:00
Joshua Piccari
f5f83b076a Improve go report card by fixing typos in comments 2016-03-04 18:30:59 -08:00
Janet Kuo
59b1f5b8b5 Log contents of pods on creation/update/deletion in controllers 2016-03-04 13:57:34 -08:00
Janet Kuo
48dc694ba6 Add more comments and rename getAllReplicaSets to getAllReplicaSetsAndSyncRevision 2016-03-02 17:51:35 -08:00
Janet Kuo
e42eab59bc Add comments about deployment revision update 2016-03-02 11:19:48 -08:00
Janet Kuo
67bfe5d796 Avoid copying deployment revision annotations to rs 2016-03-01 17:25:44 -08:00
Janet Kuo
1706df6242 Revision number should be updated only when it's smaller than it should be 2016-03-01 17:12:24 -08:00
k8s-merge-robot
8d90b2a61b Merge pull request #22213 from janetkuo/deployment-type-assert
Auto commit by PR queue bot
2016-03-01 00:08:48 -08:00
k8s-merge-robot
5b415a7aed Merge pull request #22210 from janetkuo/deployment-e2e
Auto commit by PR queue bot
2016-02-29 22:44:40 -08:00
Janet Kuo
1b831babe7 Move deployment Add/Update/DeleteFunc into functions 2016-02-29 18:19:48 -08:00
Janet Kuo
1960243d82 Fix type assertion error in deployment controller DeleteFunc 2016-02-29 18:19:33 -08:00
nikhiljindal
2019d18e9a Fixing a bug in deployment controller cleanupOldReplicaSets 2016-02-29 16:40:35 -08:00
Janet Kuo
f129d97262 Fill missing arg in log 2016-02-29 14:26:19 -08:00
Brian Grant
d0dd4f8a93 Restore expectation timeout to 5 minutes. Fix enqueueDeployment. Pass by reference.
Make names of ReplicaSets created by Deployment deterministic for idempotence.
Eliminate use of expectations in Deployment controller.
2016-02-28 07:33:07 +00:00
Brian Grant
39f0edca75 Fix expectations in Deployment. Ref #19299. 2016-02-26 06:15:26 +00:00
mqliang
06d57ec7f4 Deployment: preserve availability when maxUnavailability is not 100% 2016-02-25 13:30:06 +08:00
Brian Grant
bea349a80d Merge pull request #21856 from bprashanth/ttl_race
Lock across item expiration in the ttl store.
2016-02-24 15:06:25 -08:00
Brian Grant
88056edab2 Merge pull request #21902 from janetkuo/deployment-unavailable-replicas
Fix the incorrect deployment.status.unavailableReplicas
2016-02-24 14:48:04 -08:00
Brian Grant
0b5edab208 Merge pull request #21857 from nikhiljindal/stopDeployment
fix deployment e2e flake: Update DeploymentReaper.Stop to use ObservedGeneration
2016-02-24 14:26:23 -08:00
Janet Kuo
062b9f86b9 Fix the incorrect deployment.status.unavailableReplicas 2016-02-24 14:09:49 -08:00
Prashanth Balasubramanian
7e88b3ec84 Remove ttl store from controllers. 2016-02-24 14:06:22 -08:00
Brian Grant
832bc37ee4 Merge pull request #21713 from janetkuo/deployment-actual-replicas
Report actual replicas in deployment status
2016-02-24 13:55:16 -08:00
nikhiljindal
9d7259950b Update status for paused deployments 2016-02-24 00:49:03 -08:00
kargakis
7a3d40786b switch internal field to int64 2016-02-23 19:30:33 +01:00
kargakis
418d79cb78 extensions: add observedGeneration for deployments 2016-02-23 18:47:40 +01:00
Janet Kuo
3901423272 Report actual replicas in deployment status 2016-02-22 14:28:28 -08:00
Janet Kuo
da58172283 Ensure Deployment labels adopted ReplicaSets and pods 2016-02-22 10:58:54 -08:00
k8s-merge-robot
be9dfcaec4 Merge pull request #21210 from mqliang/hasSync-early
Auto commit by PR queue bot
2016-02-20 09:54:12 -08:00
mqliang
ced5eb7a71 return early if has not synced 2016-02-18 11:56:52 +08:00
Janet Kuo
fe4bf6ff5c When syncRecreateDeployment, don't create a new RS before scaling down 2016-02-16 18:05:44 -08:00
Janet Kuo
e9262df456 Scale up early when deployment creates new Replica set 2016-02-16 18:05:44 -08:00
k8s-merge-robot
3616b4bfec Merge pull request #21044 from mqliang/deployment-util
Auto commit by PR queue bot
2016-02-16 15:33:26 -08:00
Chao Xu
97aecd002a remove underscore in imported pkg names 2016-02-16 10:54:51 -08:00
mqliang
fcf0d6d720 add GetValueFromIntOrPercent helper funcs 2016-02-15 23:06:02 +08:00
mqliang
d96cdb93c4 move helper funcs to util/deployment.go from util.go 2016-02-15 22:36:48 +08:00
k8s-merge-robot
3b4c0beb99 Merge pull request #20868 from mqliang/int-min-max
Auto commit by PR queue bot
2016-02-13 17:32:22 -08:00
k8s-merge-robot
524aaa2f7f Merge pull request #21152 from kargakis/fix-cleanup-policy
Auto commit by PR queue bot
2016-02-13 03:47:33 -08:00
Michail Kargakis
b9839d0677 controller: fix cleanup policy for deployments
Cleanup policy should run on all replica sets and not only on those that
have pods (we will not cleanup those anyway).
2016-02-12 19:14:18 +01:00
Janet Kuo
2731e5fe20 Check pod HasSynced in deployment controller manager 2016-02-12 00:11:27 -08:00
mqliang
7be9071584 create some integer min/max function 2016-02-12 11:20:11 +08:00
Madhusudan.C.S
ed7ad6dcf3 Make deployments work. 2016-02-08 21:27:49 -08:00
Madhusudan.C.S
518f08aa7c Move Deployments to ReplicaSets and switch the Deployment selector to the new LabelSelector.
Update the Deployments' API types, defaulting code, conversions, helpers
and validation to use ReplicaSets instead of ReplicationControllers and
LabelSelector instead of map[string]string for selectors.

Also update the Deployment controller, registry, kubectl subcommands,
client listers package and e2e tests to use ReplicaSets and
LabelSelector for Deployments.
2016-02-08 21:27:38 -08:00
k8s-merge-robot
a2c8712aee Merge pull request #20368 from mqliang/cleanup-unhealthy-replicas
Auto commit by PR queue bot
2016-02-08 20:18:25 -08:00
mqliang
86aea1d59c clean up unhealthy replicas frst for old rcs when reconcileOldRCs 2016-02-09 07:43:48 +08:00
Jan Chaloupka
4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
Janet Kuo
bb0c5fea0e Fix test failure 2016-02-05 17:26:07 -08:00
Janet Kuo
7e9fb97b7d Remove UniqueLabelKey from deployment spec 2016-02-05 16:21:44 -08:00
Chao Xu
184440f8ef rename release_1_2 to internalclientset 2016-02-05 14:02:28 -08:00
Janet Kuo
40849a5b50 Skip apply annotation when copying annotations from deployment to RC 2016-02-04 23:30:31 -08:00
Chao Xu
1b047f8e67 rename legacy to core 2016-02-04 14:26:56 -08:00
Saad Ali
0952dcd349 Merge pull request #20389 from mqliang/deployment-MinReadySeconds
Move MinReadySeconds out of RollingUpdateDeployment
2016-02-03 22:44:14 -08:00
k8s-merge-robot
16aa40cc33 Merge pull request #20035 from janetkuo/record-command
Auto commit by PR queue bot
2016-02-03 20:19:08 -08:00
k8s-merge-robot
65ebe19164 Merge pull request #20584 from caesarxuchao/release_1_2
Auto commit by PR queue bot
2016-02-03 19:46:27 -08:00
Chao Xu
f9f5736b01 grep sed 2016-02-03 13:06:07 -08:00
Janet Kuo
e3cb44aaff Copy deployment's annotations to its RC 2016-02-03 10:19:06 -08:00
Janet Kuo
5088d0e147 Record kubectl commands 2016-02-03 10:19:05 -08:00
mqliang
c4a1ab42e3 Move MinReadySeconds out of RollingUpdateDeployment 2016-02-03 11:38:11 +08:00
Janet Kuo
442c75045a Add kubectl rollout undo 2016-02-02 14:20:01 -08:00
k8s-merge-robot
17a5058e83 Merge pull request #19893 from janetkuo/kubectl-rollout-history
Auto commit by PR queue bot
2016-02-02 01:13:15 -08:00
Janet Kuo
8fb86a3d3b Add kubectl rollout history 2016-02-01 15:32:43 -08:00
harry
1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
Chao Xu
c72d234bbf replacing handwritten client in several controllers 2016-01-31 15:42:02 -08:00
Janet Kuo
3396db9510 Add rollback subresource; add rollback logic to deployment controller 2016-01-30 16:00:34 -08:00
Janet Kuo
42f712467e Use ListOptions when listing RCs in deployment 2016-01-30 12:04:35 -08:00
Janet Kuo
c84a0371a2 Deployment adds version info to its new rc 2016-01-30 12:04:35 -08:00
k8s-merge-robot
783d1d00d7 Merge pull request #20139 from janetkuo/rcList-namespace
Auto commit by PR queue bot
2016-01-30 09:42:35 -08:00
mqliang
c5cda2012a cleanup-policy 2016-01-30 09:57:21 +08:00
Janet Kuo
7255af6de3 Fix e2e test failure for RecreateDeployment 2016-01-27 15:04:54 -08:00
Michail Kargakis
436d2677f9 extensions: support paused deployments
This commit adds support for paused deployments so a user can choose
when to run a deployment that exists in the system instead of having
the deployment controller automatically reconciling it after every
change or sync interval.
2016-01-26 12:42:26 +01:00
Janet Kuo
14f4f1b065 Make listing deployment rcStore namespaced 2016-01-25 19:13:17 -08:00
Janet Kuo
9739a67833 Deployment status: number of available/unavailable pods 2016-01-25 14:30:15 -08:00
Alex Mohr
8c9aa2af33 Merge pull request #19733 from janetkuo/flaky-deployment-recreate
Fix e2e flake: Sync deployment status when with RecreateDeploymentStrategy
2016-01-21 10:23:21 -08:00
Alex Mohr
a9050679a5 Merge pull request #19520 from janetkuo/deployment-expectation-fix
Fix e2e flake: Fix incorrect expectation when deployment scaling down old rcs
2016-01-20 13:44:30 -08:00
Marek Grabowski
810544633e Merge pull request #19751 from mikedanese/fix-nil
deployment: fix nil pointer panic
2016-01-18 18:08:33 +01:00
k8s-merge-robot
ad827c6b62 Merge pull request #19573 from madhusudancs/daemonset-update-move-utils
Auto commit by PR queue bot
2016-01-17 08:16:11 -08:00
Mike Danese
78d27a5d2f deployment: fix nil pointer panic 2016-01-15 17:58:01 -08:00
Janet Kuo
d693ffaa57 Fix incorrect expectation when deployment scaling down old rcs 2016-01-15 16:29:53 -08:00
Janet Kuo
5a22e30b7d Sync deployment status when with RecreateDeploymentStrategy 2016-01-15 16:10:06 -08:00
Mike Danese
1acfb151b6 Merge pull request #19433 from janetkuo/deployment-e2e-flake-fix
Fix flaky e2e: Use expectation model for deployment's new rc creation
2016-01-14 13:23:46 -08:00
mqliang
92798408af implement reconcileRecreateDeployment 2016-01-13 11:27:26 +08:00
Madhusudan.C.S
4caa8a2c1d Move pod template hash and label adding util functions to their packages.
These utilities are useful outside Deployments as well, for example
in DaemonSets for DaemonSet updates. So move them to their own util
packages.
2016-01-12 16:11:00 -08:00
Janet Kuo
e1554c0f4d Fix flaky e2e: Use expectation model for deployment's new rc creation 2016-01-12 14:48:57 -08:00
Janet Kuo
c782aaa504 Wait for rc store synced before syncing deployment 2016-01-06 12:43:06 -08:00
Janet Kuo
1a8f96231a Add expectation model for pod deletion 2015-12-17 19:29:54 -08:00
Janet Kuo
32d153093e Fix deployment tests failures; change ResyncPeriod 2015-12-17 19:29:54 -08:00
Sam Ghods
b838d8ce18 Add informers to deployment controller 2015-12-17 19:29:54 -08:00
Wojciech Tyczynski
960808bf08 Switch to versioned ListOptions in client. 2015-12-14 14:26:09 +01:00
Janet Kuo
8fb0caa15b Implement MinReadySeconds for Deployment 2015-12-04 12:58:34 -08:00
Wojciech Tyczynski
6dcb689d4e Simplify List() signature in clients. 2015-12-03 09:54:07 +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
Mike Danese
9b982e1d3c generate rc name from deployment name 2015-11-09 15:33:04 -08:00
Mike Danese
b0a41108af move deployment PodTemplate to be not a pointer 2015-10-28 00:13:40 -07:00
Mike Danese
8acf01d620 add status subresource for deployment 2015-10-26 00:12:58 -07:00
Steve Milner
8da2d4002f Fixes remaining imports per #15319 2015-10-20 07:13:13 -04:00
Chao Xu
493d2b6920 grep sed Experimental() 2015-10-13 13:22:54 -07:00
Chao Xu
9aa163aa88 grep sed ExperimentalInterface 2015-10-13 13:22:22 -07:00
nikhiljindal
6f61326cdb Fixing the selector for new RC created by deployment 2015-10-12 11:00:29 -07:00
Chao Xu
7c9f4cc42f experimental. -> extensions. 2015-10-09 15:49:10 -07:00
Chao Xu
67f316dd19 apis/experimental->apis/extensions 2015-10-09 15:04:41 -07:00
nikhiljindal
b0b1a35aae Adding logic to scale down new RC 2015-10-07 15:53:47 -07:00
k8s-merge-robot
7007481f00 Merge pull request #14917 from nikhiljindal/deploymentController
Auto commit by PR queue bot
2015-10-02 13:18:49 -07:00
k8s-merge-robot
2b1a0e98a2 Merge pull request #14746 from jszczepkowski/deployment-fix
Auto commit by PR queue bot
2015-10-01 18:23:12 -07:00
nikhiljindal
c6deb442f9 Adding events to deployment 2015-10-01 16:38:08 -07:00
Jerzy Szczepkowski
e5b2f310fb Fixed ignoring the rest of deployments after the first error in deployment controller.
Fixed ignoring the rest of deployments after the first error in deployment controller & added logging of errors.
2015-09-29 17:09:33 +02:00
nikhiljindal
153c57ffc8 Adding a DeploymentDescriber to kubectl 2015-09-28 14:21:24 -07:00
nikhiljindal
89e9691080 Adding scale up/down code to DeploymentController 2015-09-18 19:24:16 -07:00
nikhiljindal
c97b9db700 Adding a deploymentController 2015-09-14 18:39:46 -07:00