Skip to content

Commit c4011ba

Browse files
committed
set clbbinding state to WaitBackend if pod is not scheduled yet
Signed-off-by: roc <[email protected]>
1 parent f69c93c commit c4011ba

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

internal/clbbinding/clbpodbinding.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ func (b podBackend) GetObject() client.Object {
5757
return b.Pod
5858
}
5959

60+
var ErrNodeNameIsEmpty = errors.New("node name is empty")
61+
6062
func (b podBackend) GetNode(ctx context.Context) (*corev1.Node, error) {
6163
nodeName := b.Pod.Spec.NodeName
6264
if nodeName == "" {
63-
return nil, errors.New("node name is empty")
65+
return nil, ErrNodeNameIsEmpty
6466
}
6567
node := &corev1.Node{}
6668
err := b.Client.Get(ctx, client.ObjectKey{Name: nodeName}, node)

internal/controller/clbbinding.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ func (r *CLBBindingReconciler[T]) ensureBackendBindings(ctx context.Context, bd
216216
}
217217
node, err := backend.GetNode(ctx)
218218
if err != nil {
219+
if err == clbbinding.ErrNodeNameIsEmpty { // pod 还未调度
220+
r.Recorder.Event(bd.GetObject(), corev1.EventTypeNormal, "WaitBackend", "wait pod to be scheduled")
221+
if err = r.ensureState(ctx, bd, networkingv1alpha1.CLBBindingStateWaitBackend); err != nil {
222+
return errors.WithStack(err)
223+
}
224+
return nil
225+
}
219226
return errors.WithStack(err)
220227
}
221228
if !util.IsNodeTypeSupported(node) {

0 commit comments

Comments
 (0)