A shared build pins its base image by digest and nobody owns moving that pin — how do you resolve integrity versus freshness?
answer
- Integrity yes, freshness no
- Immutable means never updated in place
- The pin transfers an obligation
- A control without an owner
- Age budget, not unpinning
basics
~20 sPinning is an integrity control only: you get the exact bits you assessed, never a guarantee they are still good. It turns automatic updates into owned ones, so the pin is incomplete without a named owner and a visible age signal.
solid answer
~50 sA digest pin did its job — the build is reproducible in its inputs and nobody can swap content behind a name you already trust. What it also did was transfer an obligation: with a floating reference, freshness arrived by accident; with a pin, freshness only arrives when a human moves it. If nobody owns that, the pin has quietly frozen a known-vulnerable operating-system layer in place, and the control that protected you is now the reason you are stale. The fix is organisational, not technical. Name an owner for the base pin — usually the platform team that can actually test and move it, not each consuming team. Make pin age a visible, gated signal so staleness fails loudly instead of silently. Automate the proposal of a new digest so the human decision is review, not discovery. And treat unpinning to recover freshness as the wrong trade: you would be giving up integrity to fix an ownership gap.
go deeper
Know that a digest identifies exact content and cannot be moved to different bits, whereas a tag is just a name that can point somewhere new. Be able to say pinning does not update anything.
Explain what pinning closes — silent republishing of a trusted name — and what it leaves open: the pinned layer ages while every new advisory continues to apply to it.
Show the operational half: a named owner for the pin, base-digest age surfaced as a gating signal, automated proposals of the new digest, and the retained assessment that makes each move cheap.
Own the trade explicitly. Be ready to defend a maximum pin age to leadership, decide between one shared pin and per-team pins, and say who absorbs the regression when a fleet-wide base move breaks a service.
## What a digest pin actually promises Pinning a base image to a content digest gives you one thing precisely: the bits you build on are the bits whose hash you recorded. Nobody upstream can move a name to different content, and two builds a year apart start from the identical foundation. That closes a real attack — a trusted name silently republished with hostile content — and it makes your build inputs auditable. It promises nothing at all about whether those bits are still worth trusting. A digest is immutable by construction, which means it can never be updated in place; the layer that was current when you pinned it is exactly as old today as the day you pinned it, and every advisory published since applies to it untouched. ## The obligation transfer nobody writes down This is the insight the question is really testing. Before pinning, freshness was **implicit and accidental**: a floating reference re-resolved and you got whatever the publisher last pushed, including patches, including regressions, including anything malicious. After pinning, freshness is **explicit and owned**: it happens only when a person changes a digest string, tests it, and merges it. That is a strictly better model — you traded an unreviewed automatic change for a reviewed deliberate one — but only if the second half exists. In a shared enterprise build where the pin lives in a template that many teams consume and no single team feels responsible for, the second half quietly does not exist. Twelve months later the pin is doing its integrity job perfectly while holding an operating-system layer with a year of unpatched advisories in place across the fleet, and every consuming team assumes someone else owns it. **The failure is not the pin. It is a control that created an obligation without creating an owner.** ## Making the obligation real Four moves, in order of how often they get skipped: **1. Name the owner, and pick one who can act.** A pin that many teams consume should be moved by whoever can test the move — typically the platform group that maintains the shared build — not by each consumer independently, which produces either divergence or paralysis. If the pin genuinely belongs to a product team, say so in the same place the pin lives. **2. Make staleness visible and gated.** Pin age is a first-class signal: the build should be able to tell you that its base digest is N days old, and there should be a threshold at which that becomes a failure rather than a line in a log. Staleness that only shows up in a report nobody reads is indistinguishable from no control at all. **3. Automate the proposal, keep the decision human.** Tooling that opens a change proposing the new digest turns the work from *discovering* that an update exists into *reviewing* one. The human still decides; they no longer have to notice. **4. Record what the pin was assessed against.** Keeping the assessment attached to the digest — what was in it, what was accepted — means moving the pin is a small delta rather than a fresh investigation, which is the difference between a monthly habit and an annual project. ## The trades a principal has to own - **Pin age versus change risk.** Every base move can break something, and a fleet-wide base move can break many things at once. The organisation that never moves is exposed; the one that moves on every publish absorbs constant regression risk. A stated age budget makes that trade explicit instead of resolving it by neglect. - **Central pin versus per-team pin.** One pin for everyone gives you a single lever and a single blast radius; per-team pins give isolation and guarantee drift. Both are defensible; leaving it undecided is not. - **Who eats the regression.** If the platform team moves the pin and a product team's service breaks, the response to that incident determines whether the pin ever moves again. If the first bad move gets punished, you have re-created the frozen pin with extra steps. - **Unpinning is not the fix.** The tempting response to a year-stale pin is to float the reference again so updates arrive automatically. That trades away integrity to solve an accountability problem, and it reintroduces exactly the silent-republish exposure the pin existed to close. ## How to answer Say first what the pin did and did not promise, in one sentence each, so the interviewer knows you have the direction right. Then name the transfer of obligation as the actual mechanism of the failure. Then give the organisational fix — owner, visible age, automated proposal, retained assessment — and finish with the trade you would be prepared to defend to leadership: an explicit maximum pin age, accepted alongside the regression risk that comes with meeting it.
- A team proposes going back to a floating base reference so patches arrive automatically. What do you say?That it solves the ownership gap by giving up the integrity property, and re-opens the case where a trusted name is republished with different content and consumed by your build without review. If unreviewed automatic updates are genuinely acceptable for that workload, say so explicitly as a risk decision with an owner — but do not arrive there by default because moving the pin was nobody's job.
- How would you make a stale base pin visible without drowning teams in alerts?Make it one signal with a threshold rather than a continuous stream: the build reports the age of its base digest, and past an agreed budget it fails rather than warns. Route it to the named owner of the pin, not to every consumer, and let the automated update proposal be the notification for the routine case so only overdue pins escalate.
- How do you keep the first bad base upgrade from freezing the pin for another year?Decide in advance who absorbs a regression and make the move small and reversible: move on a schedule, in a way consumers can canary, with a fast path back to the previous digest, which the pin itself makes trivially available. Then handle the first breakage as expected cost rather than as an argument against upgrading, or you will have taught the organisation not to move.
Pinning is sealing a shipment so nobody can swap the contents in transit. The seal is doing its job perfectly while the contents sit in the warehouse expiring, because sealing was never the same job as restocking.
saying these in an interview costs you the question
- Believes a digest pin also keeps the base patched
- Proposes unpinning to restore freshness
- Thinks a registry can republish different content under a digest
- Assigns pin ownership to no one in particular
- Treats pin age as a warning nobody has to act on