Config file reference#
Every configuration key Kiso supports, organised by section.
Complete annotated example#
name: my-experiment
sites:
- kind: vagrant
resources:
machines:
- labels: [compute]
flavour: small
number: 1
networks:
- cidr: 172.16.42.0/16
labels: [net1]
software:
docker:
labels: [compute]
apptainer:
labels: [compute]
ollama:
- labels: [compute]
models: [llama3]
shell:
- labels: [compute]
script: echo hello
deployment:
htcondor:
- kind: personal
labels: [compute]
experiments:
- kind: shell
name: my-shell
scripts:
- labels: [compute]
script: echo hello
- kind: pegasus
name: my-workflow
main: workflow.py
submit_node_labels: [compute]
Top-level keys#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Human-readable name for the experiment |
|
list |
Yes |
— |
Infrastructure providers. Minimum 1 item. |
|
list |
Yes |
— |
Experiments to run. Minimum 1 item. |
|
object |
No |
— |
Software runtimes to install |
|
object |
No |
— |
Workload management system |
|
object |
No |
|
Global variables accessible in experiments |
sites[] — Vagrant#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
No |
|
VM hypervisor: |
|
string |
No |
|
Base Vagrant box for all machines |
|
string |
No |
|
SSH user for all machines |
|
string |
No |
|
Prefix for VM names |
|
string |
No |
— |
Extra Vagrant DSL config applied to all VMs |
|
list[string] |
Yes |
— |
Labels to assign to these machines |
|
string |
Yes* |
— |
Predefined size: |
|
number |
Yes* |
— |
vCPUs (used with |
|
number |
Yes* |
— |
RAM in MB (used with |
|
integer |
No |
|
Number of VMs to provision |
|
string |
No |
site-level default |
Per-machine backend override |
|
string |
No |
site-level default |
Per-machine box override |
|
string |
No |
site-level default |
Per-machine SSH user override |
|
string |
No |
site-level default |
Per-machine VM name prefix |
|
string |
No |
— |
Extra Vagrant DSL config for this VM only |
|
string |
Yes |
— |
Network subnet in CIDR notation |
|
list[string] |
Yes |
— |
Labels for this network |
sites[] — FABRIC#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Path to the FABRIC RC credentials file |
|
string |
No |
|
Lease duration in |
|
string |
No |
|
Default FABRIC site for all resources |
|
string |
No |
|
Default OS image for all machines |
|
string |
No |
|
Prefix for provisioned resource names |
|
list[string] |
Yes |
— |
Labels to assign |
|
string |
Yes* |
— |
Predefined size: |
|
integer |
Yes* |
— |
Number of cores (used with |
|
integer |
Yes* |
— |
RAM in GB (used with |
|
integer |
No |
— |
Disk in GB (used with |
|
integer |
No |
|
Number of machines |
|
string |
No |
site-level default |
Per-machine site override |
|
string |
No |
site-level default |
Per-machine OS image override |
|
list[string] |
Yes |
— |
Labels for this network |
|
string |
Yes |
— |
Network type: |
|
string |
Yes* |
— |
FABRIC site. Required for all types except |
|
string |
Yes* |
— |
First site. |
|
string |
Yes* |
— |
Second site. |
|
string |
No |
— |
Subnet in CIDR notation. |
sites[] — Chameleon bare metal#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Path to OpenRC credentials file |
|
string |
Yes |
— |
Name of SSH keypair registered in Chameleon |
|
string |
No |
|
Name for the Chameleon lease |
|
string |
No |
|
Lease duration in |
|
string |
No |
|
Default OS image for all machines |
|
string |
No |
|
Default SSH user |
|
boolean |
No |
|
Whether to configure networking |
|
string |
No |
|
OpenStack network name |
|
list[string] |
Yes |
— |
Labels to assign |
|
string |
Yes |
— |
OpenStack flavour name (e.g. |
|
integer |
Yes |
— |
Number of machines |
|
string |
No |
site default |
Per-machine OS image override |
|
string |
No |
site default |
Per-machine SSH user override |
|
list[string] |
No |
— |
List of OpenStack network name strings |
sites[] — Chameleon Edge#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Path to OpenRC credentials file |
|
string |
No |
|
Name for the edge lease |
|
string |
No |
|
Lease duration in |
|
list[string] |
Yes |
— |
Labels to assign |
|
string |
Yes* |
— |
Board/machine type (DeviceCluster). *Required unless |
|
integer |
Yes* |
— |
Number of devices (DeviceCluster). *Required unless |
|
string |
Yes* |
— |
Specific device hostname (Device). *Required unless |
|
string |
No |
— |
Device model filter |
|
string |
No |
— |
Container name |
|
string |
No |
— |
Container image |
|
list[string] |
No |
— |
Ports to expose (e.g. |
|
boolean |
No |
— |
Start container immediately |
|
integer |
No |
— |
Seconds to wait for container to start |
|
list[string] |
No |
— |
Device profiles (e.g. GPU access) |
|
list[string] |
Yes |
— |
Labels for this network |
|
string |
Yes |
— |
Network ID |
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Chameleon site (e.g. |
software.docker#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
list[string] |
Yes |
— |
Labels of nodes to install Docker on |
|
string |
No |
latest |
Docker version to install |
software.apptainer#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
list[string] |
Yes |
— |
Labels of nodes to install Apptainer on |
|
string |
No |
latest |
Apptainer version to install |
software.ollama[]#
Array of objects. Each object:
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
list[string] |
Yes |
— |
Labels of nodes to install Ollama on |
|
list[string] |
Yes |
— |
Model names to pull. Minimum 1. |
|
object |
No |
|
Environment variables for the Ollama service |
software.shell[]#
Array of objects. Each object:
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
list[string] |
Yes |
— |
Labels of nodes to run the script on |
|
string |
Yes |
— |
Shell script content to execute |
|
string |
No |
|
Shell executable used to run the script |
deployment.htcondor[]#
Array of objects. Each object:
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Daemon type: |
|
list[string] |
Yes |
— |
Labels of nodes to configure as this daemon |
|
string |
No |
— |
Path to a local HTCondor config file to upload |
experiments[] — Shell#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Experiment name, used in output paths |
|
string |
No |
— |
Human-readable description |
|
object |
No |
|
Per-experiment variable overrides |
|
list[string] |
No |
— |
Nodes to upload the file to |
|
string |
No |
— |
Local source path |
|
string |
No |
— |
Remote destination directory |
|
list[string] |
Yes |
— |
Target nodes |
|
string |
Yes |
— |
Shell script content |
|
string |
No |
|
Shell executable |
|
list[string] |
No |
— |
Nodes to download from |
|
string |
No |
— |
Remote source path |
|
string |
No |
— |
Local destination directory |
experiments[] — Pegasus#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Must be |
|
string |
Yes |
— |
Experiment name, used in output paths |
|
string |
Yes |
— |
Local path to the workflow script |
|
list[string] |
Yes |
— |
Labels of nodes to submit the workflow from |
|
string |
No |
— |
Human-readable description |
|
integer |
No |
|
Number of times to run the workflow |
|
integer |
No |
|
Status check interval (seconds) |
|
integer |
No |
|
Maximum wait time (seconds) |
|
object |
No |
|
Per-experiment variable overrides |
|
list[string] |
No |
— |
Nodes to upload files to |
|
string |
No |
— |
Local source path |
|
string |
No |
— |
Remote destination directory |
|
list[string] |
No |
— |
Nodes to run setup script on |
|
string |
No |
— |
Setup script content |
|
string |
No |
|
Shell executable |
|
list[string] |
No |
— |
Nodes to download from |
|
string |
No |
— |
Remote source path |
|
string |
No |
— |
Local destination directory |
|
list[string] |
No |
— |
Nodes to run post-script on |
|
string |
No |
— |
Post-run script content |
|
string |
No |
|
Shell executable |
variables#
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string, integer, or float |
No |
— |
Variable name: alphanumeric + underscore only. Value accessible in experiment scripts as an environment variable. |
See also#
Config file anatomy — explanation of the config structure
Testbed parameters — per-testbed parameter details
CLI reference — command-line options