pub const COMPONENTS: [Component; 7];Expand description
The Deployments an upgrade rolls.
Names/containers verified against manifests/base/*-deployment.yaml,
manifests/components/edges/trigger/deployment.yaml, and
manifests/components/scaffold/deployment.yaml; default images against
publish.yml.
scaffold’s default_image names the GHCR basename it would publish
under if it ever did, purely so Component::ghcr_basename stays
well-formed — .github/workflows/publish.yml deliberately does NOT
publish it (cloudbuild.yaml: “scaffold is a GAR-only provisioning
connector”), so a hand-run upgrade with no POLYCHROME_UPGRADE_IMAGE_SCAFFOLD
override correctly fails loud (ReleaseManifestError::MissingComponent)
rather than silently resolving a public image that doesn’t exist — the
same no-legacy, no-silent-fallback rule every other digest source already
follows. Every real deployment (including prod) sets the override.
trigger (#1325 investigation) — unlike scaffold, it IS published to GHCR
(publish.yml’s edge matrix) — was missing from this list entirely, so a
hand-run upgrade could never roll it past its REPLACE_AT_BUILD_TIME
placeholder image; a fresh polychrome install left that Deployment
permanently stuck at InvalidImageName with no sanctioned way to fix it.
Reproduced live bringing up a second GKE cluster with the gke overlay’s
full edge set composed.