karmada icon indicating copy to clipboard operation
karmada copied to clipboard

controller: pass `ctx` parameter from top level to sub functions, instead of creating one new or using default context

Open jwcesign opened this issue 3 years ago • 2 comments

What would you like to be added: pass ctx parameter from top level to sub functions, instead of creating one new or using default context

Why is this needed:

  1. When create controllerManager, Options.BaseContext is empty: https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/cmd/controller-manager/app/controllermanager.go#L117

https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go#L245

  1. When create Runnables, Options.BaseContext empty, so runnableGroup.ctx will be defaultBaseContext: https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/vendor/sigs.k8s.io/controller-runtime/pkg/manager/manager.go#L616

https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/vendor/sigs.k8s.io/controller-runtime/pkg/manager/runnable_group.go#L103

  1. When run resource reconcile function, they use the defaultBaseContext : https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/vendor/sigs.k8s.io/controller-runtime/pkg/manager/runnable_group.go#L219

  2. this ctx will be passed to resource Reconcile function: https://github.com/karmada-io/karmada/blob/026781f207005c07b5f4cb0e76cf79b055bf53c0/pkg/controllers/namespace/namespace_sync_controller.go#L49

This will cause: cancel signal can't control some sub functions

jwcesign avatar Oct 29 '22 07:10 jwcesign

cc @RainbowMango

jwcesign avatar Oct 29 '22 07:10 jwcesign

/kind cleanup /remove-kind feature

jwcesign avatar Oct 29 '22 07:10 jwcesign

@jwcesign Hi , I just take a pr for that , PTAL

yanggangtony avatar Nov 05 '22 01:11 yanggangtony