Obviously, one of the nicest things about Chef is re-using proven components via cookbooks, especially via the wrapper cookbook approach.
However, how do you choose the cookbook to wrap? Some examples which have wasted a ton of my time.
a cookbook that has a configuration erb with hardcoded obsolete, not just deprecated, flags. The service rejects the configuration file. Note: far as I understand, wrapping a corrected template erb is not trivial unless you clone & maintain the whole thing.
a cookbook that checks for Ubuntu versions up to 9.0.4, seems to do nothing above that and refers to the obsolete /etc/event.d/ directory.
cookbooks have heavy coupling to process supervision tools like runit or bluepill. That's also a cause of headaches if your preferred tool is not on the list and you can't adjust for that.
I have tended to use supermarket.chef.io cookbooks to date, and those mostly worked. Except its cookbook for the service I want seems un-maintained and is up for adoption.
Some ideas:
check for recent github commits/last update times. But, what if it just works? Then it shouldn't be updated.
stars. but what if the stars were all issued a long time ago, while the cookbook was up-to-date?
check for github issues that aren't being closed. Might be better.
look at recipes and attributes ahead of time. Works better if you know the target software's setup already however.
look at the number of contributors and assess whether its a quick side project or it's likely to stay maintained.
running it and looking at the types of errors. The ones I picked above all look to me like cookbooks that are not tracking recent updates on either the OS or the program they are managing but do not have attribute-based flexibility to allow for it.
is there a rating site somewhere? Googling that got me food cooking sites
Sorry, I realize that this question is broad in nature. But surely, if re-use is a goal of the Chef ecosystem, then judiciously picking the best community cookbook to wrap is a key ingredient for success for an end user. Aside from any technical skills in using Chef itself.
How do you do it? What are your heuristics?
The large number of me-too cookbooks on github makes me think that this is not a solved problem.