@@ -23,10 +23,12 @@ import (
23
23
24
24
"github.com/pkg/errors"
25
25
corev1 "k8s.io/api/core/v1"
26
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26
27
ctrl "sigs.k8s.io/controller-runtime"
27
28
"sigs.k8s.io/controller-runtime/pkg/client"
28
29
29
30
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
31
+ "sigs.k8s.io/cluster-api/controllers/noderefutil"
30
32
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
31
33
"sigs.k8s.io/cluster-api/internal/util/taints"
32
34
"sigs.k8s.io/cluster-api/util"
@@ -81,7 +83,7 @@ func (r *MachinePoolReconciler) reconcileNodeRefs(ctx context.Context, cluster *
81
83
}
82
84
83
85
// Get the Node references.
84
- nodeRefsResult , err := r .getNodeReferences (ctx , clusterClient , mp .Spec .ProviderIDList )
86
+ nodeRefsResult , err := r .getNodeReferences (ctx , clusterClient , mp .Spec .ProviderIDList , mp . Spec . MinReadySeconds )
85
87
if err != nil {
86
88
if err == errNoAvailableNodes {
87
89
log .Info ("Cannot assign NodeRefs to MachinePool, no matching Nodes" )
@@ -152,7 +154,7 @@ func (r *MachinePoolReconciler) deleteRetiredNodes(ctx context.Context, c client
152
154
return nil
153
155
}
154
156
155
- func (r * MachinePoolReconciler ) getNodeReferences (ctx context.Context , c client.Client , providerIDList []string ) (getNodeReferencesResult , error ) {
157
+ func (r * MachinePoolReconciler ) getNodeReferences (ctx context.Context , c client.Client , providerIDList []string , minReadySeconds * int32 ) (getNodeReferencesResult , error ) {
156
158
log := ctrl .LoggerFrom (ctx , "providerIDList" , len (providerIDList ))
157
159
158
160
var ready , available int
@@ -184,9 +186,11 @@ func (r *MachinePoolReconciler) getNodeReferences(ctx context.Context, c client.
184
186
continue
185
187
}
186
188
if node , ok := nodeRefsMap [providerID ]; ok {
187
- available ++
188
189
if nodeIsReady (& node ) {
189
190
ready ++
191
+ if noderefutil .IsNodeAvailable (& node , * minReadySeconds , metav1 .Now ()) {
192
+ available ++
193
+ }
190
194
}
191
195
nodeRefs = append (nodeRefs , corev1.ObjectReference {
192
196
Kind : node .Kind ,
0 commit comments