v3.1.0 — Tier 3 2xlarge smoke runners + Tier 4 downstream trigger
First minor bump in the v3 line. Brings smoke testing from 'parses
clean' to 'runs against real estate images':
Tier 3 — runner_tag defaults bumped to saas-linux-2xlarge-amd64 on
image-verify, pyinfra-smoke, bootc-boot-smoke. Smaller tiers
exhausted disk pulling 3 GB+ estate images under vfs storage.
Tier 4 — catalog tag pipelines fire verify-downstream (parallel
matrix over basef + carmine) with strategy: depend, so this tag is
considered shipped only when both downstream consumers pass at
their current pins. Adding a consumer = one matrix row. Closes the
catalog-self-test-passes-but-consumer-breaks gap.
Known limitation (v3.2 follow-up): GitLab CI doesn't support
trigger variables in include: refs, so dynamic-pin via
${CATALOG_VERSION} doesn't work. Tier 4 trigger validates
consumer-still-green; Renovate-driven MR bumps validate
consumer-against-new-tag. v3.2 will add a project-CI-variable update
step in the catalog tag pipeline to enable true dynamic-pin.