Skip to content

Port RUN_BASH_SUDO_PASSWORD_FILE (Plan 00073) onto F44 - #34

Merged
LTSCommerce merged 4 commits into
F44from
plan-00082-port-sudo-password-file
Aug 24, 2026
Merged

Port RUN_BASH_SUDO_PASSWORD_FILE (Plan 00073) onto F44#34
LTSCommerce merged 4 commits into
F44from
plan-00082-port-sudo-password-file

Conversation

@LTSCommerce

Copy link
Copy Markdown
Contributor

Summary

F44's headless run.bash (PR #33 / Plan 00082, RUN_BASH_GITHUB_ACCOUNTS=none) and the sudo-password-file fallback (Plan 00073, 86ba6ae) currently live on two commits with no common descendant — 86ba6ae only exists on the unmerged, diverged plan-00066-ccy-ci-runner branch, whose own run.bash still rejects GITHUB_ACCOUNTS=none.

This was discovered downstream, in the lts-infra consumer repo (Plan 00045): its live proof of GITHUB_ACCOUNTS=none cannot run against any guest under that estate's no-NOPASSWD:ALL policy without the sudo-password mechanism present on the same commit as GITHUB_ACCOUNTS=none.

This PR manually ports Plan 00073's isolated run.bash patch onto current F44 (a raw git cherry-pick conflicted on a stale plan-number collision and PR #33's own nearby edits, so this was merged by hand instead):

  • the _sudo/hl_sudo_askpass_start/hl_sudo_probe_password helpers
  • headless_preflight's sudo-credential decision, composed with the existing GITHUB_ACCOUNTS branch (untouched)
  • main()'s HL_SUDO_OPTS/HL_SUDO_PW_FILE init
  • --help/--help-run-headless doc text
  • both Ansible invocation sites' --become-password-file branch
  • all 14 bare sudo_sudo call-site swaps

Also fixed docs/headless-provisioning.md, found stale while porting its own doc diff: it still described GITHUB_ACCOUNTS=none as an unshipped follow-up, and its secrets-required table contradicted run.bash --help-run-headless (the doc's own stated authority).

Tracked by Plan 00084.

Test plan

  • bash -n run.bash clean
  • shellcheck -x run.bash — 0 findings
  • ./scripts/qa-all.bash — QA passed, 537 files checked
  • Host-verified end-to-end by lts-infra's Plan 00045 live proof once this merges (this repo's CCY container cannot run run.bash or serve as a target host — see CLAUDE/ContainerRules.md)

🤖 Generated with Claude Code

LTSCommerce and others added 4 commits August 24, 2026 14:32
F44's headless run.bash (PR #33, GITHUB_ACCOUNTS=none) and the
RUN_BASH_SUDO_PASSWORD_FILE mechanism (Plan 00073) lived on two commits
with no common descendant: 86ba6ae carries the sudo-password fallback
but only exists on the unmerged, diverged plan-00066-ccy-ci-runner
branch, whose own run.bash still rejects GITHUB_ACCOUNTS=none. This was
found downstream, in lts-infra's Plan 00045: its live proof of
GITHUB_ACCOUNTS=none cannot run against any guest under that estate's
no-NOPASSWD:ALL policy without this mechanism present on the same
commit.

Manually merged Plan 00073's isolated run.bash patch onto current F44
(a raw cherry-pick conflicted on a plan-number collision and PR #33's
own nearby edits): the _sudo/hl_sudo_askpass_start/hl_sudo_probe_password
helpers, headless_preflight's sudo-credential decision composed with
the existing GITHUB_ACCOUNTS branch, main()'s HL_SUDO_OPTS/HL_SUDO_PW_FILE
init, --help/--help-run-headless docs, both Ansible invocation sites'
become-password-file branch, and all 14 bare sudo -> _sudo call sites.
Also fixed docs/headless-provisioning.md, found stale while porting its
own doc diff: it still described GITHUB_ACCOUNTS=none as an unshipped
follow-up and its secrets table contradicted run.bash --help-run-headless,
the doc's own stated authority.

bash -n and shellcheck -x run.bash clean; ./scripts/qa-all.bash passed,
537 files checked.

Plan 00084: port sudo password file onto F44

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Independent review (standing in for this repo's required qa-reviewer
pass) returned MERGE-READY conditional on one fix: this PR's own
table-reflow in docs/headless-server-install.md re-emitted a row
claiming GitHub is unconditionally mandatory in headless v1,
contradicting run.bash --help-run-headless. Fixed to state the
account-or-none choice. Also brings PLAN.md's task status and
Delivery section back in sync with the actual commit/PR state.

The review's other finding (Plan 00073's _sudo acceptance harness
wasn't ported) is non-blocking: the reviewer independently re-derived
and ran its core property against this PR's run.bash and confirmed it
holds. Recorded as a follow-up, not acted on here.

Plan 00084: port sudo password file onto F44

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Plan 00082's PLAN.md and Plan 00078's PLAN.md/journal named real VM
hostnames and a private deployment repo from an internal stack that
consumes fedora-desktop. This repo is public; those identifiers have
no business here regardless of severity. Replaced with generic
descriptions of the same facts (a downstream deployment repo running
the proof, a fenced CI runner VM) — no information about what this
repo needs to say is lost, only which private host/repo it names.

Content-only fix: the same strings remain in older commit messages in
this repo's history (this is not a history rewrite).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cross-references the commits (cae9a0c, 676a7d7) that removed two real
VM hostnames from this public repo's tracked content, and the
consuming repo's own follow-up guardrail (its Plan 00077) -- without
naming the consuming repo or repeating any of the removed detail, per
the rule that incident produced.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@LTSCommerce
LTSCommerce merged commit d48fabd into F44 Aug 24, 2026
4 of 6 checks passed
@LTSCommerce
LTSCommerce deleted the plan-00082-port-sudo-password-file branch August 24, 2026 15:14
LTSCommerce added a commit that referenced this pull request Aug 24, 2026
Live-proved before merge (pinned at branch tip 8fd8725): the PATH fix plus
the underlying PR #33/#34 composition all got past ansible-galaxy and through
playbook-main.yml's Preflight Sanity + DNF Upgrade plays, stopping only at an
unrelated, pre-existing kernel-modules enumeration defect (Plan 00086).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

1 participant