terrajet icon indicating copy to clipboard operation
terrajet copied to clipboard

PollInterval is not considered by controllers

Open fhopfensperger opened this issue 1 year ago • 0 comments

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

fhopfensperger avatar Aug 01 '22 12:08 fhopfensperger