-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
iructl can be configured to read persistent settings from YAML configuration files.
- Configuration key options
- Default config file locations
- Precedence
- Sample config file
- First-time setup
- Troubleshooting
| Key | Type | Allowed values | Default | Environment variable | CLI flag |
|---|---|---|---|---|---|
output_format |
enum |
table, plist, json, yaml
|
table |
IRUCTL_OUTPUT_FORMAT |
--format / -f
|
info_format |
enum |
plist, json, yaml
|
plist |
IRUCTL_INFO_FORMAT |
--info-format |
git_enabled |
boolean |
true, false
|
true |
IRUCTL_GIT_ENABLED |
--git/--no-git
|
tenant_url |
string | Iru tenant API URL | unset (prompted) | IRUCTL_TENANT |
--tenant-url/-u
|
payload_dir |
string | directory path | <repo>/payloads |
IRUCTL_PAYLOAD_DIR |
--payload-dir |
debug |
boolean |
true, false
|
false |
IRUCTL_DEBUG |
--debug |
preview |
boolean |
true, false
|
false |
IRUCTL_PREVIEW |
--preview |
Format used by show-style commands when printing resources to the terminal.
output_format: jsonOn-disk format for the info files of newly created resources (new, import, and lifecycle
commands). Existing info files keep their format unless rewritten with --reformat.
info_format: yamlWhether iructl performs git interactions (commits, status checks) when modifying the
repository. Set to false if you manage version control yourself.
git_enabled: falseYour Iru tenant's API URL. When unset, commands that talk to the tenant prompt for it interactively.
tenant_url: https://subdomain.api.iru.comDirectory holding app installer binaries, relative to the repository root.
payload_dir: installersEnable debug logging.
debug: trueEnable experimental preview features.
preview: trueImportant
The Iru API token cannot be set in a config file — provide it with the --api-token / -t
flag or by setting the IRUCTL_TOKEN environment variable. See Token Permissions for the
permissions the token requires.
| Platform | Default path |
|---|---|
| macOS | ~/Library/Application Support/iructl/config.yaml |
| Linux | ~/.config/iructl/config.yaml |
| Windows | not currently supported |
Note
XDG support: if the XDG_CONFIG_HOME environment variable is set, iructl uses
$XDG_CONFIG_HOME/iructl/config.yaml instead.
For example, with XDG_CONFIG_HOME=~/.config exported, the user config lives at
~/.config/iructl/config.yaml.
The .iructl marker file at the root of an iructl repository doubles as the repo-level
config. The same file that marks the directory as an iructl repository can contain YAML
settings. These settings are shared by everyone working in that repo. An empty .iructl
file is valid, and means that a repo-level config is not set.
Warning
A repository still using the legacy .kst marker must be migrated before iructl will
recognize it.
Each setting is resolved independently, with the highest precedence first:
-
CLI flag — e.g.
--format json -
Environment variable — e.g.
IRUCTL_OUTPUT_FORMAT=json -
Repo config — the
.iructlfile at the repository root -
User config — your personal
config.yaml - Built-in default
A key that is omitted from a layer (or set to an empty value) falls through to the next layer down. The first layer that sets the key wins.
A complete config.yaml (or repo-level .iructl) setting every key — in practice, set only the keys
you want to pin and leave the rest unset:
# iructl configuration
output_format: table
info_format: plist
git_enabled: true
tenant_url: https://subdomain.api.iru.com
payload_dir: payloads
debug: false
preview: falseCreate the config directory and file:
macOS
mkdir -p "$HOME/Library/Application Support/iructl"
touch "$HOME/Library/Application Support/iructl/config.yaml"Linux (or any platform with XDG_CONFIG_HOME set)
mkdir -p ~/.config/iructl
touch ~/.config/iructl/config.yamlFor repo-level settings, edit the .iructl file at the repository root instead and commit
it so the whole team shares the same default settings.
| Symptom | Cause |
|---|---|
Invalid Iru Control configuration in <path>: … Extra inputs are not permitted
|
Unknown or misspelled key — only the documented keys are allowed. |
Invalid Iru Control configuration in <path>: … Input should be 'table', 'plist', 'json' or 'yaml'
|
Value is not one of the key's allowed values. |
Invalid Iru Control configuration in <path>: expected a mapping of keys to values. |
The YAML parses to a list or scalar instead of key: value pairs. |
| Setting appears to be ignored | A higher-precedence layer sets the same key — check CLI flags, IRUCTL_* environment variables, and the repo .iructl file. |
tenant_url or payload_dir set to "" has no effect |
Empty and whitespace-only strings are treated as unset by design. |
| Repo config not loading | You are outside the repository, or the root has a legacy .kst marker instead of .iructl. |
Getting Started
Working with Resources
- Populating Your Local Repository
- Editing Resources
- Self Service
- Pushing and Syncing
- Listing and Showing Resources
- Deleting Resources
- Blueprint Assignment
Reference
Python API Client