mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
# Details This PR adds on to the https://github.com/fleetdm/fleet/pull/30278 which added support for host vitals labels, by adding a cron job which updates host vitals label membership every 5 minutes. Unlike "dynamic" label types, where the hosts determine membership themselves and report their decision to Fleet when they check in, "host vitals" label membership is determine by Fleet. This means they can be applied to hosts which don't check in at the `/distributed/write` endpoint (like mobile devices). The mechanism in the cron job is pretty naïve, it just lists all the labels, post-filters for "host vitals" labels and updates membership for each. Since the # of labels on an instance tends not to be excessive, and since updating membership consists of one `DELETE` query and one `INSERT...SELECT` query, this is not expected to contribute significant load, but load testing should verify this. # Checklist for submitter - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. - [X] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [X] Added/updated automated tests - [X] Manual QA for all new/changed functionality # Testing Tested by manually adding scim groups, users etc. in the db and adding a couple of new host vitals labels using the API. I've uploaded a folder containing a db snapshot and creds to [Google Drive]( https://drive.google.com/drive/folders/1pDlg2XtS139d3sxq9iFqFs6vez8LeUgg?usp=sharing). To use it, create a new folder `~/.fleet/snapshots/test_host_vitals_labels`, download the `db.sql.gz` file into it, then do `fdm restore --prep` and select "test_host_vitals_labels". After starting the server you can trigger the new job using `fleetctl trigger --name host_vitals_label_membership` or wait five minutes. New automated tests were added for a small change to the `GetLabels()` method, and for the new cron job. Tests for other functionality were added in https://github.com/fleetdm/fleet/pull/30278.
1 line
72 B
Text
1 line
72 B
Text
- Added support for "Host Vitals" label, starting with IdP-based labels
|