Hey everyone,

I'm hoping someone can enlighten me here: Why is it so hard/complicated to 
use third party gems when developing a custom provider? It seems to me that 
pulling in gems should be priority #1, since it allows providers to 
leverage a lot of development already done in the ruby community.

However, right now it is complicated:

1. I have to get my users downstream to install gem dependencies before 
using any resources related to the provider. There is no way for me to 
annotate the module itself for these dependencies, and no support for 
automatically pulling them down.

2. "Features" offer very limited capability (as far as I understand), and 
are poorly documented. The only documentation is on how to link providers 
and types using features, not on how to require ruby libraries. There is no 
way for anything other than a type to specify requiring a feature. For 
example, what if a provider requires a gem?

3. "Features" only protect part of the lifecycle. Even without a feature 
present, puppet still attempts to resolve auto-require relationships. This 
makes sense based on how things work, but what am I supposed to do if I 
need a third party gem there?

4. Some gem dependencies need to be present on both the puppet master (in 
the master's environment) and on the node. There is no way for me to 
transparently take care of this for users.

So, am I just missing something? Is there some secret hook in the puppet 
source that makes dealing with gems better? Should I just start 
distributing this provider as a package, and ignore "puppet module", r10k, 
etc? Or are there any changes coming down the pipeline that will make this 
work better?

Thanks,
Chris

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/78d97481-4d1f-4548-9835-0ca20eade250%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to