Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit bfe7287

Browse files
authored
Merge pull request #41 from chaolou/fix-lease-client-panic
fix panic: client is nil when EnableNodeLease is false
2 parents ac2681b + f311151 commit bfe7287

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

internal/commands/root/root.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,12 @@ func runRootCommandWithProviderAndClient(ctx context.Context, pInit provider.Ini
172172
"watchedNamespace": c.KubeNamespace,
173173
}))
174174

175-
var leaseClient v1.LeaseInterface
176-
if c.EnableNodeLease {
177-
leaseClient = client.CoordinationV1().Leases(corev1.NamespaceNodeLease)
178-
}
179-
180175
nodeProvider, ok := p.(node.NodeProvider)
181176
if !ok {
182177
nodeProvider = node.NaiveNodeProvider{}
183178
}
184179
pNode := NodeFromProvider(ctx, c.NodeName, taint, p, c.Version)
185-
nodeRunner, err := node.NewNodeController(
186-
nodeProvider,
187-
pNode,
188-
client.CoreV1().Nodes(),
189-
node.WithNodeEnableLeaseV1(leaseClient, node.DefaultLeaseDuration),
180+
opts := []node.NodeControllerOpt{
190181
node.WithNodeStatusUpdateErrorHandler(func(ctx context.Context, err error) error {
191182
if !k8serrors.IsNotFound(err) {
192183
return err
@@ -202,6 +193,18 @@ func runRootCommandWithProviderAndClient(ctx context.Context, pInit provider.Ini
202193
log.G(ctx).Debug("created new node")
203194
return nil
204195
}),
196+
}
197+
var leaseClient v1.LeaseInterface
198+
if c.EnableNodeLease {
199+
leaseClient = client.CoordinationV1().Leases(corev1.NamespaceNodeLease)
200+
opts = append(opts, node.WithNodeEnableLeaseV1(leaseClient, node.DefaultLeaseDuration))
201+
}
202+
203+
nodeRunner, err := node.NewNodeController(
204+
nodeProvider,
205+
pNode,
206+
client.CoreV1().Nodes(),
207+
opts...,
205208
)
206209
if err != nil {
207210
log.G(ctx).Fatal(err)

0 commit comments

Comments
 (0)