The unofficial TPU migration guide: Cloud TPU API to Compute Engine A developer documented their migration of a Cloud TPU workload from the deprecated Cloud TPU API to Compute Engine, moving a v6e-1 chip serving gemma-4-E2B-it under vLLM. The migration required mapping flags and adapting to a new quota model, with the developer noting that failures often occur silently. They highlighted documentation traps, such as outdated guidance on flex-start VMs, and noted that TPU7x flex-start is behind an allowlist. Cloud TPU resources in Compute Engine https://docs.cloud.google.com/tpu/docs/tpus-in-compute-engine puts it plainly: The Cloud TPU API is no longer under active development. This includes the Google Cloud CLI for the Cloud TPU API and the Cloud Client Libraries for the Cloud TPU API. The Cloud TPU API will receive bug fixes and security updates only. New hardware generations, starting with TPU7x Ironwood , are supported only through Compute Engine or Google Kubernetes Engine GKE . No sunset date is published, so nothing breaks on a deadline. But the second sentence is the forcing function: the API you are on today is the API your next chip will not support. So I moved a rig over — a v6e-1 Trillium chip serving gemma-4-E2B-it under vLLM, rebuilt on gcloud compute instances . Same chip, same checkpoint, same serving flags, only the control plane changed. The flag mapping was the quick part. Everything after it — the quota model, a dead boot, tooling that had silently gone blind — took far longer, because almost nothing on this path fails loudly. What follows is what changes, what bit me, and how to tell one failure from another. The short version, so the rest makes sense. Old: gcloud alpha compute tpus queued-resources create vllm-gemma4-qr \ --node-id=vllm-gemma4-qr-node \ --zone=us-east5-b \ --accelerator-type=v6e-1 \ --runtime-version=v2-alpha-tpuv6e \ --provisioning-model=flex-start \ --valid-until-duration=2h New: gcloud compute instances create gce-vllm-v6e1-2b \ --zone=europe-west4-a \ --machine-type=ct6e-standard-1t \ --image-family=ubuntu-accel-2204-amd64-tpu-v5e-v5p-v6e \ --image-project=ubuntu-os-accelerator-images \ --maintenance-policy=TERMINATE \ --boot-disk-size=200GB \ --scopes=cloud-platform \ --metadata-from-file=startup-script=/tmp/startup.sh \ --provisioning-model=FLEX START \ --request-valid-for-duration=2h \ --max-run-duration=4h \ --instance-termination-action=DELETE | Cloud TPU API | Compute Engine | |---|---| --accelerator-type=v6e-1 | --machine-type=ct6e-standard-1t | --runtime-version=v2-alpha-tpuv6e | --image-family=ubuntu-accel-... + --image-project | --valid-until-duration | --request-valid-for-duration | --provisioning-model=flex-start | --provisioning-model=FLEX START | QR produces a node named