net-ssh/scp dependencies are missing when Fog group not installed
With Fog 1.36.0, the net-ssh and net-scp dependencies are no longer on the fog-core gem and are instead in our 'fog' bundler group.
Since #10787 plus #8516, it's been possible to install just foreman-gce, foreman-libvirt or the gce/libvirt bundler groups without foreman-compute/the fog bundler group (which brings in 'fog' itself) installed.
If you install one of these bundler groups now without the fog group or foreman-compute, you won't have net-ssh or net-scp installed since there's no gem dependency to bring them in. This will cause a runtime error in fog-core.
fixes #12512 - always install fog-core/net-* dependencies
fog-core 1.33 made net-* deps optional, but Foreman relies on them for
image provisioning on many CR types. Since the 'fog' Bundler group is
optional (e.g. the 'ec2' group can be used standalone as fog-aws depends
on fog-core), these deps have been moved into the main Gemfile so they
are always available for any CR when the 'fog' group isn't installed.
fog-core was also moved to ensure it's always pinned appropriately.
Although the gems aren't always required, this will make using the CR
Bundler groups less complex than adding another group specifically for
fog-core and net-* for Bundler users, in packages and in plugins.
#2 Updated by Dominic Cleal over 4 years ago
- Status changed from New to Assigned
- Assignee set to Dominic Cleal
I think we probably need to separate the fog-core (including net-*) bits out of the fog bundler group into a shared group or even into Foreman's general Gemfile. Having them in the fog group is misleading when it's optional.