Skip to main content

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)