PollInterval is not considered by controllers (original) (raw)

What happened?

Currently the PollInterval Option is not considered by controllers, instead the default poll interval is used. For example provider-jet-aws defines a poll interval

o := tjcontroller.Options{
    Options: xpcontroller.Options{
        Logger:                  log,
        GlobalRateLimiter:       ratelimiter.NewGlobal(*maxReconcileRate),
        PollInterval:            1 * time.Minute,
        MaxConcurrentReconciles: 1,
        Features:                &feature.Flags{},
    },
    Provider:       config.GetProvider(),
    WorkspaceStore: terraform.NewWorkspaceStore(log, terraform.WithProviderRunner(runner)),
    SetupFn:        clients.TerraformSetupBuilder(*terraformVersion, *providerSource, *providerVersion),
}

but this option is not considered in controller setup functions

r := managed.NewReconciler(mgr,
    xpresource.ManagedKind(v1alpha2.Attachment_GroupVersionKind),
    managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["aws_autoscaling_attachment"])),
    managed.WithLogger(o.Logger.WithValues("controller", name)),
    managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))),
    managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))),
    managed.WithTimeout(3*time.Minute),
    managed.WithInitializers(initializers),
    managed.WithConnectionPublishers(cps...),
)

as the Terrajet generator doesn't define this option.

How can we reproduce it?

Run make generate on any jet provider