Skip to main content
You do not write a JobSpec by hand. tp submit builds one into the job package at .tuneplane/jobspec.json. Read this page when you are debugging a refused submission, writing a tool that submits, or working through MCP. apiVersion is tuneplane/v1 and kind is TrainingJob. Any other value is refused on the client and again on the server, before anything is scheduled.

Shape

Field rules

Every rule here exists because a submission was refused for it.

The handshake

Admission compares four things against the server’s catalogue: the recipe name, its version, its digest, and framework.runtime_id. Any mismatch is refused. That is what tp recipe status reports and tp recipe upgrade fixes. provenance.core_version must also satisfy the requires.core range on the lock, so an old CLI submitting against a newer catalogue is refused with both versions named.

Next

Job environment variables for what the container receives · Submitting a job · Errors