Konduktor Config Yaml
The schema defaults to what is stored in~/.konduktor/config.yaml, but can be customized
with the environment variable KONDUKTOR_CONFIG='/path/to/custom_konduktorconf.yaml'
Schema
Details
allowed_clouds - which storage backends Konduktor uses for uploads/downloads
jobs: bucket - one shared bucket for all workdir/file_mounts uploads instead of an auto-created konduktor-filemounts-<username>-<user_hash> bucket per machine. Each machine uploads under its own folder (<bucket>/<username>-<user_hash>/<task>-<run_id>/...), so a whole team can share a single admin-managed bucket. Konduktor never deletes the shared bucket — admins own its lifecycle and can attach an object TTL policy to reclaim old uploads. Same key as SkyPilot’s jobs.bucket, so it carries over from SkyPilot config yamls passed via KONDUKTOR_CONFIG
logs: timeout - timeout in seconds for querying logs via konduktor logs
logs: backend - which log stack your cluster exposes
tailscale: secret_name - Kubernetes secret containing your Tailscale auth key so Konduktor can auto-connect jobs/containers to your Tailnet
ssh: enable - flips on SSH support (and key management) for launched pods so you can debug or port-forward into them
apt: skip - when true, the pod bootstrap runs no apt/apt-get commands and assumes your container image already ships every package the job needs (e.g. rsync, curl, git, openssh-server). Useful when apt mirrors are flaky or images are fully pre-baked. Cannot be combined with tailscale: secret_name, whose installer requires apt. If you use S3-backed file mounts, the image must also already provide the AWS CLI — with apt.skip the sync fails loudly instead of apt-installing it
serving: endpoint - choice between direct IPs or .trainy.us endpoints for accesing deployments
kubernetes: allowed_contexts - pins Konduktor to a specific kube context from KUBECONFIG i.e. ~/.kube/config. Only use a 1 item list. Pass --kubecontext <context> (alias --context) to a command to override this for a single invocation, e.g. konduktor status --kubecontext my-other-cluster
kubernetes: pod_config: spec - raw PodSpec overrides merged into every JobSet pod (handy for imagePullSecrets, volumes, tolerations, etc.)
kubernetes: pod_config: spec: imagePullSecrets - supply registry creds for pulling private images
kubernetes: jobset_config - JobSet-level metadata (annotations and labels) merged into every JobSet. Useful for setting Kueue annotations like maxRunDurationSeconds as a default for all jobs. See the JobSet documentation for more details on JobSet configuration
kubernetes: jobset_config: metadata: annotations: kueue.x-k8s.io/maxRunDurationSeconds - maximum job runtime in seconds before Kueue terminates it (defaults to 604800 = 7 days). Can be overridden per-task via resources.labels.maxRunDurationSeconds
kubernetes: provision_timeout - timeout in seconds for pods/services/deployments to become ready before giving up (set -1 to disable)