Warning
This documentation is actively being updated as the project evolves and may not be complete in all areas.
Loading Order¶
Jumpstarter uses a hierarchical approach to loading configuration, allowing you to override settings at different levels.
Configuration Sources¶
Jumpstarter loads configuration from the following sources, in order of precedence (highest to lowest):
Command-line arguments - Highest priority, override all other settings
Environment variables - Override file-based configurations
User configuration files - Located in
${HOME}/.config/jumpstarter/System configuration files - Located in
/etc/jumpstarter/
Client Configuration Hierarchy¶
For client operations, Jumpstarter processes configurations in this order:
Command-line options such as
--endpointor--client-configEnvironment variables such as
JMP_ENDPOINT,JMP_TOKEN, orJMP_CLIENT_CONFIGCurrent client defined in
${HOME}/.config/jumpstarter/config.yamlSpecific client file in
${HOME}/.config/jumpstarter/clients/<n>.yaml
Exporter Configuration Hierarchy¶
For exporter operations, Jumpstarter processes configurations in this order:
Command-line options such as
--exporteror--exporter-configEnvironment variables such as
JMP_ENDPOINT,JMP_TOKEN, orJMP_NAMESPACESpecific exporter file in
/etc/jumpstarter/exporters/<n>.yaml
Example¶
Here’s a practical example of how configuration overrides work:
You create a client configuration file at
${HOME}/.config/jumpstarter/clients/default.yaml:endpoint: "jumpstarter1.my-lab.com:1443"
You set an environment variable in your terminal:
$ export JMP_ENDPOINT="jumpstarter2.my-lab.com:1443"
You run a command with an explicit endpoint argument:
$ jmp --endpoint jumpstarter3.my-lab.com:1443 info
Jumpstarter connects to jumpstarter3.my-lab.com:1443 because the command-line
argument has the highest priority.
Use Cases¶
Choose the appropriate configuration method based on your needs:
Development: Use user config files for personal settings
CI/CD Pipelines: Use environment variables for automation
One-off Tasks: Use command-line arguments for temporary changes
System Defaults: Use system config files for shared settings across users
This hierarchical approach allows Jumpstarter to be flexible across different usage scenarios while maintaining consistent behavior.