puppetlabs / bolt-vanagon

Apache License 2.0
2 stars 31 forks source link

Add dependencies for network modules #115

Open DavidS opened 5 years ago

DavidS commented 5 years ago

Use Case

When I use bolt with the Cisco IOS module I need to manually install the net-ssh-telnet gem by running /opt/puppetlabs/bolt/bin/gem install --user-install net-ssh-telnet. This isn't a great user experience - it causes friction for new users of the module (as reported by early users of the module). It would help on boarding new users if dependent gems are included in the bolt dependencies meaning their installation is done on behalf of customers.

Describe the Solution You Would Like

It would be great if the following gems could be included in the bolt package.

Describe Alternatives You've Considered

Even better, but probably a lot more involved would be to add gem dependencies into module metadata, and automatically download/install the required gems.

A different approach could be to allow installing additional gems into a cache directory in the user's home directory.

Additional Context

This was previously https://tickets.puppetlabs.com/browse/BOLT-1377

donoghuc commented 5 years ago

@DavidS I discussed this with the bolt team and we are planning on only shipping gems/artifacts to support content we bundle with bolt. The list of modules we ship with bolt is https://github.com/puppetlabs/bolt/blob/master/Puppetfile if we were to add a module that required one of these gems we would start shipping it.

The alternate approaches you described seem awesome, but i'm not sure bolt-vanagon is the best project to raise those issues. I'm not sure which project would be best to file issues for (maybe r10k for the first, and bolt for the second).