Include profile::boot_security_upgrade in terraformer and both elastic roles - #299
Merged
Merged
Conversation
…c roles
Completes the rollout. role::ecsnode is not used anywhere, and the
remaining roles (base, mta, teleport, webserver,
infrahouse_github_backup) are out of scope.
All three take the default fail_on_error => false.
Elastic needs no special handling, contrary to the earlier assumption
that boot-time patching would fight its restart suppression:
- The elasticsearch package blacklist in profile::elastic::service is
belt-and-braces for this. Nothing in the repo sets Allowed-Origins or
Origins-Pattern, so only Ubuntu's defaults apply and elastic.co is
not among them -- unattended-upgrade would never upgrade
Elasticsearch, whoever invokes it.
- The needrestart list-only drop-in is a persistent file, so on any
reboot it is already on disk before the exec runs. The only window is
first provisioning, when Elasticsearch is not yet serving.
Both suppressions are declarative apt.conf.d/needrestart config that
unattended-upgrade honours regardless of the invoker, so no ordering edge
was added.
Verified: role::terraformer compiles a full catalog (returns [0,1], one
Package[awscli] and one Package[cloud-guest-utils], no duplicate
declaration). Both elastic roles do not compile locally and do not at
HEAD either without this change -- confirmed by compiling both ways -- so
they got puppet-lint, puppet parser validate and the same collision
check.
infrahouse8
approved these changes
Aug 22, 2026
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.
Completes the Puppet side of the rollout.
role::ecsnodeis not used anywhere, and the remaining roles (base,mta,teleport,webserver,infrahouse_github_backup) are out of scope.All three take the default
fail_on_error => false.Elastic needs no special handling
I previously flagged that boot-time patching would fight
profile::elastic::service's restart suppression and would need an explicit ordering edge. On closer reading it does not, for two independent reasons:elasticsearchpackage blacklist is belt-and-braces for this. Nothing in the repo setsAllowed-OriginsorOrigins-Pattern, so only Ubuntu's defaults apply — archive, security, ESM. Theelasticsearchpackage comes from elastic.co, which is not among them, sounattended-upgradewould never upgrade it regardless of who invokes it or whether the blacklist is in place yet.Both suppressions are declarative
apt.conf.d/ needrestart config thatunattended-upgradehonours regardless of the invoker. Adding an ordering edge would have been coupling for a case that cannot happen, so none was added.Verification
role::terraformercompiles a full catalog (external modules stubbed, provision-time facts supplied):returns [0,1]confirms the log-and-continue default. Both packages appearing exactly once rules out a duplicate declaration againstprofile::base.Both elastic roles do not compile locally — and do not compile at HEAD either, without this change (exit 1, no output). Confirmed by compiling both ways rather than assuming, same as #297 and #298. They got
puppet-lint,puppet parser validate, and a check that neithercloud-guest-utilsnorawscliis declared anywhere inprofile::elastic_master,profile::elastic_dataormodules/profile/manifests/elastic/.CI does not compile catalogs, so the elastic pair is worth a real check on first apply.
Terraform side
Separate, per service, as before. Elasticsearch goes through
website-pod(two instantiations — master and data, both need the flag or half the cluster stays untagged), which already hasdefer_inspector_findings_until_patchedas of v6.5.0. terraformer needs checking — I have not looked at what backs it.🤖 Generated with Claude Code
https://claude.ai/code/session_01KLGAXtoyoakLXUjaJSL4M3