Skip to content

ci: gem drift check against puppet-runtime agent-runtime-8.x #599

Description

@slauger

Problem

On VMs, puppetserver sees three gem sources: the server tarball's vendored gems, the deps of the openvox gem, and the openvox-agent AIO vendor_gems (defined by the rubygem-* components in puppet-runtime's agent-runtime-8.x.rb, shared with puppetserver via gem-path). Our image covers the first two and deliberately drops the third with the agent Ruby.

That third list changes upstream without us noticing - hiera-eyaml was exactly this case: present on every VM via the agent package, silently missing in the container.

Idea

Add a CI check that diffs the canonical upstream list against the built image:

  1. Fetch the rubygem-* component names from OpenVoxProject/puppet-runtime configs/projects/agent-runtime-8.x.rb (branch is stable for the 8.x series; a 9.x variant exists as agent-runtime-main.rb)
  2. Run puppetserver gem list in the built image
  3. Diff against a maintained ignore list of gems that are deliberately absent (agent/CLI/native-extension territory: net-ssh, thor, ffi, sys-filesystem, ruby-dbus, CFPropertyList, minitar, erubi, multi_json, rexml, ...), each entry with a one-line reason
  4. Fail on new, unclassified gems

A new gem appearing upstream then shows up as a CI failure, and the decision to bundle or ignore it becomes explicit instead of being discovered in production (or at a conference).

Current known deltas as a starting point for the ignore list: see the analysis in #598 (hiera-eyaml is the one gem that should be bundled; multi_json is handled by openvox's fallback and dropped in openvox 9; the rest is agent-side).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ideaJust an Idea

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions