Move fleet retention and concurrency controls into Settings
Persist settings in SQLite, import legacy environment values once, and apply changes to cleanup and deployment queues without restarting. Closes #51
This commit is contained in:
@@ -98,6 +98,30 @@ submitted recovery continue. Each capability retains its own policy. Automatic
|
||||
updates remain disabled until explicitly enabled. See [Maintenance](docs/maintenance.md)
|
||||
for verification, retry, scheduling, and compatibility details.
|
||||
|
||||
## Fleet settings
|
||||
|
||||
**Settings → Fleet settings** controls campaign history retention (default 7 days),
|
||||
concurrent restarts (default 1), and concurrent server startups (default 1).
|
||||
Values are positive whole numbers; retention supports up to 36500 days. Settings
|
||||
are saved in SQLite for all users and apply at the next queue or cleanup check
|
||||
without restarting the app. Lowering a limit leaves active operations running
|
||||
and holds queued work until capacity is available. Collection previews and
|
||||
progress pages display the current startup limit.
|
||||
|
||||
Retention removes eligible old campaign records and file diffs. Pending, failed,
|
||||
held, and health-recovery-linked campaigns remain protected; Provisioning history
|
||||
is retained. Shortening retention can remove older history on the next sweep.
|
||||
|
||||
On the first startup after upgrading, existing `DEPLOY_KEEP_DAYS`,
|
||||
`DEPLOYMENT_RESTART_CONCURRENCY`, and `DEPLOYMENT_CREATE_CONCURRENCY` environment
|
||||
values initialize the saved settings. Keep custom values for that first startup;
|
||||
afterward, the database values take precedence and those variables can be removed.
|
||||
The supplied Compose and Komodo examples use the built-in defaults.
|
||||
|
||||
`GET /api/settings` reads the three values (`deployKeepDays`, `restartConcurrency`,
|
||||
`createConcurrency`); `PUT /api/settings` saves all three together as JSON.
|
||||
Invalid or incomplete requests return HTTP 400 without changing saved settings.
|
||||
|
||||
## How restarts stay safe
|
||||
|
||||
Betas support configurable gameplay, participation, stability and manual-review
|
||||
@@ -107,7 +131,7 @@ requirements, saved presets, coverage rules and staged waves. See
|
||||
File changes are staged sequentially. Their activation uses rolling restarts:
|
||||
by default only **one server across the fleet** can restart or recover at a
|
||||
time. Promotions, rollbacks, drift reconciliation, and beta restarts share this
|
||||
limit. Set `DEPLOYMENT_RESTART_CONCURRENCY` to a positive integer to raise it.
|
||||
limit. Adjust **Concurrent restarts** in **Settings → Fleet settings** to raise it.
|
||||
|
||||
The Provisioning worker runs every 15s. Campaigns, betas, and maintenance submit
|
||||
durable restart requests and read their results. Provisioning checks recovering
|
||||
@@ -164,8 +188,8 @@ launches. A startup slot stays occupied until Komodo is healthy and RCON or
|
||||
fresh telemetry reports the selected map; an unready server holds the queue until it recovers
|
||||
or is removed. The queue survives application restarts. The collection preview
|
||||
shows the startup limit, and its progress page shows active startups and each
|
||||
server's place in the shared queue. Set `DEPLOYMENT_CREATE_CONCURRENCY` to a
|
||||
positive integer to increase the limit. Each worker pass starts at most the
|
||||
server's place in the shared queue. Adjust **Concurrent server startups** in
|
||||
**Settings → Fleet settings** to increase the limit. Each worker pass starts at most the
|
||||
available number of slots; immediate failures do not drain the remaining queue.
|
||||
Existing single-server collections can be expanded with **Edit**. Single-server
|
||||
launches and launching again from recorded recipes remain available.
|
||||
|
||||
Reference in New Issue
Block a user