Update StatefulSet rollout status for parameterized RollingUpdate
This commit is contained in:
parent
b1ce1ffc55
commit
22957a6bb1
@ -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",
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user