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
--endpoint
or--client-config
Environment variables such as
JMP_ENDPOINT
,JMP_TOKEN
, orJMP_CLIENT_CONFIG
Current client defined in
${HOME}/.config/jumpstarter/config.yaml
Specific 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
--exporter
or--exporter-config
Environment variables such as
JMP_ENDPOINT
,JMP_TOKEN
, orJMP_NAMESPACE
Specific 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.