Updated the seeding data documentation to improve clarity and organization, expanding hosts overview.
5.3 KiB
Seeding data
When developing Fleet, it may be useful to create seed data that includes users and fleets.
Setup
In order to run scripts that make use of premium features, make sure you have started the server with the correct flags as described in Testing.
Create an environment variable file
First, create an env file with the following contents:
export SERVER_URL=https://localhost:8080 # your Fleet server URL and port
export CURL_FLAGS='-k -s' # set insecure flag
export TOKEN=eyJhbGciOi... # your api token
Note: store the
envfile somewhere you won't commit your token, or apply these 3 environment variables directly in the command line.
Apply your environment variable file
Set the FLEET_ENV_PATH to point to the env file.
export FLEET_ENV_PATH=./path/to/env/file/fleet_env
This will let the scripts in the /tools/api/fleet/ folder source the env file.
Seeding users
Check out this Loom demo video that walks through creating fleets (formerly "teams") seed data: https://www.loom.com/share/1c41a1540e8f41328a7a6cfc56ad0a01
For a text-based walkthrough, follow these steps:
Run one of the bash scripts located in the /tools/api directory.
Seed free users
The fleet/create_free script will generate an environment to roughly reflect an installation of Fleet Free. The script creates 3 users with different roles. From the fleet directory, run:
./tools/api/fleet/teams/create_free
Seed premium users
The fleet/create_premium script will generate an environment to roughly reflect an installation of Fleet Premium. The script will create 2 fleets of 7 users with different roles. From the fleet directory, run:
./tools/api/fleet/teams/create_premium
Seed designing users
The fleet/create_figma script will generate an environment to reflect the mockups in the Fleet EE (current) Figma file. The script creates 3 fleets and 12 users with different roles. From the fleet directory, run:
./tools/api/fleet/teams/create_figma
Each user generated by the script has its password set to password123#.
User-related actions
Import queries and policies
After seeding users and fleets, check out importing queries and policies from Fleet's library.
Create an API-only user
Like all regular users, seeded users' API tokens expire frequently. For an API token that does not expire, create an API-only user.
Create a single sign-on (SSO) user
Set up SMTP options in your developer environment first to invite a SSO user.
Fleet supports SSO users. Create an SSO test user to test signing on with simple SAML.
Seeding test hosts
There are three ways to create test hosts in your local development environment:
| Method | Best for | Platforms | Resource usage |
|---|---|---|---|
| osquery-perf | Simulating many hosts at scale | macOS, Windows, Linux, iOS, iPadOS | Low |
| Docker test hosts | Testing with real osqueryd instances | CentOS, Ubuntu | High (RAM-intensive) |
| fleetctl preview | Quick demos and exploration | macOS (simulated) | Medium |
osquery-perf
A lightweight Go tool that simulates thousands of hosts from a single machine.
- Supports macOS, Windows, Linux, iOS, and iPadOS via
--os_templates - iOS/iPadOS devices enroll via MDM (requires local MDM setup and SCEP challenge)
- Control host count, enrollment rate, query intervals, and agent behavior
- First-time setup requires building a software database
See the full osquery-perf README for usage instructions and available flags.
Docker test hosts
Runs real containerized osqueryd instances. More realistic but limited to a handful
of hosts due to memory usage.
cd tools/osquery
ENROLL_SECRET=<YOUR_ENROLL_SECRET> docker-compose up
See the Docker test hosts for scaling options and platform-specific instructions.
fleetctl preview
Starts a complete Fleet environment with pre-configured simulated hosts in one command. Not recommended for development testing.
fleetctl preview
See fleetctl preview --help for available options.