Choose a cluster for the environment
A cluster is the routing boundary for jobs and runners. Jobs submitted to a cluster can only be claimed by runners connected to the same cluster. Use separate clusters for environments that should not run the same code by accident, such as development and production-like compute.Deploy a release to the cluster
Deploy a published workflow release to the cluster or to a target defined intilebox.workflow.toml.
Start release runners where the work should run
Start one or more release runners in the environment that has the required network access, credentials, hardware, and data access.Bundle the release runner in a container
For cloud or Kubernetes deployments, package the release runner into a small container image. The image only needs Python,uv, the Tilebox command-line tool, and any system dependencies your workflow runtime needs. The workflow code itself comes from the deployed workflow release.
Dockerfile
TILEBOX_CLUSTER and TILEBOX_API_KEY through your deployment system rather than baking secrets into the image.
In Kubernetes, run the image as a Deployment and store TILEBOX_API_KEY in a Secret. Set TILEBOX_CLUSTER through the pod environment and scale replicas to increase runner concurrency. In Google Cloud, run the same image on Cloud Run jobs, GKE, or Compute Engine depending on your workload constraints. In AWS, run it on ECS, EKS, or EC2 and inject the API key through your secret manager or task definition.
Scale runner processes
Scale the number of runner containers or virtual machine instances when you want more parallelism. In Kubernetes, increase theDeployment replica count. In GCP or AWS, use the scaling controls of the service that runs the container, such as Cloud Run, GKE, ECS, EKS, or an auto-scaling VM group. Each runner process connects to the same cluster and claims compatible tasks independently.
As an alternative for local testing or constrained environments, you can run multiple runner processes inside one container or shell session. Use tilebox parallel only for that case.
Verify cluster alignment
If a job stays queued, check that these three values match:- The job was submitted to the expected cluster.
- The workflow release is deployed to that cluster.
- A release runner is running for that cluster.