Should a Chef custom resource use attributes as default property values?
<p>Should a Chef custom resource use Chef attributes as default property values?  I can see several options here:</p>

<ol>
<li>Have a pure library cookbook, with just custom resources (or LWRPs) which are only ever configured by someone writing a recipe using the Chef DSL.</li>
<li>Have a library cookbook where the default values for properties can come from Chef attributes.  This allows users to set certain values on the Chef server, as long as there's a recipe using the resources in question.</li>
<li>Have a cookbook which provides custom resources, but has a default recipe which uses Chef attributes to fill in all the values.  i.e. it's only the recipe that uses the attributes.  In this case, the recipe (and attributes) could be in a separate cookbook, but it seems convenient to make it all in one cookbook.</li>
</ol>

<p>What's the best practice here?</p>