Skip to content

Commit

Permalink
add ut test case for asts lifecycle
Browse files Browse the repository at this point in the history
Signed-off-by: Abner-1 <[email protected]>
  • Loading branch information
ABNER-1 committed Dec 24, 2024
1 parent 6633de8 commit 6cf197b
Show file tree
Hide file tree
Showing 5 changed files with 821 additions and 11 deletions.
3 changes: 2 additions & 1 deletion pkg/controller/cloneset/sync/cloneset_update_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"time"

utilruntime "k8s.io/apimachinery/pkg/util/runtime"
testingclock "k8s.io/utils/clock/testing"

apps "k8s.io/api/apps/v1"
v1 "k8s.io/api/core/v1"
Expand All @@ -34,7 +35,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/record"
testingclock "k8s.io/utils/clock/testing"

"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"

Expand Down
21 changes: 13 additions & 8 deletions pkg/controller/statefulset/stateful_set_control.go
Original file line number Diff line number Diff line change
Expand Up @@ -770,11 +770,8 @@ func (ssc *defaultStatefulSetControl) deletePod(set *appsv1beta1.StatefulSet, po
}

func (ssc *defaultStatefulSetControl) refreshPodState(set *appsv1beta1.StatefulSet, pod *v1.Pod, updateRevision string) (bool, time.Duration, error) {
if set.Spec.UpdateStrategy.RollingUpdate == nil {
return false, 0, nil
}
opts := &inplaceupdate.UpdateOptions{}
if set.Spec.UpdateStrategy.RollingUpdate.InPlaceUpdateStrategy != nil {
if set.Spec.UpdateStrategy.RollingUpdate != nil && set.Spec.UpdateStrategy.RollingUpdate.InPlaceUpdateStrategy != nil {
opts.GracePeriodSeconds = set.Spec.UpdateStrategy.RollingUpdate.InPlaceUpdateStrategy.GracePeriodSeconds
}
opts = inplaceupdate.SetOptionsDefaults(opts)
Expand All @@ -791,7 +788,7 @@ func (ssc *defaultStatefulSetControl) refreshPodState(set *appsv1beta1.StatefulS
case appspub.LifecycleStatePreparingNormal:
if set.Spec.Lifecycle == nil ||
set.Spec.Lifecycle.PreNormal == nil ||
lifecycle.IsPodHooked(set.Spec.Lifecycle.PreNormal, pod) {
lifecycle.IsPodAllHooked(set.Spec.Lifecycle.PreNormal, pod) {
state = appspub.LifecycleStateNormal
}
case appspub.LifecycleStatePreparingUpdate:
Expand Down Expand Up @@ -1118,7 +1115,15 @@ func (ssc *defaultStatefulSetControl) processReplica(
return true, false, err
}
}
lifecycle.SetPodLifecycle(appspub.LifecycleStatePreparingNormal)(replicas[i])
// asts ut invoke updateStatefulset once by once,
// so we can update pod into normal state to avoid changing so many ut cases
state := appspub.LifecycleStatePreparingNormal
if set.Spec.Lifecycle == nil ||
set.Spec.Lifecycle.PreNormal == nil ||
lifecycle.IsPodAllHooked(set.Spec.Lifecycle.PreNormal, replicas[i]) {
state = appspub.LifecycleStateNormal
}
lifecycle.SetPodLifecycle(state)(replicas[i])
if err := ssc.podControl.CreateStatefulPod(ctx, set, replicas[i]); err != nil {
msg := fmt.Sprintf("StatefulPodControl failed to create Pod error: %s", err)
condition := NewStatefulsetCondition(appsv1beta1.FailedCreatePod, v1.ConditionTrue, "", msg)
Expand Down Expand Up @@ -1162,8 +1167,8 @@ func (ssc *defaultStatefulSetControl) processReplica(
}

// Update InPlaceUpdateReady condition for pod
modified, duration, err := ssc.refreshPodState(set, replicas[i], status.UpdateRevision)
if err != nil || modified {
_, duration, err := ssc.refreshPodState(set, replicas[i], status.UpdateRevision)
if err != nil {
logger.Error(err, "StatefulSet failed to update pod condition for inplace",

Check warning on line 1172 in pkg/controller/statefulset/stateful_set_control.go

View check run for this annotation

Codecov / codecov/patch

pkg/controller/statefulset/stateful_set_control.go#L1172

Added line #L1172 was not covered by tests
"statefulSet", klog.KObj(set), "pod", klog.KObj(replicas[i]))
return true, false, err

Check warning on line 1174 in pkg/controller/statefulset/stateful_set_control.go

View check run for this annotation

Codecov / codecov/patch

pkg/controller/statefulset/stateful_set_control.go#L1174

Added line #L1174 was not covered by tests
Expand Down
Loading

0 comments on commit 6cf197b

Please sign in to comment.