Uploaded image for project: 'Puppet Agent'
  1. Puppet Agent
  2. PA-1885

Allow hard gem dependencies to be added to puppet/puppet-agent without breaking puppetserver

    Details

    • Type: Epic
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: puppet-agent 5.5.0
    • Component/s: None
    • Labels:
      None
    • Epic Name:
      Unblock puppet-agent gem dependencies
    • Template:
    • Team/s:
      Platform OS
    • Epic Status:
      To Do
    • Release Notes:
      New Feature
    • Release Notes Summary:
      Packaging changes allow puppetserver to load pure ruby gems from puppet-agent's /opt/puppetlabs/puppet/lib/ruby/vendor_gems directory.
    • QA Risk Assessment:
      Needs Assessment

      Description

      JRuby cannot load gems with native extensions. To avoid that issue, puppetserver maintains a set of gems separate from puppet-agent. However, this means if puppet-agent (or puppet) adds a hard dependency on a gem like semantic_puppet or multi_json then the puppet-agent package will be incompatible with puppetserver. Since we don't have packaging constraints to prevent newer puppet-agent packages to be installed with older puppetserver, we haven't been able to move forward with unvendoring semantic_puppet or adding a dependency with multi_json. This is also an issue for moving non-core types and providers, as puppetserver needs access to the types for compilation.

      We need to figure out a way that we can add and remove hard gem dependencies to puppet (or other puppet-agent components) without breaking puppetserver.

      One approach we've discussed is to have puppet-agent package pure ruby gems into a specific directory, that both puppet-agent and puppetserver can load from.

      Another approach is for puppetserver to vendor the puppet ruby code (as a library) and to install its transitive dependencies.

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  josh Josh Cooper
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Due:
                    Created:
                    Updated:
                    Resolved:

                    Zendesk Support