Allow reconciliation intervals to be set on instance via ENV vars
MR: Add Full & Partial Reconcilation Intervals To S... (!151478 - merged)
Description
As a local dev or instance admin, I want to be able to override the workspace agent reconciliation intervals so that I can perform full syncs more or less often as appropriate.
We need to implement the "ENV vars" portion of the Plan of Action as described in Allow users to set reconciliation intervals in ... (&12347 - closed)
This issue does NOT include adding support for controlling these values via the Web UI.
Updated section 14/May
Based on the discussions so far, this MR is only responsible for introducing 2 ENVs at the instance level. For utilizing both variables during the reconciliation flow, we have created 2 separate issues under the same epic. I have also listed them below for convinence.
We would need to validate vars and pass them through the existing reconciliation API on the Rails side. And apply those vars on the agent side from the API.
- For Rails side issue, Pass reconciliation ENV vars into Rails API and... (#460416 - closed)
- For Agent side issue, Agent New Settings Config With Default API valu... (gitlab-org/cluster-integration/gitlab-agent#570 - closed)
Acceptance Criteria
-
Add support for configuring the default full_reconciliation_interval and partial_reconciliation_interval at GitLab instance level through environment variables. - this should be done via the Remote Development Settings Module's automatic ENV var override support
Technical Requirements
- Use the Remote Development Settings Module (https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/remote_development/README.md#remote-development-settings) to add a new JSON setting
reconciliation_intervals
, as{"full_reconciliation_interval":Integer,"partial_reconciliation_interval":Integer}
Design Requirements
None, no UI impact.
Impact Assessment
- Instance admins may want to override these values to either provide faster update and reconciliation for workspaces, or to reduce load on the monolith.
- Developers may want to override these values so they can have faster feedback when developing features, e.g. have a much faster full reconciliation interval than an hour. Otherwise they have to hack the hardcoded intervals, or restart their agent to force a full reconcile.