Include profile::boot_security_upgrade in role::bookstack - #298
Merged
Conversation
The prerequisite half for BookStack. Nothing tags these instances yet: the tag comes from website-pod's defer_inspector_findings_until_patched (infrahouse/terraform-aws-website-pod#132), which must not be enabled until this is deployed. The tag is fail-open -- an instance that launches tagged with nothing to remove it is permanently invisible to Inspector -- so Puppet leads and Terraform follows. Takes the default fail_on_error => false: the wiki is a long-lived stateful singleton, so an unpatched-but-serving host beats an ABANDONed one. Also fixes the role's @summary, which said "Puppet role for a jumphost". Verification is the same tier as #297 and for the same reason: role::bookstack does not compile locally, and does not at HEAD either without this change (exit 1, no output) -- profile::bookstack::config needs provisioning-time inputs this laptop cannot supply. Confirmed by compiling both ways rather than assuming. Checked instead: puppet-lint, puppet parser validate, and that neither cloud-guest-utils nor awscli is declared anywhere in the bookstack profile tree, which was the only plausible duplicate-declaration collision.
infrahouse8
approved these changes
Aug 22, 2026
This was referenced Aug 22, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The prerequisite half for BookStack. Nothing tags these instances yet — the tag comes from website-pod's
defer_inspector_findings_until_patched(infrahouse/terraform-aws-website-pod#132), which must not be enabled until this is deployed.That ordering is the whole point. The tag is fail-open: an instance that launches tagged with nothing to remove it is permanently invisible to Inspector, silently. Puppet leads, Terraform follows.
Also fixes the role's
@summary, which said "Puppet role for a jumphost".Defaults
fail_on_error => false(the default) — the wiki is a long-lived stateful singleton, so an unpatched-but-serving host beats an ABANDONed one. Opposite ofgithub_runner, which passestruebecause a runner that cannot patch should be replaced.BookStack is the first target behind an ALB health check on
/loginexpecting 200 — jumphost and openvpn sit behind NLBs whose TCP checks come up long before the app does.terraform-aws-bookstacksetshealth_check_grace_period = var.asg_health_check_grace_period, default 600s.Boot patching adds wall-clock inside that window. The normal path is one
apt-get update -qq && unattended-upgrade— tens of seconds. But the budget ceiling is 480s, consumed only under dpkg-lock contention, and the ih-puppet double apply is already several hundred seconds on comparable modules. Worst case could push past the 10-minute grace period and have the ASG replace an instance that was merely still patching.Two levers if it bites, neither needed to merge this:
profile::boot_security_upgrade::budgetinbookstack.yamlasg_health_check_grace_periodinterraform-aws-bookstackUnrelated, but noticed while checking: that variable is described as "minutes" and used both ways — as seconds for
health_check_grace_periodand as minutes forwait_for_capacity_timeout("${var.asg_health_check_grace_period * 1.5}m"= 900m = 15h at the default).Verification
Same tier as #297, and for the same reason.
role::bookstackdoes not compile on a laptop — and does not compile at HEAD either, without this change (exit 1, no output).profile::bookstack::configneeds provisioning-time inputs that cannot be stubbed here, so the failure is pre-existing and unrelated. Confirmed by compiling both ways rather than assuming.Checked instead:
puppet-lint --fail-on-warnings modules/role— cleanpuppet parser validate— cleancloud-guest-utilsnorawscliis declared anywhere inprofile::bookstackor its sub-manifests — the only plausible duplicate-declaration collision, since the profile declares the first and includesprofile::packagesfor the secondWorth a real check on the first apply, since CI does not compile catalogs.
Sequence from here
terraform-aws-bookstackbumps website-pod, setsdefer_inspector_findings_until_patched = true, and addsec2:DeleteTagsviainstance_profile_permissions🤖 Generated with Claude Code
https://claude.ai/code/session_01KLGAXtoyoakLXUjaJSL4M3