pull/11102/merge
Jack Yu 3 years ago committed by GitHub
commit 7a7f24d3c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -286,6 +286,12 @@ func (c *ReadyChecker) daemonSetReady(ds *appsv1.DaemonSet) bool {
return true return true
} }
// the resource not generated by DaemonSet controller.
if ds.Status.ObservedGeneration == 0 {
c.log("DaemonSet is not ready: %s/%s, The most recent generation is 0.", ds.Namespace, ds.Name)
return false
}
// Make sure all the updated pods have been scheduled // Make sure all the updated pods have been scheduled
if ds.Status.UpdatedNumberScheduled != ds.Status.DesiredNumberScheduled { if ds.Status.UpdatedNumberScheduled != ds.Status.DesiredNumberScheduled {
c.log("DaemonSet is not ready: %s/%s. %d out of %d expected pods have been scheduled", ds.Namespace, ds.Name, ds.Status.UpdatedNumberScheduled, ds.Status.DesiredNumberScheduled) c.log("DaemonSet is not ready: %s/%s. %d out of %d expected pods have been scheduled", ds.Namespace, ds.Name, ds.Status.UpdatedNumberScheduled, ds.Status.DesiredNumberScheduled)

@ -113,6 +113,13 @@ func Test_ReadyChecker_daemonSetReady(t *testing.T) {
}, },
want: true, want: true,
}, },
{
name: "daemonset is not ready when ObservedGeneration is 0",
args: args{
ds: newNotLoadDaemonSet("foo", 1, 1, 2, 2),
},
want: false,
},
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
@ -391,10 +398,17 @@ func newDaemonSet(name string, maxUnavailable, numberReady, desiredNumberSchedul
DesiredNumberScheduled: int32(desiredNumberScheduled), DesiredNumberScheduled: int32(desiredNumberScheduled),
NumberReady: int32(numberReady), NumberReady: int32(numberReady),
UpdatedNumberScheduled: int32(updatedNumberScheduled), UpdatedNumberScheduled: int32(updatedNumberScheduled),
ObservedGeneration: int64(1),
}, },
} }
} }
func newNotLoadDaemonSet(name string, maxUnavailable, numberReady, desiredNumberScheduled, updatedNumberScheduled int) *appsv1.DaemonSet {
ds := newDaemonSet(name, maxUnavailable, numberReady, desiredNumberScheduled, updatedNumberScheduled)
ds.Status.ObservedGeneration = 0
return ds
}
func newStatefulSet(name string, replicas, partition, readyReplicas, updatedReplicas int) *appsv1.StatefulSet { func newStatefulSet(name string, replicas, partition, readyReplicas, updatedReplicas int) *appsv1.StatefulSet {
return &appsv1.StatefulSet{ return &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{

@ -50,7 +50,7 @@ func (w *waiter) waitForResources(created ResourceList) error {
ctx, cancel := context.WithTimeout(context.Background(), w.timeout) ctx, cancel := context.WithTimeout(context.Background(), w.timeout)
defer cancel() defer cancel()
return wait.PollImmediateUntil(2*time.Second, func() (bool, error) { return wait.PollUntil(2*time.Second, func() (bool, error) {
for _, v := range created { for _, v := range created {
ready, err := w.c.IsReady(ctx, v) ready, err := w.c.IsReady(ctx, v)
if !ready || err != nil { if !ready || err != nil {

Loading…
Cancel
Save