Update StatefulSet rollout status for parameterized RollingUpdate

This commit is contained in:
Kenneth Owens 2017-06-12 10:07:07 -07:00
parent b1ce1ffc55
commit 22957a6bb1
2 changed files with 10 additions and 10 deletions

View File

@ -130,13 +130,13 @@ func (s *StatefulSetStatusViewer) Status(namespace, name string, revision int64)
if sts.Status.ReadyReplicas < sts.Spec.Replicas { 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 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.Spec.UpdateStrategy.Type == apps.RollingUpdateStatefulSetStrategyType && sts.Spec.UpdateStrategy.RollingUpdate != nil {
if sts.Status.UpdatedReplicas < (sts.Spec.Replicas - sts.Spec.UpdateStrategy.Partition.Ordinal) { 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", 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", 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 { if sts.Status.UpdateRevision != sts.Status.CurrentRevision {
return fmt.Sprintf("waiting for statefulset rolling update to complete %d pods at revision %s...\n", return fmt.Sprintf("waiting for statefulset rolling update to complete %d pods at revision %s...\n",

View File

@ -304,9 +304,9 @@ func TestStatefulSetStatusViewerStatus(t *testing.T) {
{ {
name: "partition update completes when all replicas above the partition are updated", name: "partition update completes when all replicas above the partition are updated",
generation: 1, generation: 1,
strategy: apps.StatefulSetUpdateStrategy{Type: apps.PartitionStatefulSetStrategyType, strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType,
Partition: func() *apps.PartitionStatefulSetStrategy { RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy {
return &apps.PartitionStatefulSetStrategy{Ordinal: 2} return &apps.RollingUpdateStatefulSetStrategy{Partition: 2}
}()}, }()},
status: apps.StatefulSetStatus{ status: apps.StatefulSetStatus{
ObservedGeneration: func() *int64 { 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", name: "partition update is in progress if all pods above the partition have not been updated",
generation: 1, generation: 1,
strategy: apps.StatefulSetUpdateStrategy{Type: apps.PartitionStatefulSetStrategyType, strategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType,
Partition: func() *apps.PartitionStatefulSetStrategy { RollingUpdate: func() *apps.RollingUpdateStatefulSetStrategy {
return &apps.PartitionStatefulSetStrategy{Ordinal: 2} return &apps.RollingUpdateStatefulSetStrategy{Partition: 2}
}()}, }()},
status: apps.StatefulSetStatus{ status: apps.StatefulSetStatus{
ObservedGeneration: func() *int64 { ObservedGeneration: func() *int64 {