Update controller initializer funcs to take Context

This commit is contained in:
Mike Dame
2021-04-22 14:08:24 -04:00
parent 6a71f85ccf
commit 80dcf7df1b
11 changed files with 309 additions and 294 deletions

View File

@@ -21,6 +21,8 @@ limitations under the License.
package app
import (
"context"
"k8s.io/klog/v2"
utilfeature "k8s.io/apiserver/pkg/util/feature"
@@ -31,31 +33,31 @@ import (
kubefeatures "k8s.io/kubernetes/pkg/features"
)
func startDisruptionController(ctx ControllerContext) (controller.Interface, bool, error) {
func startDisruptionController(ctx context.Context, controllerContext ControllerContext) (controller.Interface, bool, error) {
if !utilfeature.DefaultFeatureGate.Enabled(kubefeatures.PodDisruptionBudget) {
klog.InfoS("Refusing to start disruption because the PodDisruptionBudget feature is disabled")
return nil, false, nil
}
client := ctx.ClientBuilder.ClientOrDie("disruption-controller")
config := ctx.ClientBuilder.ConfigOrDie("disruption-controller")
client := controllerContext.ClientBuilder.ClientOrDie("disruption-controller")
config := controllerContext.ClientBuilder.ConfigOrDie("disruption-controller")
scaleKindResolver := scale.NewDiscoveryScaleKindResolver(client.Discovery())
scaleClient, err := scale.NewForConfig(config, ctx.RESTMapper, dynamic.LegacyAPIPathResolverFunc, scaleKindResolver)
scaleClient, err := scale.NewForConfig(config, controllerContext.RESTMapper, dynamic.LegacyAPIPathResolverFunc, scaleKindResolver)
if err != nil {
return nil, false, err
}
go disruption.NewDisruptionController(
ctx.InformerFactory.Core().V1().Pods(),
ctx.InformerFactory.Policy().V1().PodDisruptionBudgets(),
ctx.InformerFactory.Core().V1().ReplicationControllers(),
ctx.InformerFactory.Apps().V1().ReplicaSets(),
ctx.InformerFactory.Apps().V1().Deployments(),
ctx.InformerFactory.Apps().V1().StatefulSets(),
controllerContext.InformerFactory.Core().V1().Pods(),
controllerContext.InformerFactory.Policy().V1().PodDisruptionBudgets(),
controllerContext.InformerFactory.Core().V1().ReplicationControllers(),
controllerContext.InformerFactory.Apps().V1().ReplicaSets(),
controllerContext.InformerFactory.Apps().V1().Deployments(),
controllerContext.InformerFactory.Apps().V1().StatefulSets(),
client,
ctx.RESTMapper,
controllerContext.RESTMapper,
scaleClient,
client.Discovery(),
).Run(ctx.Stop)
).Run(controllerContext.Stop)
return nil, true, nil
}