diff --git a/pkg/kubectl/rollout_status.go b/pkg/kubectl/rollout_status.go index 37879cf11bf..830eabc205f 100644 --- a/pkg/kubectl/rollout_status.go +++ b/pkg/kubectl/rollout_status.go @@ -130,13 +130,13 @@ func (s *StatefulSetStatusViewer) Status(namespace, name string, revision int64) if sts.Status.ReadyReplicas < sts.Spec.Replicas { return fmt.Sprintf("Waiting for %d pods to be ready...\n", sts.Spec.Replicas-sts.Status.ReadyReplicas), false, nil } - if sts.Spec.UpdateStrategy.Type == apps.PartitionStatefulSetStrategyType { - if sts.Status.UpdatedReplicas < (sts.Spec.Replicas - sts.Spec.UpdateStrategy.Partition.Ordinal) { + if sts.Spec.UpdateStrategy.Type == apps.RollingUpdateStatefulSetStrategyType && sts.Spec.UpdateStrategy.RollingUpdate != nil { + if sts.Status.UpdatedReplicas < (sts.Spec.Replicas - sts.Spec.UpdateStrategy.RollingUpdate.Partition) { return fmt.Sprintf("Waiting for partitioned roll out to finish: %d out of %d new pods have been updated...\n", - sts.Status.UpdatedReplicas, (sts.Spec.Replicas - sts.Spec.UpdateStrategy.Partition.Ordinal)), false, nil + sts.Status.UpdatedReplicas, (sts.Spec.Replicas - sts.Spec.UpdateStrategy.RollingUpdate.Partition)), false, nil } return fmt.Sprintf("partitioned roll out complete: %d new pods have been updated...\n", - sts.Status.UpdatedReplicas), false, nil + sts.Status.UpdatedReplicas), true, nil } if sts.Status.UpdateRevision != sts.Status.CurrentRevision { return fmt.Sprintf("waiting for statefulset rolling update to complete %d pods at revision %s...\n", diff --git a/pkg/kubectl/rollout_status_test.go b/pkg/kubectl/rollout_status_test.go index c84c5636776..ae13d9b0965 100644 --- a/pkg/kubectl/rollout_status_test.go +++ b/pkg/kubectl/rollout_status_test.go @@ -304,9 +304,9 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) { { name: "partition update completes when all replicas above the partition are updated", generation: 1, - strategy: apps.StatefulSetUpdateStrategy{Type: apps.PartitionStatefulSetStrategyType, - Partition: func() *apps.PartitionStatefulSetStrategy { - return &apps.PartitionStatefulSetStrategy{Ordinal: 2} + strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType, + RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy { + return &apps.RollingUpdateStatefulSetStrategy{Partition: 2} }()}, status: apps.StatefulSetStatus{ ObservedGeneration: func() *int64 { @@ -326,9 +326,9 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) { { name: "partition update is in progress if all pods above the partition have not been updated", generation: 1, - strategy: apps.StatefulSetUpdateStrategy{Type: apps.PartitionStatefulSetStrategyType, - Partition: func() *apps.PartitionStatefulSetStrategy { - return &apps.PartitionStatefulSetStrategy{Ordinal: 2} + strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType, + RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy { + return &apps.RollingUpdateStatefulSetStrategy{Partition: 2} }()}, status: apps.StatefulSetStatus{ ObservedGeneration: func() *int64 {