Skip to content

Commit

Permalink
Add --module-sync-period CLI and corresponding module.syncPeriod Helm…
Browse files Browse the repository at this point in the history
… chart option
  • Loading branch information
arybolovlev committed Aug 30, 2024
1 parent 6127ef0 commit befe159
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 1 deletion.
1 change: 1 addition & 0 deletions charts/hcp-terraform-operator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ For a more detailed explanation, please refer to the [FAQ](../../docs/faq.md#gen
|-----|------|---------|-------------|
| controllers.agentPool.syncPeriod | string | `"30s"` | The minimum frequency at which watched Agent Pool resources are reconciled. Format: 5s, 1m, etc. |
| controllers.agentPool.workers | int | `1` | The number of the Agent Pool controller workers. |
| controllers.module.syncPeriod | string | `"5m"` | The minimum frequency at which watched Module resources are reconciled. Format: 5s, 1m, etc. |
| controllers.module.workers | int | `1` | The number of the Module controller workers. |
| controllers.project.workers | int | `1` | The number of the Project controller workers. |
| controllers.workspace.syncPeriod | string | `"5m"` | The minimum frequency at which watched Workspace resources are reconciled. Format: 5s, 1m, etc. |
Expand Down
1 change: 1 addition & 0 deletions charts/hcp-terraform-operator/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ spec:
- --agent-pool-workers={{ .Values.controllers.agentPool.workers }}
- --agent-pool-sync-period={{ .Values.controllers.agentPool.syncPeriod }}
- --module-workers={{ .Values.controllers.module.workers }}
- --module-sync-period={{ .Values.controllers.module.syncPeriod }}
- --project-workers={{ .Values.controllers.project.workers }}
- --workspace-workers={{ .Values.controllers.workspace.workers }}
- --workspace-sync-period={{ .Values.controllers.workspace.syncPeriod }}
Expand Down
2 changes: 2 additions & 0 deletions charts/hcp-terraform-operator/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ controllers:
module:
# -- The number of the Module controller workers.
workers: 1
# -- The minimum frequency at which watched Module resources are reconciled. Format: 5s, 1m, etc.
syncPeriod: 5m
project:
# -- The number of the Project controller workers.
workers: 1
Expand Down
1 change: 1 addition & 0 deletions controllers/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ import (

var (
AgentPoolSyncPeriod time.Duration
ModuleSyncPeriod time.Duration
WorkspaceSyncPeriod time.Duration
)
2 changes: 1 addition & 1 deletion controllers/module_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ func (r *ModuleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr

m.log.Info("Module Controller", "msg", "successfully reconcilied module")

return doNotRequeue()
return requeueAfter(ModuleSyncPeriod)
}

// SetupWithManager sets up the controller with the Manager.
Expand Down
2 changes: 2 additions & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@

The `--agent-pool-sync-period` is a `AgentPool` controller option that specifies the time interval for requeuing AgentPool resources, ensuring they will be reconciled. This time is set individually per resource and it helps avoid spike of the resources to reconcile.

The `--module-sync-period` is a `Module` controller option that specifies the time interval for requeuing Module resources, ensuring they will be reconciled. This time is set individually per resource and it helps avoid spike of the resources to reconcile.

The `--workspace-sync-period` is a `Workspace` controller option that specifies the time interval for requeuing Workspace resources, ensuring they will be reconciled. This time is set individually per resource and it helps avoid spike of the resources to reconcile.

The controller synchronization period should be aligned with the number of managed Customer Resources. If the period is too low and the number of managed resources is too high, you may observe slowness in synchronization.
Expand Down
2 changes: 2 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func main() {
var moduleWorkers int
flag.IntVar(&moduleWorkers, "module-workers", 1,
"The number of the Module controller workers.")
flag.DurationVar(&controllers.ModuleSyncPeriod, "module-sync-period", 5*time.Minute,
"The minimum frequency at which watched workspace resources are reconciled. Format: 5s, 1m, etc.")
// PROJECT CONTROLLER OPTIONS
var projectWorkers int
flag.IntVar(&projectWorkers, "project-workers", 1,
Expand Down

0 comments on commit befe159

Please sign in to comment.