Skip to content

Orbit v0.15.1 (Preview)

Choose a tag to compare

@github-actions github-actions released this 13 Aug 04:21
b49375a

What changed

Two corrections to the SQL Server readiness guidance introduced in v0.15.0. Both came from someone adopting that release and hitting what it did not say.

An exec health check runs argv — there is no shell. The type table said only "run command inside the container", from which a reader cannot tell that $VAR is not expanded. Writing -P "$MSSQL_SA_PASSWORD" as an argument passes those nineteen characters to the program verbatim. Wrap the command in sh -c when it needs a variable, a pipe, or a redirect. Now stated in the type table and explained in both locales.

The exec readiness probe keeps running after startup. It is the runtime liveness check too, so it performs one authenticated login per interval — 5 seconds by default — for as long as the environment is up. orbit doctor recommends this probe to every TCP-probed SQL Server target and previously said nothing about that. The hint and the configuration docs now name the ongoing cost and point at interval.

Why it matters

The v0.15.0 readiness work closed a real race: a SQL Server target can report healthy while still refusing logins, and a publish issued in that window fails on a target that is plainly running. Adopting the fix measurably removed it — 44 seconds of failed pre-login handshakes became zero for the environment that reported it.

But the advice that closes the race was incomplete in two ways, and both failures are quiet ones. A shell-less exec command fails exactly like a database that will not start: the probe fails, retries, and reports only after the whole budget is spent — so the natural next step is to debug SQL Server rather than the probe. And an always-on login probe is right for a container that lives minutes and is discarded, while being a standing background cost for a shared environment somebody leaves running all day, where the startup race it closes happens once.

Neither is a behaviour change. Both are things the tool knew and did not say.

Upgrade notes

No configuration changes are required. If you adopted the exec probe from v0.15.0's orbit doctor hint, it was already correct — the hint has always emitted the sh -c form. Consider raising health_check.interval on environments you leave running.


Known issue in this release — fixed in v0.15.2

orbit sqlserver publish cannot find its target when run with --instance — the resource name was derived from the container name, which only works in shared mode. Introduced in v0.15.0, fixed in v0.15.2. There is no workaround in this version.

Recorded here because an upgrade that skips versions reads the notes of the version it lands on, not the ones it passes over.