fix: install hiera-eyaml into puppetserver's JRuby gem-home (#148)#158
Merged
Conversation
5f7c46f to
5eee225
Compare
2f9fc2a to
4e0e2b3
Compare
…roject#148) Since OpenVoxProject#141, gems installed by prep_release_container.sh land in the system CRuby gem path (e.g. /var/lib/gems/3.x), which is not on puppetserver's JRuby gem-path. As a result hiera-eyaml was invisible to the puppetserver JVM and eyaml-encrypted Hiera lookups failed during catalog compilation. Install hiera-eyaml into the JRuby gem-home via `puppetserver gem install`, alongside the existing openvox install. These two gems are the only ones the puppetserver JVM loads at runtime, and hiera-eyaml has no other consumer, so it is no longer installed under the distro Ruby at all. The `eyaml` CLI is exposed via a thin wrapper that runs the JRuby gem-home binstub under the distro Ruby with GEM_PATH pointed at the JRuby gem-home (hiera-eyaml is a pure-Ruby gem, so it loads fine there); a plain symlink would resolve the gem against the distro gem path, where it no longer lives. All other gems stay in the system CRuby gem path, where they are needed: they back tools that run under the distro Ruby, not the JVM. In particular `puppetserver ca` runs the cli/apps/ca app under /opt/puppetlabs/puppet/bin/ruby (the distro Ruby), so openvoxserver-ca and its hocon dependency must remain on the CRuby path; r10k/rugged and the puppet/facter CLIs likewise. Fixes OpenVoxProject#148 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Chris Boot <bootc@boo.tc>
4e0e2b3 to
4218c53
Compare
Member
|
a bit talkative this claude. generating too much output. but the code looks ok to me. |
rwaffen
approved these changes
Jun 26, 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.
Fixes #148.
Since #141, gems installed by
openvoxserver/prep_release_container.shvia the distrogemland in the system CRuby gem path (e.g./var/lib/gems/3.x), which is not on puppetserver's JRubygem-path. Onlyopenvoxwas being installed into the JRuby gem-home. As a resulthiera-eyamlwas invisible to the puppetserver JVM and eyaml-encrypted Hiera lookups failed during catalog compilation.Changes
Install
hiera-eyamlinto the JRuby gem-home viapuppetserver gem install, alongside the existingopenvoxinstall. These two are the only gems the puppetserver JVM loads at runtime.hiera-eyamlis no longer installed under the distro Ruby at all — the server JVM is its only real consumer. TheeyamlCLI is still available, exposed as a thin wrapper that runs the JRuby gem-home binstub under the distro Ruby withGEM_PATHpointed at the JRuby gem-home (a bare symlink would resolve the gem against the distro gem path, where it no longer lives).hiera-eyamlis a pure-Ruby gem, so it loads fine that way and the CLI avoids JVM start-up.Everything else stays on the system CRuby gem path, because those gems back tools that run under the distro Ruby, not the JVM:
openvoxpuppet/facterCLIshiera-eyamleyamlCLI via distro-Ruby wrapperopenvoxserver-capuppetserver caCLI (runs under distro Ruby)hoconpuppetserver car10kr10kCLIruggedr10kdependency (native ext, cannot load on JRuby)racc,syslogpuppetserver cais a CLI client: itscli/apps/caapp executes under/opt/puppetlabs/puppet/bin/ruby(the distro Ruby), soopenvoxserver-caand itshocondependency must stay on the CRuby path — confirmed by thepuppetserver ca -hLoadError when they were briefly moved JRuby-only.🤖 Generated with Claude Code