Skip to content

Promote InfraHouse repo/key convergence to global (production)#281

Merged
akuzminsky merged 1 commit into
mainfrom
promote-infrahouse-repo-global
Jul 4, 2026
Merged

Promote InfraHouse repo/key convergence to global (production)#281
akuzminsky merged 1 commit into
mainfrom
promote-infrahouse-repo-global

Conversation

@akuzminsky

Copy link
Copy Markdown
Member

Phase 3 (final) of the keyring convergence plan: promote profile::infrahouse_repo into the global modules/profile that production uses.

What

  • Add modules/profile/manifests/infrahouse_repo.pp + modules/profile/files/converge-infrahouse-keyring.sh (byte-identical to the validated dev/sandbox versions).
  • Wire include 'profile::infrahouse_repo' into global profile::base.
  • Remove the native package { 'ca-certificates' } from global profile::elastic::tls — bundled here so production's elastic nodes never hit the duplicate-declaration that briefly broke sandbox (Fix ca-certificates duplicate declaration on elastic nodes #280). Its file resources keep require => Package['ca-certificates'], now satisfied by base.

All four touched files are byte-identical across global/development/sandbox, restoring the module-parity invariant from #276.

Why

cloud-init seeds the keyring + source list only at first boot, so long-lived instances never receive a rotated key. When the current noble signing key expires (2026-07-20), apt-get update would fail fleet-wide with EXPKEYSIG. This class converges both artifacts every Puppet run.

Validation carried in

  • Development: jumphost + from-zero instance (ip-10-0-2-...): in-sync no-op, source byte-identical, keyring == bundle, rewrite path self-heals.
  • Sandbox (via SSM, 2026-07-04): elastic_master i-0f554096e62f32ea0puppet_exit=0 + CONVERGED_OK; jumphost i-04c4cd399cd73d6a0puppet_exit=0 + CONVERGED_OK + apt Hit … noble InRelease.

Rollout note

Fleet-wide production change. The live release-noble bundle is still single-key — this readies the fleet, but the rotation only completes once the upstream new key is published into the bundle (the GATE), before 2026-07-20.

🤖 Generated with Claude Code

Move profile::infrahouse_repo (+ converge-infrahouse-keyring.sh) into the
global modules/profile that production uses (no env-local override), and wire
the include into profile::base. Bundle the elastic::tls ca-certificates fix in
the same change so production's elastic nodes never see the duplicate-declaration
state that briefly hit sandbox (see #280).

All four touched files are now byte-identical across global/development/sandbox,
restoring the module-parity invariant from #276.

Validated in development (jumphost + from-zero instance) and sandbox
(elastic_master + jumphost, via SSM): catalog compiles, keyring == published
bundle, source list byte-identical to cloud-init's seed, apt-get update clean.

Note: the live release-noble bundle is still single-key; this class readies the
fleet but the rotation only completes once the upstream new key is published
into the bundle (before 2026-07-20).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@akuzminsky akuzminsky merged commit 61ef45e into main Jul 4, 2026
2 checks passed
@akuzminsky akuzminsky deleted the promote-infrahouse-repo-global branch July 4, 2026 12:55
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