Include profile::boot_security_upgrade in role::jumphost - #296
Merged
Conversation
First non-runner consumer of the profile. Jumphosts take the default fail_on_error => false: unlike a disposable runner, a bastion is long-lived, so an unpatched-but-reachable host beats an ABANDONed one. One file covers every environment -- role/ exists only in global modules/, environments carry just profile/ -- and it resolves because #295 put the profile in all three trees. Verified by compiling a full role::jumphost catalog (external modules stubbed, provision-time facts supplied) against all three modulepaths: identical exec in each, returns [0,1] confirming the log-and-continue default, and Package[cloud-guest-utils] and Package[awscli] appearing exactly once -- no duplicate declaration against profile::base or profile::jumphost.
infrahouse8
approved these changes
Aug 21, 2026
akuzminsky
added a commit
that referenced
this pull request
Aug 22, 2026
Takes the default fail_on_error => false: like the jumphost and unlike a runner, the VPN server is long-lived, so an unpatched-but-reachable server beats an ABANDONed one. role/ lives only in global modules/, so this one file covers all three environments. Verification is thinner than #296 by necessity: role::openvpn_server does not compile locally, and does not at HEAD either without this change (exit 1, no output, unrelated to it) -- profile::openvpn_server needs provisioning-time inputs this laptop cannot supply. Checked instead: puppet-lint, puppet parser validate, and that neither cloud-guest-utils nor awscli is declared by profile::openvpn_server, which was the only plausible duplicate-declaration collision.
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.
First non-runner consumer of the profile added in #294 / #295.
One file covers every environment.
role/exists only in globalmodules/— environments carry justprofile/— so there is no per-environment role copy to promote. It resolves in all three because #295 put the profile in all three trees.Verification
Compiled a full
role::jumphostcatalog (external modules stubbed, provision-time facts supplied) against all three modulepaths —modulesalone, and each environment overlay. Identical in each:returns [0,1]confirms the log-and-continue default is what a jumphost gets. Both packages appearing exactly once was the real thing to check here —profile::boot_security_upgradedeclarescloud-guest-utilsand includesprofile::packages, while the role already pullsprofile::base, so a duplicate declaration was the plausible failure mode. There isn't one.Expected behavior on hosts without the tag
This is deliberately being rolled out to existing jumphosts that carry no
InspectorEc2Exclusiontag, to confirm a missing tag is harmless. Two possible log lines, both exit 0, neither fails the run:removed InspectorEc2Exclusion from i-...—delete-tagsignores a key that is not present, so this is what a successful API call prints whether or not the tag existedcould not remove ... (no ec2:DeleteTags?)— the instance profile lacks the permissionWorth noting the first message is ambiguous by design of the AWS API: it proves the call succeeded, not that a tag was removed. Making the removal test conclusive would need a
describe-tagsfirst, and thereforeec2:DescribeTagson the instance profile — not done here.Next step after this:
terraform-aws-jumphostsets the tag at launch, which is what actually closes the Inspector window.🤖 Generated with Claude Code
https://claude.ai/code/session_01KLGAXtoyoakLXUjaJSL4M3