mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 02:11:09 +00:00
Merge pull request #112518 from mimowo/fix-disruption-conditions
Fix handling of NoExecute taint when PodDisruptionConditions is enabled
This commit is contained in:
commit
8f269d6df2
@ -52,11 +52,17 @@ type TimedWorker struct {
|
||||
// createWorker creates a TimedWorker that will execute `f` not earlier than `fireAt`.
|
||||
func createWorker(ctx context.Context, args *WorkArgs, createdAt time.Time, fireAt time.Time, f func(ctx context.Context, args *WorkArgs) error, clock clock.WithDelayedExecution) *TimedWorker {
|
||||
delay := fireAt.Sub(createdAt)
|
||||
fWithErrorLogging := func() {
|
||||
err := f(ctx, args)
|
||||
if err != nil {
|
||||
klog.Errorf("NodeLifecycle: timed worker failed with error: %q", err)
|
||||
}
|
||||
}
|
||||
if delay <= 0 {
|
||||
go f(ctx, args)
|
||||
go fWithErrorLogging()
|
||||
return nil
|
||||
}
|
||||
timer := clock.AfterFunc(delay, func() { f(ctx, args) })
|
||||
timer := clock.AfterFunc(delay, fWithErrorLogging)
|
||||
return &TimedWorker{
|
||||
WorkItem: args,
|
||||
CreatedAt: createdAt,
|
||||
|
@ -255,6 +255,7 @@ func buildControllerRoles() ([]rbacv1.ClusterRole, []rbacv1.ClusterRoleBinding)
|
||||
},
|
||||
}
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.PodDisruptionConditions) {
|
||||
role.Rules = append(role.Rules, rbacv1helpers.NewRule("get").Groups(legacyGroup).Resources("pods").RuleOrDie())
|
||||
role.Rules = append(role.Rules, rbacv1helpers.NewRule("patch").Groups(legacyGroup).Resources("pods/status").RuleOrDie())
|
||||
}
|
||||
return role
|
||||
|
Loading…
Reference in New Issue
Block a user