in cmd/controller/main.go [34:70]
func main() {
ctx, op := operator.NewOperator(coreoperator.NewOperator())
aksCloudProvider := cloudprovider.New(
op.InstanceTypesProvider,
op.InstanceProvider,
op.EventRecorder,
op.GetClient(),
op.ImageProvider,
)
lo.Must0(op.AddHealthzCheck("cloud-provider", aksCloudProvider.LivenessProbe))
cloudProvider := metrics.Decorate(aksCloudProvider)
clusterState := state.NewCluster(op.Clock, op.GetClient(), cloudProvider)
op.
WithControllers(ctx, corecontrollers.NewControllers(
ctx,
op.Manager,
op.Clock,
op.GetClient(),
op.EventRecorder,
cloudProvider,
clusterState,
)...).
WithControllers(ctx, controllers.NewControllers(
ctx,
op.Manager,
op.GetClient(),
op.EventRecorder,
aksCloudProvider,
op.InstanceProvider,
// TODO: refactor so we are passing in kubernetesVersionProvider and nodeImageProvider. Currently ImageProvider just implements both.
op.ImageProvider,
op.ImageProvider,
)...).
Start(ctx)
}