Skip to content

Baked container images load only on the wizard path — keep-reinstalls and A/B updates run stale containers forever #798

Description

@VijitSingh97

Found live: a keep-reinstall to RC19 booted the RC19 OS (BUILD_COMMIT correct) while the
dashboard container kept running the RC14-era image. The image tag (:v1.14.1) is constant
across RCs, podman's store lives on the preserved /data, and the sha-keyed loader for the baked
archive lives in the FIRSTBOOT path — which keep-reinstalls (and A/B updates) skip entirely.
New slot, stale containers: #790's exact pattern one layer up. The visible symptom was a
dashboard hung at "Connecting…" with every shipped fix mysteriously absent.

This breaks the A/B update story (M7-M9): an OS update that carries a new dashboard would keep
running the old one, indefinitely, on every provisioned machine. Release blocker.

Fix direction (the derived-layer rule again): archive loading belongs in the BOOT path, not the
wizard. pithead-boot (or render) compares the baked archive's sha against the recorded one and
podman-loads on mismatch, then compose up recreates on the image-id change — every boot, both
paths, no wizard involvement. The recorded sha lives beside the store it describes. The manual
recovery that worked live: podman load -i /opt/pithead/images/dashboard.tar.gz, rm the
container, pithead up.

Coverage: the update phase must assert a marker from the NEW dashboard image is served after an
A/B update (not merely that containers run); the install phase's keep leg should assert the
dashboard image id changed after a keep-reinstall from a newer stick.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appliancePithead OS appliance work — lands on feat/phase2-bakery-imagebugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions