Skip to content

Promote apt lock timeout and bounded boot upgrade to sandbox - #291

Merged
akuzminsky merged 1 commit into
mainfrom
promote-apt-lock-timeout-sandbox
Aug 1, 2026
Merged

Promote apt lock timeout and bounded boot upgrade to sandbox#291
akuzminsky merged 1 commit into
mainfrom
promote-apt-lock-timeout-sandbox

Conversation

@akuzminsky

Copy link
Copy Markdown
Member

Promotes the apt lock timeout and the bounded boot security upgrade from environments/development to environments/sandbox. Second step of the promotion path; modules/ still to follow.

Straight copy of four items, verified byte-identical to the development overlay afterwards. There was no pre-existing divergence between the two overlays in these files, so nothing was clobbered:

  • manifests/apt_lock_timeout.pp (new)
  • files/github_runner/gha-boot-security-upgrade.sh (new)
  • manifests/repos.pp — declares the class with stage => init
  • manifests/github_runner.pp — bounded Exec[gha-boot-security-upgrade]

Validated in development first

From a real gha_runner bootstrap (ip-10-0-1-142):

Notice: /Stage[init]/Profile::Apt_lock_timeout/File[/etc/apt/apt.conf.d/99-lock-timeout]/ensure: defined content

The Stage[init] prefix is the important part — it confirms the drop-in is applied before every Package resource in stage main, which was the piece of the design most likely to surprise. That host's AMI predates infrahouse/infrahouse-ubuntu-pro#20, so the file did not exist and Puppet created it, which is exactly the population this change is for.

The same run also confirmed:

  • all five unmask execs fire, so the units genuinely are masked by terraform-aws-cloud-init's bootcmd when Puppet runs, and the execs are load-bearing rather than dead code
  • gha-boot-security-upgrade.sh deploys and the exec succeeds
  • the /run/gha-boot-upgrade.done marker stops it re-running on the second catalog pass
  • Package[postfix], Package[mailutils] and Package[mutt] — the three resources that failed in Own DPkg::Lock::Timeout in Puppet and bound Exec[gha-boot-security-upgrade] #289 — install cleanly
  • bootstrap lifecycle hook completes CONTINUE

Note for later

That instance reached CONTINUE at 719s of the 1200s hook budget, with the first catalog alone taking 514s. The boot upgrade's 480s worst case therefore leaves thinner margin than the budget suggests in isolation — a worst-case run would land near 1150s. Not changed here by decision; recorded so it is not a surprise later.

Refs #289

🤖 Generated with Claude Code

Straight copy of the four items from environments/development, verified
identical afterwards. No pre-existing divergence between the two overlays in
these files, so nothing was clobbered.

Validated on a development gha_runner (ip-10-0-1-142) before promoting:

  Notice: /Stage[init]/Profile::Apt_lock_timeout/File[/etc/apt/apt.conf.d/99-lock-timeout]/ensure: defined content

The Stage[init] prefix confirms the drop-in lands before every Package resource
in stage main, which was the part of the design most likely to surprise. That
host's AMI predates infrahouse-ubuntu-pro#20, so the file did not exist and
Puppet created it -- the exact case this exists for.

The same run also confirmed the five unmask execs fire (so the units really are
masked by cloud-init's bootcmd when Puppet runs), that the bounded upgrade
script deploys and succeeds, that its /run marker stops it re-running on the
second catalog pass, and that Package[postfix]/[mailutils]/[mutt] -- the three
resources that failed in #289 -- now install cleanly. Bootstrap hook completed
CONTINUE.

Refs #289

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@akuzminsky
akuzminsky merged commit fc8d89b into main Aug 1, 2026
2 checks passed
@akuzminsky
akuzminsky deleted the promote-apt-lock-timeout-sandbox branch August 1, 2026 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants