in pkg/operator/operator.go [338:367]
func (o *Operator) Run(ctx context.Context, registry prometheus.Registerer) error {
defer runtimeutil.HandleCrash()
if err := o.cleanupOldResources(ctx); err != nil {
return fmt.Errorf("cleanup old resources: %w", err)
}
if err := setupAdmissionWebhooks(ctx, o.logger, o.client, o.manager.GetWebhookServer().(*webhook.DefaultServer), &o.opts, o.vpaAvailable); err != nil {
return fmt.Errorf("init admission resources: %w", err)
}
if err := setupCollectionControllers(o); err != nil {
return fmt.Errorf("setup collection controllers: %w", err)
}
if err := setupRulesControllers(o); err != nil {
return fmt.Errorf("setup rules controllers: %w", err)
}
if err := setupOperatorConfigControllers(o); err != nil {
return fmt.Errorf("setup rule-evaluator controllers: %w", err)
}
if o.vpaAvailable {
if err := setupScalingController(o); err != nil {
return fmt.Errorf("setup scaling controllers: %w", err)
}
}
if err := setupTargetStatusPoller(o, registry, o.opts.CollectorHTTPClient); err != nil {
return fmt.Errorf("setup target status processor: %w", err)
}
o.logger.Info("starting GMP operator")
return o.manager.Start(ctx)
}