Skip to content

Commit

Permalink
fix: don't overwrite canary paused reason (#136)
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmed-mez committed Dec 7, 2021
1 parent 7e748e7 commit 234a27b
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 1 deletion.
2 changes: 1 addition & 1 deletion controllers/extendeddaemonsetreplicaset/strategy/canary.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func manageCanaryStatus(annotations map[string]string, params *Parameters, now t
result.NewStatus.Status = string(ReplicaSetStatusCanary)

result.IsFailed = eds.IsCanaryDeploymentFailed(annotations, params.Replicaset)
result.IsPaused, _ = eds.IsCanaryDeploymentPaused(annotations, params.Replicaset)
result.IsPaused, result.PausedReason = eds.IsCanaryDeploymentPaused(annotations, params.Replicaset)
result.IsUnpaused = eds.IsCanaryDeploymentUnpaused(annotations)

var (
Expand Down
69 changes: 69 additions & 0 deletions controllers/extendeddaemonsetreplicaset/strategy/canary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,75 @@ func TestManageCanaryStatus_HighRestartsLeadingToPause(t *testing.T) {
test.Run(t)
}

func TestManageCanaryStatus_CanaryPausedAlready(t *testing.T) {
now := time.Now()
test := canaryStatusTest{
now: now,
params: &Parameters{
EDSName: "foo",
Strategy: &v1alpha1.ExtendedDaemonSetSpecStrategy{
Canary: &v1alpha1.ExtendedDaemonSetSpecStrategyCanary{
AutoPause: &v1alpha1.ExtendedDaemonSetSpecStrategyCanaryAutoPause{
Enabled: v1alpha1.NewBool(true),
MaxRestarts: v1alpha1.NewInt32(2),
},
AutoFail: &v1alpha1.ExtendedDaemonSetSpecStrategyCanaryAutoFail{
Enabled: v1alpha1.NewBool(false),
MaxRestarts: v1alpha1.NewInt32(5),
},
},
},
Replicaset: &v1alpha1.ExtendedDaemonSetReplicaSet{
Spec: v1alpha1.ExtendedDaemonSetReplicaSetSpec{
TemplateGeneration: "v1",
},
Status: v1alpha1.ExtendedDaemonSetReplicaSetStatus{
Conditions: []v1alpha1.ExtendedDaemonSetReplicaSetCondition{
{
Type: v1alpha1.ConditionTypeCanaryPaused,
Status: v1.ConditionTrue,
LastTransitionTime: metav1.NewTime(now),
LastUpdateTime: metav1.NewTime(now),
Reason: "CrashLoopBackOff",
},
},
},
},
NewStatus: &v1alpha1.ExtendedDaemonSetReplicaSetStatus{},
CanaryNodes: testCanaryNodeNames,
NodeByName: testCanaryNodes,
PodByNodeName: map[*NodeItem]*v1.Pod{
testCanaryNodes["a"]: nil,
testCanaryNodes["b"]: nil,
testCanaryNodes["c"]: nil,
},
Logger: testLogger,
},
result: &Result{
NewStatus: &v1alpha1.ExtendedDaemonSetReplicaSetStatus{
Status: "canary",
Desired: 3,
Current: 0,
Ready: 0,
Available: 0,
Conditions: []v1alpha1.ExtendedDaemonSetReplicaSetCondition{
{
Type: v1alpha1.ConditionTypeCanaryPaused,
Status: v1.ConditionTrue,
LastTransitionTime: metav1.NewTime(now),
LastUpdateTime: metav1.NewTime(now),
Reason: "CrashLoopBackOff",
},
},
},
IsPaused: true,
PausedReason: v1alpha1.ExtendedDaemonSetStatusReasonCLB,
Result: reconcile.Result{},
},
}
test.Run(t)
}

func TestManageCanaryStatus_HighRestartsLeadingToFail(t *testing.T) {
now := time.Now()
restartedAt := now.Add(-time.Minute)
Expand Down

0 comments on commit 234a27b

Please sign in to comment.