terrajet
terrajet copied to clipboard
PollInterval is not considered by controllers
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