Merge pull request #112518 from mimowo/fix-disruption-conditions

Fix handling of NoExecute taint when PodDisruptionConditions is enabled
This commit is contained in:
Kubernetes Prow Robot 2022-09-23 09:00:26 -07:00 committed by GitHub
commit 8f269d6df2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View File

@ -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,

View File

@ -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