Skip to content

v0.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 19:12

v0.8.0 - 2026-08-24

Added

  • A release has three addresses and there are now three names for them, told apart by what re-points each one. {{url_revision "site"}} names one revision and is never re-pointed; {{url_stage "site"}} names the label, so it is the side this release staged and what a gate should test; {{url_public "site"}} — spelled {{url}} for short — follows the traffic weights and is what survives the release. The public one is read while planning from what Terraform declared, an ingress hostname or a service URI, at no extra API call, and it is what a hook registering a federated subgraph or a webhook actually wants: those write an address down for something else to read later, and later is after the labels have swapped again. url_stage and url_revision are refused in a hook for that reason, and url_revision is refused on Cloud Run and ECS because a revision has no address of its own there — a refusal naming url_stage, not a quiet fallback to it. A target with no address at all is named in the refusal rather than resolving to an empty string.

Changed

  • {{url "svc"}} now means the address that survives the release rather than the staged side, and inside strategy.smoke it is refused rather than quietly re-pointed. That refusal is the whole point: resolved silently, every existing smoke block would keep rendering, keep passing, and start testing the version the release is replacing — green, with nothing behind it. A smoke block now has to say which address it means, and the refusal offers both: {{url_stage "svc"}} for the side this release staged, {{url_public "svc"}} for the one still serving the old version. It fails at plan time, so nothing deploys before the config is corrected, and outside a smoke block nothing changes: url never worked in a hook at all.