Feature #14455
Add foreman_smartproxy provider with dependencies for AIO
Description
The foreman_smartproxy provider in the puppet-foreman module currently uses the apipie-bindings rubygem to make the REST API call to Foreman to register a smart proxy. This requires dependencies that aren't in the AIO Puppet environment.
Some points came out of the discussion at https://groups.google.com/d/msg/foreman-dev/Ijvodu1hJkE/bkCvBQ1PAQAJ:
1) The dependencies should be installed directly into the AIO environment, probably by creating packages to ship the .gems into a known location, then install them with package resources and the puppet_gem provider.
This may be helped by https://github.com/theforeman/puppet-foreman/pull/424 which brings dependency installation into puppet-foreman so it's in the same module as the providers themselves.
2) The number of dependencies with apipie-bindings is high, and adding a new provider with minimal dependencies (just 'oauth') would help. The same thread links to an example provider that does this, which needs merging into puppet-foreman.
As a workaround, users can use --foreman-proxy-register-in-foreman=false.
Related issues
Associated revisions
History
#1
Updated by Dominic Cleal about 6 years ago
- Blocks Tracker #8447: Puppet 4 support added
#2
Updated by Dominic Cleal about 6 years ago
- Status changed from New to Assigned
- Assignee set to Dominic Cleal
#3
Updated by Dominic Cleal about 6 years ago
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/puppet-foreman/pull/432 added
#4
Updated by Dominic Cleal about 6 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset puppet-foreman|51e26e56ec1d95ff2ce0235b541b0d04e7566b53.
#5
Updated by Dominic Cleal about 6 years ago
- Legacy Backlogs Release (now unused) set to 136
fixes #14455 - add rest_v3 smart proxy provider using OAuth gem
The new provider has fewer dependencies than rest_v2 (with
apipie-bindings), therefore it's easier to package the dependencies for
an AIO version of Puppet. puppet-agent-oauth will be provided by the
Foreman repositories to install the oauth gem into the AIO environment.
All Ruby 1.9+ installations, including Puppet AIO packages, won't need
a JSON package as they include a bundled 'json' library.
The provider's been split into a base type+provider (supported as per
PUP-2458) to make it easier to add and update other types in future.
The addition of the SSL CA in the type is required with the OAuth gem's
HTTP request support, as it enables verification by default when it
detects CA bundles in common locations.
Thanks to @liamjbennett, whose work this is partly based on.
closes GH-432