Skip to content

Governance configuration ​

The governance configuration is one settings record that controls the automatic policies the scheduler applies every 60 seconds. Administrators edit it on the Governance page; the API is GET / PUT /api/v1/governance/config. This page lists every field with its default, its allowed range and what it does. Changing a value takes effect on the next scheduler cycle; nothing has to be restarted.

Resource alerts ​

An alert is opened when a cluster, node or machine sample reaches a threshold. It is shown on the Monitoring page and e-mailed to every active administrator. The master switch, the cooldown and the check interval also apply to platform health alerts (scheduler, worker, Redis, PVE connections).

FieldDefaultRangeEffect
alerts_enabledtrueMaster switch for resource and platform health alerts.
alert_cpu_threshold9050–100 (%)CPU usage above which an alert is raised.
alert_memory_threshold9050–100 (%)Memory usage threshold.
alert_disk_threshold9050–100 (%)Disk usage threshold.
alert_cooldown_minutes301–1440Minimum time between two alerts for the same target and metric.
alert_check_interval_seconds6015–3600How often usage is sampled.
alert_email_enabledtrueAlso send the alert to the administrators by e-mail (needs SMTP).

TTL lifecycle ​

For every machine with an expiry date, the lifecycle task warns the owner before it, stops the machine at expiry and queues it for deletion after the grace period. Extending the expiry resets the warning.

FieldDefaultRangeEffect
ttl_enabledtrueMaster switch. When off, expired machines are left running.
expiry_warn_days31–30Days before expiry at which the owner is notified.
expiry_grace_delete_days70–90Days after expiry before the stopped machine is queued for deletion. 0 deletes at expiry.

Idle detection ​

A running machine that has been up for the whole observation window and whose average CPU over that window stays below the threshold is marked idle. Both timers below count from that mark: the owner is notified first, and the machine is stopped when the grace period ends. Any load or a reboot clears the mark. Machines with an open mining incident are skipped.

FieldDefaultRangeEffect
idle_detection_enabledtrueMaster switch.
idle_cpu_threshold_percent1.00.1–20 (%)Average CPU below which the machine counts as idle.
idle_window_hours481–720Length of the observation window.
idle_notify_after_hours121–720Hours of continuous idleness before the owner is notified. Must be smaller than idle_grace_hours; the API rejects the update otherwise.
idle_grace_hours241–720Hours of continuous idleness before the machine is stopped.
idle_scan_batch_size201–200Machines examined per scheduler cycle. Raise it on large clusters.

Workload advisor ​

FieldDefaultRangeEffect
workload_advisor_enabledtrueShows the "VM or container?" recommendation in the request form (POST /api/v1/vm-requests/advise). When off, the endpoint and requests in auto mode are rejected.

Mining detection ​

Sustained CPU saturation over the window is treated as a suspected mining incident: an evidence snapshot is taken, the machine is paused, an alert is opened and the administrators and the teachers of the owner's classes are e-mailed. Class machines and GPU machines get the evidence snapshot but are never paused automatically. Suspending the account is always a manual decision on the Monitoring page.

FieldDefaultRangeEffect
mining_detection_enabledtrueMaster switch.
mining_cpu_threshold_percent9050–100 (%)CPU usage that counts as saturation.
mining_window_hours61–72Hours of continuous saturation before an incident is opened.
mining_scan_batch_size201–200Machines examined per cycle.
mining_auto_suspendtrueTake the evidence snapshot and pause the machine automatically when an incident is opened. When off, the incident only produces the alert and the e-mail; all action is manual.

Provisioning ​

FieldDefaultRangeEffect
provision_max_concurrency41–16Machine-request and quick-practice clones allowed to run at the same time in one worker process (with several worker processes the limit multiplies). Further clones wait in the queue. A class batch job creates its machines one after another and does not use this limit.

Snapshots and backups ​

FieldDefaultRangeEffect
snapshot_cleanup_enabledtrueDelete snapshots older than the retention automatically. The initial skylab-init snapshot is never removed; mining evidence snapshots are kept until 30 days after their incident is closed.
snapshot_retention_days71–90Age after which a snapshot is removed by the cleanup.
student_snapshot_max_count31–10Snapshots a non-administrator (student or teacher) may keep per machine. skylab-init and mining evidence snapshots do not count.
student_backup_max_count21–10Backups a non-administrator may keep per machine. Backups are the restore point for machines whose storage has no snapshot support, and use far more space, hence the separate limit.

Released under the AGPL-3.0 License.