Skip to content

Commit 4752e24

Browse files
authored
chore: set defaults for poll interval and max reconcile rate (#137)
* chore: set defaults for poll interval and max reconcile rate * lint
1 parent d1fd01b commit 4752e24

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

cmd/provider/main.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ func main() {
4747
app = kingpin.New(filepath.Base(os.Args[0]), "Terraform based Crossplane provider for Scaleway").DefaultEnvars()
4848
debug = app.Flag("debug", "Run with debug logging.").Short('d').Bool()
4949
syncInterval = app.Flag("sync", "Sync interval controls how often all resources will be double checked for drift.").Short('s').Default("1h").Duration()
50-
pollInterval = app.Flag("poll", "Poll interval controls how often an individual resource should be checked for drift.").Default("10m").Duration()
50+
pollInterval = app.Flag("poll", "Poll interval controls how often an individual resource should be checked for drift.").Default("30m").Duration()
5151
pollStateMetricInterval = app.Flag("poll-state-metric", "State metric recording interval").Default("5s").Duration()
5252
leaderElection = app.Flag("leader-election", "Use leader election for the controller manager.").Short('l').Default("false").OverrideDefaultFromEnvar("LEADER_ELECTION").Bool()
5353
terraformVersion = app.Flag("terraform-version", "Terraform version.").Required().Envar("TERRAFORM_VERSION").String()
5454
providerSource = app.Flag("terraform-provider-source", "Terraform provider source.").Required().Envar("TERRAFORM_PROVIDER_SOURCE").String()
5555
providerVersion = app.Flag("terraform-provider-version", "Terraform provider version.").Required().Envar("TERRAFORM_PROVIDER_VERSION").String()
56-
maxReconcileRate = app.Flag("max-reconcile-rate", "The global maximum rate per second at which resources may checked for drift from the desired state.").Default("10").Int()
56+
maxReconcileRate = app.Flag("max-reconcile-rate", "The global maximum rate per second at which resources may checked for drift from the desired state.").Default("2").Int()
5757

5858
namespace = app.Flag("registry_namespace.yaml", "Namespace used to set as default scope in default secret store config.").Default("crossplane-system").Envar("POD_NAMESPACE").String()
5959
enableExternalSecretStores = app.Flag("enable-external-secret-stores", "Enable support for ExternalSecretStores.").Default("false").Envar("ENABLE_EXTERNAL_SECRET_STORES").Bool()
@@ -72,7 +72,10 @@ func main() {
7272
ctrl.SetLogger(zl)
7373
}
7474

75-
log.Debug("Starting", "sync-interval", syncInterval.String(), "max-reconcile-rate", *maxReconcileRate)
75+
// currently, we configure the jitter to be the 5% of the poll interval
76+
pollJitter := time.Duration(float64(*pollInterval) * 0.05)
77+
log.Debug("Starting", "sync-interval", syncInterval.String(),
78+
"poll-interval", pollInterval.String(), "poll-jitter", pollJitter, "max-reconcile-rate", *maxReconcileRate)
7679

7780
cfg, err := ctrl.GetConfig()
7881
kingpin.FatalIfError(err, "Cannot get API server rest config")
@@ -116,6 +119,7 @@ func main() {
116119
// terraform.WithProviderRunner(terraform.NewSharedProvider(log, os.Getenv("TERRAFORM_NATIVE_PROVIDER_PATH"), terraform.WithNativeProviderArgs("-debuggable")))
117120
WorkspaceStore: terraform.NewWorkspaceStore(log, terraform.WithFeatures(featureFlags)),
118121
SetupFn: clients.TerraformSetupBuilder(*terraformVersion, *providerSource, *providerVersion),
122+
PollJitter: pollJitter,
119123
}
120124

121125
if *enableManagementPolicies {

0 commit comments

Comments
 (0)