A minor release fixing a plan→apply data-loss class where files generated by terraform/tofu plan disappeared before apply ran.
Highlights
- Plan-artifacts workspace-diff snapshot — the runner now snapshots files created on disk between
tofu initandtofu plan(e.g.data.archive_fileoutputs,local_fileresources,null_resourcelocal-exec scratch), tars the diff, and restores it into the apply Job's fresh workspace beforetofu apply. Fixes "no such file or directory" failures at apply time for plan-time generated lambda zips and similar artifacts.
Bug Fixes
- Apply-phase plan-file download now routes through
download_to_filelike every other artifact download, so filesystem-backend presigned URLs minted at the public hostname are rewritten to the in-cluster API URL. Previously caused silent re-plan-inline on Tilt / filesystem-backend deployments and skipped plan-artifacts restore. Cloud-backend deployments (S3/GCS/Azure) were unaffected.
Configuration
- New Helm value
runners.planArtifactsMaxBytes(default 268435456 = 256 MiB; minimum 10240 bytes) caps the plan-artifacts tarball size. Uploads exceeding the cap are rejected with HTTP 413. - New API endpoints documented in
docs/api-reference.md:GET/PUT /api/terrapod/v1/runs/{run_id}/artifacts/plan-artifacts.
Status
Stable — drop-in upgrade from v0.33.x. No schema changes, no API breaks. Pre-v0.34.0 runs (whose plan phase ran on an older runner) apply cleanly under v0.34.0 — the apply phase logs the missing artifact and proceeds.
Full Changelog: v0.33.5...v0.34.0